]> git.cworth.org Git - ttt/blob - src/ttt-board.h
c75c168960f9ebac1e49dfc3f5c0863b82af0cf6
[ttt] / src / ttt-board.h
1 /* ttt.c - client-server tic-tac-toe game
2  *
3  * Copyright © 2005 Carl Worth
4  *
5  * This program is free software; you can redistribute it and/or modify
6  * it under the terms of the GNU General Public License as published by
7  * the Free Software Foundation; either version 2, or (at your option)
8  * any later version.
9  *
10  * This program is distributed in the hope that it will be useful,
11  * but WITHOUT ANY WARRANTY; without even the implied warranty of
12  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13  * GNU General Public License for more details.
14  *
15  * You should have received a copy of the GNU General Public License
16  * along with this program; if not, write to the Free Software Foundation,
17  * Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
18  *
19  * Author: Carl Worth <cworth@cworth.org>
20  */
21
22 #ifndef _TTT_BOARD_H_
23 #define _TTT_BOARD_H_
24
25 #include "ttt.h"
26 #include "ttt-error.h"
27
28 #define TTT_BOARD_MAX_CELLS 9
29
30 typedef enum {
31     TTT_CELL_EMPTY = '_',
32     TTT_CELL_X     = 'X',
33     TTT_CELL_O     = 'O'
34 } ttt_cell_t;
35
36 typedef struct _ttt_board {
37     ttt_cell_t cells[TTT_BOARD_MAX_CELLS];
38     ttt_cell_t current_player;
39 } ttt_board_t;
40
41 void
42 ttt_board_init (ttt_board_t *board);
43
44 void
45 ttt_board_init_from_string (ttt_board_t *board,
46                             const char  *s);
47
48 char *
49 ttt_board_to_string (ttt_board_t *board);
50
51 void
52 ttt_board_write (ttt_board_t *board, FILE *file);
53
54 ttt_error_t
55 ttt_board_make_move (ttt_board_t *board, int move);
56
57 #endif
58
59