package laboratoire4.pawns; import laboratoire4.Player; import java.util.Stack; public class SimulatedPushed extends Pushed implements SimulatedPawn { private final int originalRow; private final int originalCol; private final Stack previousMoves = new Stack<>(); private int moveCount = 0; public SimulatedPushed(Player player, int row, int col) { super(player, row, col); originalRow = row; originalCol = col; } @Override public void move(PawnMovement movement) { super.move(movement); previousMoves.push(movement); moveCount++; } @Override public void revertMove() { PawnMovement move = previousMoves.pop(); setRow(row - getDirection()); setCol(col - move.getMove()); moveCount--; } @Override public int getOriginalRow() { return originalRow; } @Override public int getOriginalCol() { return originalCol; } @Override public int getMoveCount() { return moveCount; } }