X-Git-Url: https://git.cworth.org/git?p=loudgame;a=blobdiff_plain;f=loa-board.c;h=9478731e29cbb9455dd9da7f492239e5e9f052f5;hp=21f4302ffaf676283c0e7b1495f5839f191d0194;hb=f37ff234d97a4fb8532f8c9387fb7fff5780afaf;hpb=88c5b7fb802cd1eab050dc67289d86dcb37dec6c diff --git a/loa-board.c b/loa-board.c index 21f4302..9478731 100644 --- a/loa-board.c +++ b/loa-board.c @@ -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);