diff --git a/OOP_2B1_Project/TEst b/OOP_2B1_Project/TEst index bfbbbf9..eaf2ba6 100644 --- a/OOP_2B1_Project/TEst +++ b/OOP_2B1_Project/TEst @@ -1,9 +1,9 @@ -BR, ,BB,BQ,BK,BB,BN,BR -BP,BP,BP,BP,BP,BP,BP,BP - , ,BN, , , , , +BR, , ,BK, ,BR, , +BP,BP,BP, , ,BP,BP,BP + , , , ,WP, , , , , , , , , , - , , ,WP, ,WB, , , , , , , , , -WP,WP,WP, ,WP,WP,WP,WP -WR,WN, ,WQ,WK,WB,WN,WR -3B + , , , , , , , +WP,WP,WP, , ,WP,WP,WP +WR,WN,WB,WQ,WK,WB,WN,WR +3W diff --git a/OOP_2B1_Project/src/backend/AutoPlayer.java b/OOP_2B1_Project/src/backend/AutoPlayer.java index 76012e4..afd833b 100644 --- a/OOP_2B1_Project/src/backend/AutoPlayer.java +++ b/OOP_2B1_Project/src/backend/AutoPlayer.java @@ -181,7 +181,7 @@ public class AutoPlayer { return copy; } - private ArrayList getAllLegalMoves(ArrayList> board, boolean isWhiteTurn) { + public ArrayList getAllLegalMoves(ArrayList> board, boolean isWhiteTurn) { ArrayList legalMoves = new ArrayList<>(); for (ArrayList row : board) { @@ -198,8 +198,8 @@ public class AutoPlayer { } } } - return legalMoves; + } private int getPositionalBonus(Piece piece, int x, int y) { diff --git a/OOP_2B1_Project/src/backend/Game.java b/OOP_2B1_Project/src/backend/Game.java index 432ee0a..043e1f0 100644 --- a/OOP_2B1_Project/src/backend/Game.java +++ b/OOP_2B1_Project/src/backend/Game.java @@ -3,7 +3,7 @@ package backend; import windowInterface.MyInterface; public class Game extends Thread { - + private AutoPlayer AP = new AutoPlayer(); private AutoPlayer aiPlayer; private Board board; @@ -49,7 +49,12 @@ public class Game extends Thread { private void aiPlayerTurn() { if(isAITurn()) { + if (AP.getAllLegalMoves(board.getBoard(), board.isTurnWhite()).size() != 0){ board.playMove(aiPlayer.computeBestMove(board.getBoard(),board.isTurnWhite())); + } + else { + mjf.showGameOverMessage("Game Over"); + } } } @@ -61,7 +66,13 @@ public class Game extends Thread { return; } if(!isAITurn()) { - board.userTouch(x, y); + if (AP.getAllLegalMoves(board.getBoard(), board.isTurnWhite()).size() != 0){ + board.userTouch(x, y); + } + else { + mjf.showGameOverMessage("Game Over"); + } + } } diff --git a/OOP_2B1_Project/src/windowInterface/MyInterface.java b/OOP_2B1_Project/src/windowInterface/MyInterface.java index a78c803..8e0da84 100644 --- a/OOP_2B1_Project/src/windowInterface/MyInterface.java +++ b/OOP_2B1_Project/src/windowInterface/MyInterface.java @@ -25,6 +25,7 @@ import java.util.Arrays; import java.util.LinkedList; import java.awt.event.ActionEvent; import javax.swing.JList; +import javax.swing.JOptionPane; import javax.swing.AbstractListModel; import javax.swing.JToggleButton; import javax.swing.JRadioButton; @@ -267,5 +268,8 @@ public class MyInterface extends JFrame { public void eraseLabels() { this.setStepBanner("Turn : X"); } - + + public void showGameOverMessage(String message) { + JOptionPane.showMessageDialog(this, message, "Game Over", JOptionPane.INFORMATION_MESSAGE); + } }