New method setPositionToMoveIndex for undo move feature in ChessEngine

PGN
Justin 2025-06-22 01:30:21 +02:00
parent 0bc99a18be
commit 745bf05fd3
1 changed files with 11 additions and 0 deletions

View File

@ -11,6 +11,8 @@ public class ChessEngine {
private Board board; private Board board;
private List<Move> moves = new ArrayList<>(); private List<Move> moves = new ArrayList<>();
private int currentMoveIndex = 0;
public ChessEngine() { public ChessEngine() {
board = new Board(); board = new Board();
} }
@ -91,6 +93,15 @@ public class ChessEngine {
} }
} }
public void setPositionToMoveIndex(int idx) {
// Neues Board erzeugen
board = new Board();
for (int i = 0; i < idx; i++) {
board.doMove(moves.get(i));
}
currentMoveIndex = idx;
}
private PieceDTO convertPieceToDTO(Piece piece) { private PieceDTO convertPieceToDTO(Piece piece) {
if (piece == null || piece.equals(Piece.NONE)) return null; if (piece == null || piece.equals(Piece.NONE)) return null;
String color = piece.name().startsWith("WHITE") ? "WHITE" : "BLACK"; String color = piece.name().startsWith("WHITE") ? "WHITE" : "BLACK";