Compare commits

..

5 Commits

Author SHA1 Message Date
bensefia 6820b2a84c Merge branch 'master' of
https://gitarero.ecam.fr/ilian.bensefia/OOP_2B6_PROJECT.git
2025-05-13 15:44:25 +02:00
bensefia fe7abc9b4a board 2025-05-13 15:43:04 +02:00
bensefia acceabcc0b gg 2025-05-13 14:55:59 +02:00
bensefia 650b82dfa6 v 2025-05-13 14:55:23 +02:00
bensefia 14a6a332c7 rfg 2025-05-13 14:55:03 +02:00
2 changed files with 49 additions and 0 deletions

View File

@ -58,5 +58,10 @@ public class AutoPlayer {
return null;
}
}
<<<<<<< HEAD
//pour maieul push bbh fhfgv
=======
>>>>>>> branch 'master' of https://gitarero.ecam.fr/ilian.bensefia/OOP_2B6_PROJECT.git

View File

@ -79,6 +79,7 @@ public class Board {
public void userTouch(int x, int y) {
if (gameOver) return;
Piece clickedPiece = getPieceAt(x, y);
if (selectedX == null || selectedY == null) {
if (clickedPiece != null && clickedPiece.isWhite() == turnIsWhite) {
selectedX = x;
@ -88,6 +89,41 @@ public class Board {
} else {
Piece selectedPiece = getPieceAt(selectedX, selectedY);
if (selectedPiece != null && selectedPiece.isWhite() == turnIsWhite) {
<<<<<<< HEAD
// simulate move
Board simulation = new Board(this);
simulation.pieces.removeIf(p -> p.getX() == selectedX && p.getY() == selectedY);
simulation.pieces.removeIf(p -> p.getX() == x && p.getY() == y);
simulation.pieces.add(new Piece(
selectedPiece.isWhite(),
selectedPiece.getType(),
x,
y
));
// check if move is legal (king remains safe)
if (!simulation.isKingInCheck(turnIsWhite)) {
Piece captured = getPieceAt(x, y);
pieces.removeIf(p -> p.getX() == x && p.getY() == y);
pieces.removeIf(p -> p.getX() == selectedX && p.getY() == selectedY);
pieces.add(new Piece(
selectedPiece.isWhite(),
selectedPiece.getType(),
x,
y
));
Move move = new Move(selectedPiece, selectedX, selectedY, x, y, captured);
moveHistory.push(move);
turnNumber++;
turnIsWhite = !turnIsWhite;
// check for checkmate on the opponent
if (isCheckmate(!turnIsWhite)) {
gameOver = true;
}
=======
Piece captured = getPieceAt(x, y);
// Détection de la capture du roi (sécuritaire)
if (captured != null && captured.getType() == PieceType.King) {
@ -104,14 +140,18 @@ public class Board {
if (isInCheck(turnIsWhite) && !hasLegalMoves(turnIsWhite)) {
gameOver = true;
System.out.println("Game over: Checkmate.");
>>>>>>> branch 'master' of https://gitarero.ecam.fr/ilian.bensefia/OOP_2B6_PROJECT.git
}
}
// deselect in all cases
selectedX = null;
selectedY = null;
highlightedPositions.clear();
}
}
public void undoLastMove() {
if (moveHistory.isEmpty()) return;
Move lastMove = moveHistory.pop();
@ -327,3 +367,7 @@ public class Board {
}
}
}
<<<<<<< HEAD
// loadhg
=======
>>>>>>> branch 'master' of https://gitarero.ecam.fr/ilian.bensefia/OOP_2B6_PROJECT.git