nope sorry wrong change
This commit is contained in:
parent
3509653392
commit
595ca18c90
|
|
@ -1,6 +1,8 @@
|
|||
package backend;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Stack;
|
||||
|
||||
|
||||
public class Board {
|
||||
|
||||
|
|
@ -460,14 +462,6 @@ public ArrayList<int[]> computeLegalMoves(Piece piece) {
|
|||
if (y == startRow && isEmpty(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
|
||||
|
|
@ -477,24 +471,26 @@ public ArrayList<int[]> computeLegalMoves(Piece piece) {
|
|||
if (isEnemy(x + 1, nextY, piece.isWhite())) {
|
||||
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
|
||||
if (enPassantTarget != null) {
|
||||
int targetX = enPassantTarget[0];
|
||||
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) {
|
||||
// Directions : haut, bas, gauche, droite
|
||||
int[][] directions = {{1,0},{-1,0},{0,1},{0,-1}};
|
||||
|
|
@ -589,9 +585,26 @@ public ArrayList<int[]> computeLegalMoves(Piece piece) {
|
|||
|
||||
|
||||
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