diff --git a/app/src/main/java/chess/controller/CommandExecutor.java b/app/src/main/java/chess/controller/CommandExecutor.java index f33040f..2b11eaa 100644 --- a/app/src/main/java/chess/controller/CommandExecutor.java +++ b/app/src/main/java/chess/controller/CommandExecutor.java @@ -55,7 +55,7 @@ public class CommandExecutor { case Moved: boolean notifyPlayerTurn = true; this.dispatcher.onBoardUpdate(); - if (checkGameStatus()) { + if (!(command instanceof UndoCommand) && checkGameStatus()) { this.dispatcher.onGameEnd(); notifyPlayerTurn = false; } diff --git a/app/src/main/java/chess/model/Game.java b/app/src/main/java/chess/model/Game.java index 4b7be53..360a5d2 100644 --- a/app/src/main/java/chess/model/Game.java +++ b/app/src/main/java/chess/model/Game.java @@ -70,6 +70,7 @@ public class Game { playerTurn = Color.getEnemy(playerTurn); } + // this is the bottleneck of algorithms using this chess engine public GameStatus checkGameStatus(Color color) { if (checkDraw()) return GameStatus.Draw;