# Simulation in der Art eines Schachbrett



## stebar (25. Dez 2004)

Moin! Ich habe mal eine Frage: ich habe eine Figur auf einem "Brett" das die Größe a x a hat. Dabei ist a eine ungerade natürliche Zahl. Die einzelnen Felder auf dem Spielfeld haben unterschiedliche Zahlen die aber nur einmal vorkommen. Die Figur steht in der Mitte und soll irgendwie nach außen kommen, so dass sie auf möglichst wenig dieser felder kommt, umso kleiner die Zahl auf dem jeweiligen Feld desto besser ist es.
Ziel ist es, den Rand mit minimalem Feldwechsel zu gelangen und dabei möglichst nur geringe Zahlen zu überwandern. Die Figur kann immer nur nach links, oben, hoch und runter springen über max. 4 Felder. Wie kann man dieses möglichst sinnvoll simulieren? Gruß Steve


----------



## amlug (25. Dez 2004)

Nimm doch einfach Arrays dafür ungefähr so:


```
int[][] felder = {{1,5,4,2,6,3,6,5},
                            {2,5,4,2,6,6,8,4},
                            {x,x,x,x,x,x,x,x,x},   // x steht für beliebige Zahlen
                            {x,x,x,x,x,x,x,x,x},
                            {x,x,x,x,0,x,x,x,x},   // 0 ist der Player
                            {x,x,x,x,x,x,x,x,x},
                            {x,x,x,x,x,x,x,x,x},
                            {x,x,x,x,x,x,x,x,x}};
```

Zeige sie dann einfach so an:

```
for (int a = 0;a<8;a++)
{
     for (int b=0;b<8;b++)
      {
            if (felder[b][a]==0)
                   deineGraphics.drawImage(deinSpielerbild,a*10,b*10,null);
                  // das gleiche mit den anderen Zahlen
        }
}
```

Jetzt musst du nur noch eine Tastenabfrage machen, aber ich glaube das bekommst du alleine hin.


----------



## Illuvatar (25. Dez 2004)

Wenn der Computer das herausfinden soll, musst du dir einen Wegfindungs-Algo wie Dijkstra oder A* anschauen, bloß musst du da dann eben die Werte der begangenen Felder zusammenrechnen und nicht, wie weit du schon gegangen bist.


----------

