diff --git a/OOP_2B1_Project/src/backend/Board.java b/OOP_2B1_Project/src/backend/Board.java index 5cecb07..4001626 100644 --- a/OOP_2B1_Project/src/backend/Board.java +++ b/OOP_2B1_Project/src/backend/Board.java @@ -19,6 +19,7 @@ public class Board { private Move lastMove; // new field private ArrayList> possibleMoves = new ArrayList<>(); private LinkedList boardHistory = new LinkedList<>(); + public boolean timerSwitch = false; public Board(int colNum, int lineNum) { this.width = colNum; @@ -225,6 +226,7 @@ public class Board { if (isHighlighted(x,y)) { this.movePiece(x, y); select = false; + timerSwitch = true; this.turnColor = !this.turnColor; @@ -397,6 +399,14 @@ public class Board { public Move getLastMove() { return lastMove; } + + public boolean isTimerSwitch() { + return timerSwitch; + } + + public void setTimerSwitch(boolean timerSwitch) { + this.timerSwitch = timerSwitch; + } } diff --git a/OOP_2B1_Project/src/backend/Game.java b/OOP_2B1_Project/src/backend/Game.java index bee6817..8ad525c 100644 --- a/OOP_2B1_Project/src/backend/Game.java +++ b/OOP_2B1_Project/src/backend/Game.java @@ -6,7 +6,7 @@ public class Game extends Thread { private AutoPlayer aiPlayer; private Board board; - private MyInterface mjf; + public MyInterface mjf; private int COL_NUM = 8; private int LINE_NUM = 8; private int loopDelay = 250; @@ -41,7 +41,7 @@ public class Game extends Thread { } } } - + private boolean isAITurn() { return activationAIFlags[board.isTurnWhite()?1:0]; } @@ -53,6 +53,7 @@ public class Game extends Thread { } else { board.playMove(aiPlayer.computeBestMove(board.getBoard(),board.isTurnWhite(),board.getLastMove())); + mjf.timerManager.switchTurn(); } } } @@ -67,13 +68,17 @@ public class Game extends Thread { if(!isAITurn()) { if (aiPlayer.getAllLegalMoves(board.getBoard(), board.isTurnWhite(),board.getLastMove()).size() != 0){ board.userTouch(x, y); - } - else { - mjf.showGameOverMessage("Game Over"); - } - + } + else { + mjf.showGameOverMessage("Game Over"); + } + if (board.isTimerSwitch()) { + mjf.timerManager.switchTurn(); + board.setTimerSwitch(false); + } + } - + } public void setPiece(int x, int y, PieceType type, boolean isWhite) { @@ -100,11 +105,11 @@ public class Game extends Thread { public Iterable getPieces() { return board.getPieces(); } - + public boolean isCheck(int x, int y) { return board.isCheck(x, y); } - + public boolean isSelected(int x, int y) { return board.isSelected(x, y); } @@ -118,25 +123,25 @@ public class Game extends Thread { } public void toggleAI(boolean isWhite) { -// System.out.println(isWhite); + // System.out.println(isWhite); this.activationAIFlags[isWhite?1:0] = !this.activationAIFlags[isWhite?1:0]; if (this.activationAIFlags[isWhite?1:0]) { soundEffect.aiSound(); } } - + public void setTurnNumber(int turnNumber) { board.setTurnNumber(turnNumber); } - + public void setTurnColor(boolean turnColor) { board.setTurnColor(turnColor); } - + public int getTurnNumber() { return board.getTurnNumber(); } - + public boolean getTurnColor() { return board.isTurnColor(); }