Я работаю над игрой tic tac toe и хочу реализовать метод отмены. Я считаю, что это лучший способ сделать это, просто установить другие (несколько?) Стеки и сделать копию «ходов», которые только что состоялись. Затем, если вызывается undo, просто нажмите последний ход и заново установите игровое поле.Java - Использование нескольких стеков, позволяющих использовать метод 'undo'
Итак, у меня есть идея, но я не могу понять, как ее реализовать.
Некоторые из того, что у меня есть:
Установка:
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;
}
Тогда есть метод доски, чтобы построить доску, способ отображения, и, конечно, один, чтобы проверить 3 в ряд ,
Спасибо за любые советы
Поиск шаблона дизайна Memento в GOF – pastjean