Compare commits
5 Commits
a3aba4498d
...
6820b2a84c
| Author | SHA1 | Date |
|---|---|---|
|
|
6820b2a84c | |
|
|
fe7abc9b4a | |
|
|
acceabcc0b | |
|
|
650b82dfa6 | |
|
|
14a6a332c7 |
|
|
@ -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
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
Loading…
Reference in New Issue