aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAdam <adammegarules1@gmail.com>2026-07-25 18:12:01 +0200
committerAdam <adammegarules1@gmail.com>2026-07-25 18:12:24 +0200
commit57411656ad351f4737dd958c0c5642d40fa435fa (patch)
tree93d8b6433f1e2bb8c01a60c8840d9e5750014996
parent98e5c1107ad8f8b22b624ab13c3c96fcbb37cdd2 (diff)
fixing bug
-rw-r--r--src/moves.cpp10
1 files changed, 9 insertions, 1 deletions
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;
}