nope sorry wrong change
This commit is contained in:
parent
3509653392
commit
595ca18c90
|
|
@ -1,6 +1,8 @@
|
||||||
package backend;
|
package backend;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
import java.util.Stack;
|
||||||
|
|
||||||
|
|
||||||
public class Board {
|
public class Board {
|
||||||
|
|
||||||
|
|
@ -204,7 +206,7 @@ public class Board {
|
||||||
selectedX = null;
|
selectedX = null;
|
||||||
selectedY = null;
|
selectedY = null;
|
||||||
highlightedSquares.clear();
|
highlightedSquares.clear();
|
||||||
|
|
||||||
// Check for en passant capture BEFORE updating enPassantTarget!
|
// Check for en passant capture BEFORE updating enPassantTarget!
|
||||||
if (selectedPiece.getType() == PieceType.Pawn &&
|
if (selectedPiece.getType() == PieceType.Pawn &&
|
||||||
enPassantTarget != null &&
|
enPassantTarget != null &&
|
||||||
|
|
@ -460,14 +462,6 @@ public ArrayList<int[]> computeLegalMoves(Piece piece) {
|
||||||
if (y == startRow && isEmpty(x, twoStepsY)) {
|
if (y == startRow && isEmpty(x, twoStepsY)) {
|
||||||
moves.add(new int[]{x, twoStepsY});
|
moves.add(new int[]{x, twoStepsY});
|
||||||
}
|
}
|
||||||
if (nextY == 7 ){
|
|
||||||
setPiece(false , PieceType.Queen, x,nextY);
|
|
||||||
pieces.remove(piece);
|
|
||||||
}
|
|
||||||
if (nextY==0 ){
|
|
||||||
setPiece(true , PieceType.Queen, x,nextY);
|
|
||||||
pieces.remove(piece);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Diagonal capture
|
// Diagonal capture
|
||||||
|
|
@ -477,24 +471,26 @@ public ArrayList<int[]> computeLegalMoves(Piece piece) {
|
||||||
if (isEnemy(x + 1, nextY, piece.isWhite())) {
|
if (isEnemy(x + 1, nextY, piece.isWhite())) {
|
||||||
moves.add(new int[]{x + 1, nextY});
|
moves.add(new int[]{x + 1, nextY});
|
||||||
}
|
}
|
||||||
|
if (y==7){
|
||||||
|
setPiece(false , PieceType.Queen, x,y);
|
||||||
|
pieces.remove(piece);
|
||||||
|
|
||||||
|
}
|
||||||
|
if (y==0 ){
|
||||||
|
setPiece(true , PieceType.Queen, x,y);
|
||||||
|
pieces.remove(piece);
|
||||||
|
}
|
||||||
// En passant
|
// En passant
|
||||||
if (enPassantTarget != null) {
|
if (enPassantTarget != null) {
|
||||||
int targetX = enPassantTarget[0];
|
int targetX = enPassantTarget[0];
|
||||||
int targetY = enPassantTarget[1];
|
int targetY = enPassantTarget[1];
|
||||||
if (nextY == targetY && Math.abs(x - targetX) == 1) {
|
|
||||||
moves.add(new int[]{targetX, targetY});
|
if(!piece.isWhite() && y==4 && targetY==5 && Math.abs(x-targetX)==1) {
|
||||||
|
moves.add(new int[] {targetX, targetY});
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
// Promotion check (you shouldn't promote here — only on move execution)
|
|
||||||
// Do NOT change piece type inside this method
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
if (type == PieceType.Rook) {
|
if (type == PieceType.Rook) {
|
||||||
// Directions : haut, bas, gauche, droite
|
// Directions : haut, bas, gauche, droite
|
||||||
int[][] directions = {{1,0},{-1,0},{0,1},{0,-1}};
|
int[][] directions = {{1,0},{-1,0},{0,1},{0,-1}};
|
||||||
|
|
@ -589,9 +585,26 @@ public ArrayList<int[]> computeLegalMoves(Piece piece) {
|
||||||
|
|
||||||
|
|
||||||
return moves;
|
return moves;
|
||||||
|
}
|
||||||
|
public int[] findKingPosition(boolean isWhite) {
|
||||||
|
for (Piece piece : pieces) {
|
||||||
|
if (piece.getType() == PieceType.King && piece.isWhite() == isWhite) {
|
||||||
|
return new int[]{piece.getX(), piece.getY()};
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return null; // Erreur : le roi n'a pas été trouvé (ne devrait pas arriver)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public ArrayList<int[]> getAllMoves(boolean isWhite) {
|
||||||
|
ArrayList<int[]> allMoves = new ArrayList<>();
|
||||||
|
for (Piece piece : pieces) {
|
||||||
|
if (piece.isWhite() == isWhite) {
|
||||||
|
ArrayList<int[]> moves = computeLegalMoves(piece);
|
||||||
|
for (int[] move : moves) {
|
||||||
|
allMoves.add(new int[]{piece.getX(), piece.getY(), move[0], move[1]});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return allMoves;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
Loading…
Reference in New Issue