#include "ttt-board.h"
-ttt_cell_t ttt_test_board_is_won (ttt_board_t *board);
-
int
main (void)
{
ttt_board_t board;
int m, i, newline;
+ ttt_cell_t winner, move_result;
ttt_board_init (&board);
- for (i = 0; i <= 8; i++)
+
+ i = 0; while (i < 9)
{
- printf ("This is the board \"");
ttt_board_write (&board, stdout);
- printf ("\"\n");
-
- printf ("Make a move \n");
+ printf ("\n");
+
+ printf ("Make a move: ");
m = getchar();
+ if (m == EOF)
+ {
+ printf ("\nGoodbye.\n");
+ exit (1);
+ }
newline = getchar();
- printf ("getchar returned a numeric value of %d which is character '%c'\n", m, m);
- m = m - '0';
- ttt_board_make_move (&board, m);
- ttt_board_is_won (&board);
- if (ttt_board_is_won (&board) == TTT_CELL_X)
+ 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 (ttt_board_is_won (&board) == TTT_CELL_O)
+ else if (winner == TTT_CELL_O)
{
printf ("O's Win! ");
break;
}
+ else if (i == 8)
+ {
+ printf ("Cat's Game!");
+ break;
+ }
+ i++;
}
-
- printf ("This is the board \"");
+
ttt_board_write (&board, stdout);
- printf ("\"\n");
-
+ printf ("\n");
return 0;
}