correct queen move
authorLaurent Mazet <mazet@softndesign.org>
Tue, 9 Jul 2024 22:57:16 +0000 (00:57 +0200)
committerLaurent Mazet <mazet@softndesign.org>
Tue, 9 Jul 2024 22:57:16 +0000 (00:57 +0200)
display.c
function.c

index fa51bfd00a3eb6a8c343f56cfc17ade3f7835342..ebfd5250ef478a7145b348746211589daf9adc73 100644 (file)
--- a/display.c
+++ b/display.c
@@ -369,7 +369,7 @@ int cursorwindow (board_t *board, int x, int y, int queen, int mode)
         _element (board, x, y, (mode) ? '3' : '5');
         break;
     case '6':
-        _element (board, x, y, (mode) ? '8' : ';');
+        _element (board, x, y, (mode) ? '8' : ':');
         break;
     case '7':
         _element (board, x, y, (mode) ? '9' : ';');
index 9e5e25995e35f2ce1928a00bb01e6ea8305049d1..af0c3e7a95cc94a187108ec8ba047ea8ccbfdd6b 100644 (file)
@@ -458,6 +458,9 @@ int testqueenmove (board_t *board, int xcursor, int ycursor, int queen, int mode
 
 int testqueenjump (board_t *board, int xcursor, int ycursor, int mode)
 {
+    if (getvalue (board, xcursor, ycursor) / 2 != '6' / 2) {
+        return 0;
+    }
     int ret = 0;
     int delta = 0;
     switch (mode) {
@@ -500,11 +503,13 @@ int testqueenjump (board_t *board, int xcursor, int ycursor, int mode)
 int testqueenturn (board_t *board, int xcursor, int ycursor, int queen, int mode)
 {
     int ret = 0;
-    if ((queen == mode) || (queen == -1)) {
-        ret = (testqueenmove (board, xcursor, ycursor, queen, mode) ||
-            testqueenjump (board, xcursor, ycursor, mode));
-    } else {
-        ret = testqueenjump (board, xcursor, ycursor, mode);
+    if (getvalue (board, xcursor, ycursor) / 2 == '6' / 2) {
+        if ((queen == mode) || (queen == -1)) {
+            ret = (testqueenmove (board, xcursor, ycursor, queen, mode) ||
+                testqueenjump (board, xcursor, ycursor, mode));
+        } else {
+            ret = testqueenjump (board, xcursor, ycursor, mode);
+        }
     }
     return ret;
 }