test: add tests for bishop moves

This commit is contained in:
Cozma Rares
2023-04-17 14:07:32 +03:00
parent da29d2623a
commit 21b6de8d21
2 changed files with 690 additions and 363 deletions
File diff suppressed because it is too large Load Diff
+9 -7
View File
@@ -284,8 +284,8 @@ const PIECE_MOVE_INFO = Object.freeze({
b: {
generateMultiple: true,
moves: [
{ offset: -9, excludedFiles: [FILE.H] },
{ offset: -7, excludedFiles: [FILE.A] },
{ offset: -9, excludedFiles: [FILE.A] },
{ offset: -7, excludedFiles: [FILE.H] },
{ offset: 9, excludedFiles: [FILE.H] },
{ offset: 7, excludedFiles: [FILE.A] },
],
@@ -435,13 +435,11 @@ export function generatePieceMoves(
const moves: Move[] = [];
PIECE_MOVE_INFO[type].moves.forEach(({ offset, excludedFiles }) => {
if (excludedFiles.includes(file(position))) return;
let nextPosition = position + offset;
while (
nextPosition >= 0 &&
nextPosition < 64 &&
!excludedFiles.includes(file(nextPosition))
) {
while (nextPosition >= 0 && nextPosition < 64) {
const attackedPiece = board[nextPosition];
if (attackedPiece == null) {
@@ -450,7 +448,11 @@ export function generatePieceMoves(
to: algebraic(nextPosition),
flag: MOVE_FLAGS.NORMAL,
});
if (excludedFiles.includes(file(nextPosition))) break;
nextPosition += offset;
continue;
}