From 73f8ac5d353eff08ba1288c0074dafc4bf223624 Mon Sep 17 00:00:00 2001 From: marce Date: Tue, 13 May 2025 15:53:13 +0200 Subject: [PATCH] added undoLastMove --- OOP_2B1_Project/src/backend/Board.java | 28 +++++++++++++++++++++----- OOP_2B1_Project/testboard | 10 ++++----- 2 files changed, 28 insertions(+), 10 deletions(-) diff --git a/OOP_2B1_Project/src/backend/Board.java b/OOP_2B1_Project/src/backend/Board.java index 010791f..2bf1823 100644 --- a/OOP_2B1_Project/src/backend/Board.java +++ b/OOP_2B1_Project/src/backend/Board.java @@ -1,6 +1,7 @@ package backend; import java.util.ArrayList; +import java.util.LinkedList; public class Board { @@ -22,6 +23,10 @@ private Integer selectedY = null; private ArrayList highlightedPositions = new ArrayList<>(); +private LinkedList> boardHistory = new LinkedList<>(); + + + public Board(int colNum, int lineNum) { @@ -162,12 +167,11 @@ private ArrayList highlightedPositions = new ArrayList<>(); if (pieceAtDestination == null || pieceAtDestination.isWhite() != pieceToMove.isWhite()) { - + saveStateToHistory(); if (pieceAtDestination != null) { pieces.remove(pieceAtDestination); } - pieces.remove(pieceToMove); pieces.add(new Piece(pieceToMove.isWhite(), pieceToMove.getType(), x, y)); @@ -187,7 +191,20 @@ private ArrayList highlightedPositions = new ArrayList<>(); } - + private void saveStateToHistory() { + ArrayList clonedList = new ArrayList<>(); + for(int i =0; i highlightedPositions = new ArrayList<>(); } public void undoLastMove() { - //TODO - + + pieces = boardHistory.getLast(); + boardHistory.removeLast(); } public Board(Board board) { diff --git a/OOP_2B1_Project/testboard b/OOP_2B1_Project/testboard index 940541a..70cb60e 100644 --- a/OOP_2B1_Project/testboard +++ b/OOP_2B1_Project/testboard @@ -1,9 +1,9 @@ -WR,WN,WB,WQ,WK,WB,WN,WR +,WN,WB,WQ,WK,WB,,WR WP,WP,WP,WP,WP,WP,WP,WP ,,,,,,, -,,BK,,,,, ,,,,,,, -,,,,,,, -BP,BP,BP,BP,,BP,BP,BP -BR,BN,BB,,BQ,BB,BN,BR +,,WR,BP,,WN,, +,,BN,,,,, +BP,BP,BP,,BP,BP,BP,BP +BR,,BB,BK,BQ,BB,BN,BR W