]> git.cworth.org Git - ttt/blobdiff - src/test-board.c
2006-01-14 Carl Worth <cworth@cworth.org>
[ttt] / src / test-board.c
index 463e1b9eec267a35ef6cf17b8614477d5b5e5a59..0ec4e24275565ff3c2cdec05b229d7914db0a9f2 100644 (file)
@@ -7,33 +7,56 @@ main (void)
 {
     ttt_board_t board;
     int m, i, newline;
 {
     ttt_board_t board;
     int m, i, newline;
+    ttt_cell_t winner, move_result;
 
     ttt_board_init (&board);
     
 
     ttt_board_init (&board);
     
-    for (i = 0; i <= 8; i++)
+
+    i = 0; while (i < 9)
     {
        ttt_board_write (&board, stdout);
        printf ("\n");    
     {
        ttt_board_write (&board, stdout);
        printf ("\n");    
-
-       printf ("Make a move ");
+       
+       printf ("Make a move: ");
        m = getchar();
        m = getchar();
+       if (m == EOF)
+       {
+           printf ("\nGoodbye.\n");
+           exit (1);
+       }
        newline = getchar();
        newline = getchar();
-       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;
        }
        {
            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;
        }
        {
            printf ("O's Win! ");
            break;
        }
+       else if (i == 8)
+       {
+           printf ("Cat's Game!");
+           break;
+       }
+       i++;
     }
     }
-
+    
     ttt_board_write (&board, stdout);
     ttt_board_write (&board, stdout);
-    printf ("\n");    
+    printf ("\n");
+
     return 0;
 }
     return 0;
 }