the rest ig that didn't commit?

This commit is contained in:
Juliette 2025-05-21 21:02:17 +02:00
parent fb2ab062a8
commit 7fd58ec396
2 changed files with 73 additions and 0 deletions

View File

@ -0,0 +1,73 @@
package backend;
public class chessRulesCheck {
//The basic rules needed for CASTLING!!!!!!!!! useful for the rest of course ;)
public boolean isInCheck (Board board, boolean isWhite){ //is under attack + is king
int kx = -1, ky = -1;
for (Piece p : board.getPieces()) {
if (p.getType() == PieceType.King && p.isWhite() == isWhite) {
kx = p.getX();
ky = p.getY();
break;
}
}
if (kx < 0)
return false;
for (Piece p : board.getPieces()) {
if (p.isWhite() == isWhite) continue;
for (Board.Position pos : board.findMoves(p)) {
if (pos.x == kx && pos.y == ky)
return true;
}
}
return false;
}
public boolean getsChecked (Board board, int x, int y, boolean byWhite){
for (Piece p : board.getPieces()) {
if (p.isWhite() != byWhite) continue;
for (Board.Position pos : board.findMoves(p)) {
if (pos.x == x && pos.y == y)
return true;
}
}
return false;
}
public boolean nothingInBetween (Board board, boolean isWhite, boolean kingSide) {
int rank = isWhite ? 7 : 0;
int kx = 4;
int rx = kingSide ? 7 : 0;
int start = Math.min(kx, rx) + 1;
int end = Math.max(kx, rx) - 1;
for (int x = start; x <= end; x++) {
if (board.getPieceAt(x, rank) != null)
return false;
}
return true;
}
public boolean hasMoved (Board board, boolean isWhite, boolean kingSide) {
Piece king = null, rook = null;
for (Piece p : board.getPieces()) {
if (p.getType() == PieceType.King && p.isWhite() == isWhite) king = p;
if (p.getType() == PieceType.Rook && p.isWhite() == isWhite) {
if (kingSide && p.getX() == 7) rook = p;
if (!kingSide && p.getX() == 0) rook = p;
}
}
if (king == null || rook == null) return true;
return king.hasMoved() || rook.hasMoved();
}
}

0
test Normal file
View File