91 lines
2.6 KiB
Java
91 lines
2.6 KiB
Java
/*package backend;
|
|
|
|
public class SpecialMoves {
|
|
<<<<<<< HEAD
|
|
|
|
private Piece piece;
|
|
private Board board;
|
|
|
|
|
|
private Piece piece;
|
|
private Board board;
|
|
private int x = piece.getX();
|
|
private int y = piece.getY();
|
|
private PieceType type = PieceType.getType();
|
|
private boolean isWhite;
|
|
|
|
/* public SpecialMoves(Piece piece, Board board) {
|
|
this.piece = piece;
|
|
this.board = board;
|
|
} //???
|
|
|
|
public boolean checkCoordinates(int x, int y, PieceType type, boolean isWhite) {
|
|
if (type == PieceType.Pawn || isWhite == true || y == 6) {
|
|
int[][] offsets = {{1, -2}, {-1, -2}};
|
|
}
|
|
if (type == PieceType.Pawn || isWhite == false || y == 1) {
|
|
int[][] offsets = {{1, 2}, {-1, 2}};
|
|
}*/
|
|
|
|
|
|
/* public boolean checkCoordinates(int x, int y, PieceType type, boolean isWhite) {
|
|
if (type == PieceType.Pawn || isWhite == true || y == 3) {
|
|
>>>>>>> branch 'master' of https://gitarero.ecam.fr/louise.berteloot/OOP_2A5_Project.git
|
|
int[][] offsets = {{1, 0}, {-1, 0}};
|
|
|
|
}
|
|
if (type == PieceType.Pawn && isWhite == false && y == 4) {
|
|
int[][] offsets = {{1, 0}, {-1, 0}};
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
public boolean isEnpassant() {
|
|
boolean isWhite = piece.isWhite();
|
|
<<<<<<< HEAD
|
|
if (boolean isWhite == true && PieceType getType() == PieceType.Pawn) { //no idea honestly
|
|
=======
|
|
if (isWhite == true || PieceType getType() == PieceType.Pawn) { //no idea honestly
|
|
>>>>>>> branch 'master' of https://gitarero.ecam.fr/louise.berteloot/OOP_2A5_Project.git
|
|
if ()
|
|
|
|
}
|
|
if (boolean isWhite == false && //PieceType type == Pawn) {
|
|
if ()
|
|
}
|
|
}
|
|
|
|
}
|
|
package backend;
|
|
|
|
public class SpecialMoves {
|
|
|
|
private Piece piece;
|
|
private Board board;
|
|
|
|
public SpecialMoves(Piece piece, Board board) {
|
|
this.piece = piece;
|
|
this.board = board;
|
|
}
|
|
|
|
// Call this when trying to move a pawn to check for en passant
|
|
public boolean isEnpassant(int fromX, int fromY, int toX, int toY) {
|
|
if (piece.getType() != PieceType.Pawn) return false;
|
|
|
|
boolean isWhite = piece.isWhite();
|
|
|
|
// En passant capture happens diagonally
|
|
int dx = toX - fromX;
|
|
int dy = toY - fromY;
|
|
|
|
if (Math.abs(dx) != 1 || (isWhite && dy != -1) || (!isWhite && dy != 1)) {
|
|
return false;
|
|
}
|
|
|
|
// Check the adjacent piece
|
|
Piece sidePawn = board.getPieceAt(toX, fromY);
|
|
if (sidePawn == null || sidePawn.getType() != PieceType.Pawn || sidePawn.isWhite() == isWhite) {
|
|
|
|
*/ |