diff options
| author | Scott Gasch <[email protected]> | 2016-06-01 19:41:17 -0700 |
|---|---|---|
| committer | Scott Gasch <[email protected]> | 2016-06-01 19:41:17 -0700 |
| commit | 6d38eb746e86589e3b8fa10ba37d206af5eb7ebf (patch) | |
| tree | 0d84c8901ff5df4dff2386e55b454c9001d1582d /ver2/ttt.h | |
Initial checking of tic tac toe minimax tutorial code.
Diffstat (limited to 'ver2/ttt.h')
| -rw-r--r-- | ver2/ttt.h | 74 |
1 files changed, 74 insertions, 0 deletions
diff --git a/ver2/ttt.h b/ver2/ttt.h new file mode 100644 index 0000000..2cee8f3 --- /dev/null +++ b/ver2/ttt.h @@ -0,0 +1,74 @@ +#ifndef TTT_H_ +#define TTT_H_ + +#define ALPHA_BETA_SEARCH 1 + +#define TRUE (1) +#define FALSE (0) + +#define IN +#define OUT + +typedef unsigned int BOOL; + +// +// Constants for each state a board square can be in and a programmer +// defined type for these states. +// +#define X_MARK (-1) +#define EMPTY (0) +#define O_MARK (+1) +#define TIE (+2) +#define OPPOSITE_MARK(m) ((m) * -1) +#define X_OR_O(m) (((m) == X_MARK) || \ + ((m) == O_MARK)) + +typedef signed char SQUARE; +#define IS_SQUARE_EMPTY(x) (x == EMPTY) + +// +// A (simple) representation of a tic tac toe position +// +#define BOARD_SIZE (3) + +typedef struct _POSITION +{ + SQUARE sWhoseTurn; + SQUARE sBoard[BOARD_SIZE][BOARD_SIZE]; + unsigned int uNumEmpty; +} POSITION; + +#define NUM_TO_HPOS(x) ((x) % BOARD_SIZE) +#define NUM_TO_VPOS(x) ((x) / BOARD_SIZE) + +// +// A representation of a move in a tic tac toe game +// +typedef unsigned int COORD; + +typedef struct _MOVE +{ + COORD cHpos; + COORD cVpos; + SQUARE sMark; +} MOVE; + +// +// Score values +// +#define INFINITY (+100) +#define DRAWSCORE (0) + +// +// An assert mechanism +// +#ifdef DEBUG +#define ASSERT(x) if (x) \ + { ; } \ + else \ + { (void) _assert(__FILE__, __LINE__); } +#else +#define ASSERT(x) ; +#endif /* DEBUG */ + +#endif /* TTT_H_ */ |
