Ich bin auf einem Tic Tac Toe-Spiel zu arbeiten und bin zu wollen, eine Undo-Methode zu implementieren. Was ich denke, ist der beste Weg, dies zu tun, indem man einfach einen anderen (mehrere?) Stapel einrichtet und eine Kopie der gerade stattgefundenen Bewegungen macht. Dann, wenn rückgängig gemacht wird, einfach den letzten Zug pop und das Spielfeld neu bevölkern.Java - Verwenden mehrere Stapel einer ‚Undo‘ Methode zu ermöglichen
Also ja, ich habe die Idee, kann aber nicht herausfinden, wie es zu implementieren.
Manches, was ich habe:
ein:
public void set(Position p, int v, int n) throws IOException {
if (board[p.x][p.y][p.z]!= 0) throw new IOException("Position taken");
//Restrict 222 until all other's have been used
if (n != 26) {
if (p.x == 1 && p.y == 1 && p.z ==1) {
throw new IOException("[2,2,2] cannot be played until all other positions have been taken");
}
}
//Enforce x=1 for first 9, x=3 for next 9
if (n < 9) {
if (p.x != 0) throw new IOException("Please play on x=1 for the first 9 moves");
}
if (n >= 9 && n < 18) {
if (p.x != 2) throw new IOException("Please play on x=3 for the first 9 moves");
}
board[p.x][p.y][p.z] = v;
}
Dann gibt es ein Brett Verfahren das Board, ein Anzeigeverfahren zu bauen, und natürlich eine für 3 in einer Reihe zu überprüfen .
Vielen Dank für jede Beratung
Suche nach dem Memento Designmuster in GOF – pastjean