Board layout positions, cell numbering:
0 | 1 | 2
---------
3 | 4 | 5
---------
6 | 7 | 8
Board coding: "x" and "o" will be used for moves. "_" (underscore) will be used for unoccupied cells.
Convention: "x" always moves first.
The current state of a board is encoded in a 9-character string, where each character is either an "x", "o" or "_", starting from the position 0 then sequentially up to position 8 of the board.
Example... the board below is encoded as
"_x_ox_oox"
| x |
---------
o | x |
---------
o | o | x