X-Git-Url: https://git.cworth.org/git?a=blobdiff_plain;f=src%2Fttt-board.c;h=d231ea943ad52d4ddb252c1debe773ea4e79b40a;hb=5166baca35916a708e6ad8539e5cb333bbcfeb18;hp=f8f62e045de587631fa10c5c1caceee3a3fdecd0;hpb=8c8f61b622b928b3a670ceaeea426321e72378d4;p=ttt diff --git a/src/ttt-board.c b/src/ttt-board.c index f8f62e0..d231ea9 100644 --- a/src/ttt-board.c +++ b/src/ttt-board.c @@ -94,15 +94,20 @@ ttt_board_write (ttt_board_t *board, FILE *file) * 3|4|5 * 6|7|8 * - * Returns: TTT_ERROR_NONE if a move is made succesfully. TTT_ERROR_NOT_VALID_MOVE - * if a move is invalid (the given cell is not empty). + * Returns: TTT_ERROR_NONE if a move is made + * succesfully. TTT_ERROR_NOT_VALID_MOVE if a move is invalid (the + * given cell is not empty). TTT_ERROR_NOT_GRID if the move is + * impossible (user input 'a' or '9' etc.) */ ttt_error_t ttt_board_make_move (ttt_board_t *board, int move) { + if (move < 0 || move > 8) + return TTT_ERROR_NOT_GRID; + if (board->cells[move] != TTT_CELL_EMPTY) return TTT_ERROR_NOT_VALID_MOVE; - + board->cells[move] = board->current_player; if (board->current_player == TTT_CELL_X) @@ -112,10 +117,12 @@ ttt_error_t ttt_board_make_move (ttt_board_t *board, int move) return TTT_ERROR_NONE; } -/* Checks to see if a player has won the game and should be called after every move. +/* Checks to see if a player has won the game and should be called + * after every move. * - * Returns: TTT_CELL_X if X's win. TTT_CELL_O if O's win. - * The game can then check the value of the return and declare the winner. + * Returns: TTT_CELL_X if X's win. TTT_CELL_O if O's + * win. TTT_CELL_EMPTY if no win. The game can then check the value + * of the return and declare the winner. */ ttt_cell_t ttt_board_is_won (ttt_board_t *board) @@ -123,7 +130,7 @@ ttt_cell_t ttt_board_is_won (ttt_board_t *board) int i; /* Loop over rows and columns looking for a win. */ - for (i = 0; i <= 2; i++) + for (i = 0; i < 3; i++) { /* Check the current column */ if (board->cells[i] != TTT_CELL_EMPTY &&