/* Test ttt-board.c */
-#include <stdio.h>
#include "ttt-board.h"
-int ttt_board_make_move (ttt_board_t *board, int move);
-
-int m;
-
-int ttt_board_make_move (ttt_board_t *board, int move)
-{
- putchar(move);
- if (board->cells[m] == '_')
- {
- board->cells[m] = 'X';
- return(1);
- }
- else
- {
- return(0);
- }
-}
-
-
int
main (void)
{
ttt_board_t board;
-
-
+ int m, i, newline;
+ ttt_cell_t winner, move_result;
+
ttt_board_init (&board);
- printf ("This is the board \"");
- ttt_board_write (&board, stdout);
- printf ("\"\n");
-
- printf ("Make a move");
- m = getchar();
- ttt_board_make_move (&board, m);
- printf ("This is the board \"");
+ i = 0; while (i < 9)
+ {
+ ttt_board_write (&board, stdout);
+ printf ("\n");
+
+ printf ("Make a move: ");
+ m = getchar();
+ if (m == EOF)
+ {
+ printf ("\nGoodbye.\n");
+ exit (1);
+ }
+ newline = getchar();
+ m -= '0';
+ move_result = ttt_board_make_move (&board, m);
+ if (move_result == TTT_ERROR_NOT_GRID)
+ {
+ printf ("Sorry, %c is an invalid move.\n"
+ "Please enter a number between 0 & 8.", m + '0');
+ continue;
+ }
+ if (move_result == TTT_ERROR_NOT_VALID_MOVE)
+ continue;
+
+ winner = ttt_board_is_won (&board);
+ if (winner == TTT_CELL_X)
+ {
+ printf ("X's Win! ");
+ break;
+ }
+ else if (winner == TTT_CELL_O)
+ {
+ printf ("O's Win! ");
+ break;
+ }
+ else if (i == 8)
+ {
+ printf ("Cat's Game!");
+ break;
+ }
+ i++;
+ }
+
ttt_board_write (&board, stdout);
- printf ("\"\n");
+ printf ("\n");
return 0;
}