]> git.cworth.org Git - loudgame/blobdiff - loa-board.c
Use loa_move_t structure instead of two x,y pairs
[loudgame] / loa-board.c
index 21f4302ffaf676283c0e7b1495f5839f191d0194..9478731e29cbb9455dd9da7f492239e5e9f052f5 100644 (file)
@@ -71,9 +71,11 @@ loa_move_init_from_string (loa_move_t *move, const char *string)
     move->y2 = 0;
     move->is_capture = 0;
 
-    matched = sscanf (string, "%c%d%c%c%d", &xc1, &y1, &sep, &xc2, &y2);
-    if (matched != 5)
+    matched = sscanf (string, " %c%d%c%c%d", &xc1, &y1, &sep, &xc2, &y2);
+    if (matched != 5) {
+       printf ("Matched only %d fields of %s\n", matched, string);
        return FALSE;
+    }
 
     x1 = tolower (xc1) - 'a';
     x2 = tolower (xc2) - 'a';
@@ -413,35 +415,30 @@ loa_board_add_move_to_history (loa_board_t        *board,
 
 int
 loa_board_move (loa_board_t *board,
-               int x1, int y1,
-               int x2, int y2,
+               loa_move_t *move,
                char **error)
 {
     loa_cell_t cell;
-    loa_move_t move;
-
-    move.x1 = x1;
-    move.y1 = y1;
-    move.x2 = x2;
-    move.y2 = y2;
 
-    if (! loa_board_move_legal (board, &move, error))
+    if (! loa_board_move_legal (board, move, error))
        return FALSE;
 
-    cell = loa_board_remove_piece (board, x1, y1);
+    cell = loa_board_remove_piece (board, move->x1, move->y1);
     assert (cell == board->player);
 
-    cell = loa_board_remove_piece (board, x2, y2);
+    cell = loa_board_remove_piece (board, move->x2, move->y2);
     if (cell == LOA_CELL_EMPTY) {
-       move.is_capture = FALSE;
+       move->is_capture = FALSE;
     } else {
        assert (cell != board->player);
-       move.is_capture = TRUE;
+       move->is_capture = TRUE;
     }
 
-    loa_board_add_piece (board, x2, y2, board->player);
+    loa_board_add_piece (board,
+                        move->x2, move->y2,
+                        board->player);
 
-    loa_board_add_move_to_history (board, &move);
+    loa_board_add_move_to_history (board, move);
 
     loa_board_next_player (board);