Ich entwickle ein Labyrinth-Solver-Programm, das grundsätzlich ein Labyrinth aus einer Textdatei liest, die vom Anfangspunkt alle Seiten um es herum prüft und sich zu Freiräumen bewegt, die vorherige Position markiert und endet, wenn der Exit gefunden wird.Wie generische Klassen verwenden, um ein Labyrinth zu lösen?
Während der Algorithmus selbst bereits abgeschlossen ist, gibt es einige Dinge, die ich gerne geklärt werden möchte. Das Programm benötigt die generischen Klassen Stack, Queue und Coordinates (die die aktuelle x, y - Koordinate speichert), die ich nicht verwendet habe (ich habe Vektoren zum Speichern der Positionen verwendet) und andere Operationen wie das Stapeln einer Queue innerhalb der Stapel.
Dies ist die Hauptschleife:
if(maz[x][y-1]==' '||maz[x][y-1]=='S'){
if(maz[x][y-1]=='S')
exitfound=true;
maz[x][y]='*';
maz[x][y-1]='@';
y=y-1;
}
Es wenn die obige Koordinatenprüft wird entweder ein offener Raum oder der Ausgang (‚S‘), wenn es wahr ist, ist es es sich bewegt, während die vorherige Positionsmarkierung mit einem * und der Position, zu der es sich bewegt, mit einem '@'. Dies wiederholt sich auch bei den anderen 3 Seiten. Am Ende des Programms wären alle begehbaren Räume mit * markiert worden. Allerdings muss ich diese generischen Klassen verwenden, um Koordinaten zu manipulieren.
Das sind die erforderlichen Klassen und ihre Objekte:
Stack<Coordinate> path = new Stack<Coordinate>(40);
Stack<Queue<Coordinate>> possibilities = new Stack<Queue<Coordinate>>(40);
Coordinate current = new Coordinate(x,y);
Queue<Coordinate> queue = new Queue<Coordinate>(3);
Ich verstehe nicht, wie man auf dem current
Objekt zu speichern, koordiniert und Einsatzkoordinaten im queue
Objekt der Klasse Queue<Coordinate>
und stapeln queue
Objekt auf der possibilities
Objekt, aus der Klasse . Wie wird das gemacht?
Das ist meine Frage was't. – Kreator
Möchten Sie wissen, wie Sie ein Element zur Warteschlange und zum Stack hinzufügen? – screenmutt
Hinzufügen von Koordinaten (zB: 3,4) zu den Klassen Coordinate, Stack und Queue. – Kreator