Game Over

This commit is contained in:
Romain MURPHY 2025-04-28 11:09:35 +02:00
parent 9e3426ea32
commit 1114622c03
4 changed files with 27 additions and 12 deletions

View File

@ -1,9 +1,9 @@
BR, ,BB,BQ,BK,BB,BN,BR BR, , ,BK, ,BR, ,
BP,BP,BP,BP,BP,BP,BP,BP BP,BP,BP, , ,BP,BP,BP
, ,BN, , , , , , , , ,WP, , ,
, , , , , , , , , , , , , ,
, , ,WP, ,WB, ,
, , , , , , , , , , , , , ,
WP,WP,WP, ,WP,WP,WP,WP , , , , , , ,
WR,WN, ,WQ,WK,WB,WN,WR WP,WP,WP, , ,WP,WP,WP
3B WR,WN,WB,WQ,WK,WB,WN,WR
3W

View File

@ -181,7 +181,7 @@ public class AutoPlayer {
return copy; return copy;
} }
private ArrayList<Move> getAllLegalMoves(ArrayList<ArrayList<Piece>> board, boolean isWhiteTurn) { public ArrayList<Move> getAllLegalMoves(ArrayList<ArrayList<Piece>> board, boolean isWhiteTurn) {
ArrayList<Move> legalMoves = new ArrayList<>(); ArrayList<Move> legalMoves = new ArrayList<>();
for (ArrayList<Piece> row : board) { for (ArrayList<Piece> row : board) {
@ -198,8 +198,8 @@ public class AutoPlayer {
} }
} }
} }
return legalMoves; return legalMoves;
} }
private int getPositionalBonus(Piece piece, int x, int y) { private int getPositionalBonus(Piece piece, int x, int y) {

View File

@ -3,7 +3,7 @@ package backend;
import windowInterface.MyInterface; import windowInterface.MyInterface;
public class Game extends Thread { public class Game extends Thread {
private AutoPlayer AP = new AutoPlayer();
private AutoPlayer aiPlayer; private AutoPlayer aiPlayer;
private Board board; private Board board;
@ -49,7 +49,12 @@ public class Game extends Thread {
private void aiPlayerTurn() { private void aiPlayerTurn() {
if(isAITurn()) { if(isAITurn()) {
if (AP.getAllLegalMoves(board.getBoard(), board.isTurnWhite()).size() != 0){
board.playMove(aiPlayer.computeBestMove(board.getBoard(),board.isTurnWhite())); board.playMove(aiPlayer.computeBestMove(board.getBoard(),board.isTurnWhite()));
}
else {
mjf.showGameOverMessage("Game Over");
}
} }
} }
@ -61,7 +66,13 @@ public class Game extends Thread {
return; return;
} }
if(!isAITurn()) { if(!isAITurn()) {
board.userTouch(x, y); if (AP.getAllLegalMoves(board.getBoard(), board.isTurnWhite()).size() != 0){
board.userTouch(x, y);
}
else {
mjf.showGameOverMessage("Game Over");
}
} }
} }

View File

@ -25,6 +25,7 @@ import java.util.Arrays;
import java.util.LinkedList; import java.util.LinkedList;
import java.awt.event.ActionEvent; import java.awt.event.ActionEvent;
import javax.swing.JList; import javax.swing.JList;
import javax.swing.JOptionPane;
import javax.swing.AbstractListModel; import javax.swing.AbstractListModel;
import javax.swing.JToggleButton; import javax.swing.JToggleButton;
import javax.swing.JRadioButton; import javax.swing.JRadioButton;
@ -268,4 +269,7 @@ public class MyInterface extends JFrame {
this.setStepBanner("Turn : X"); this.setStepBanner("Turn : X");
} }
public void showGameOverMessage(String message) {
JOptionPane.showMessageDialog(this, message, "Game Over", JOptionPane.INFORMATION_MESSAGE);
}
} }