From 57411656ad351f4737dd958c0c5642d40fa435fa Mon Sep 17 00:00:00 2001 From: Adam Date: Sat, 25 Jul 2026 18:12:01 +0200 Subject: fixing bug --- src/moves.cpp | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) (limited to 'src/moves.cpp') diff --git a/src/moves.cpp b/src/moves.cpp index 65a380a..05aaf13 100644 --- a/src/moves.cpp +++ b/src/moves.cpp @@ -44,6 +44,14 @@ void GenerateSlidingMoves(board *b, int from, int i2 = from; while (true) { i2 += direction; + int oldFile = (i2 - direction) % 8; + int newFile = i2 % 8; + + if (direction == 7 || direction == -7 || direction == 9 || + direction == -9) { + if (std::abs(newFile - oldFile) != 1) + break; + } if (i2 >= 64 || i2 < 0) { break; } @@ -54,7 +62,7 @@ void GenerateSlidingMoves(board *b, int from, (i2 / 8 != (i2 - direction) / 8)) { break; } - moves.push_back({IndexToPosition(i2), IndexToPosition(i2)}); + moves.push_back({IndexToPosition(from), IndexToPosition(i2)}); if (b->pieces[i2].color != b->turn && b->pieces[i2].type != NONE) { break; } -- cgit v1.2.3