Let's say, you're creating the competitor:
fred.py.
The GameDriver.py program will launch your program with (at least) the following
command-line arguments:
fred.py action=?? outputfile=?? result_prefix=?? ply=?? play=?? board=?? cputime=?? (and any additional debugging arguments given on the UI)
Argument | Value |
action | "id" means return the author and title "move" means return the best move and the maximum ply that actually computed it |
outputfile | Write the result of the action (move, or title and author) into this file |
result_prefix | Write this string into the outputfile before writing the result(s) above |
ply | Limit the depth of the search to this maximu ply |
play | the player is now either "x" or "o" -- "x" means black, and "o" means white |
board | the string encoding the current state of the board (see below for the board layout) |
cputime | maximum number of seconds of cputime |
Typical call:
fred.py action=move outputfile=out-11568.txt result_prefix=ANSWER: ply=4 play=x cputime=1.5 board=---------------------------xo------ox---------------------------
Board encoding:
The current state of othello board is encoded as a 64-character string consisting of the letters "x", "o" and "-". For instance, in the board string above, position 0 contains "x", position 2 contains "o", position 5 contains "o" and position 7 contains "x". These are the positions that the two players "x" and "o" have played so far. All 38 other positions are not yet played.
The mapping between string positions (from 0 to 63) and the 2-D visual representation of the board is:
56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 |
48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 |
40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 |
32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 |
24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 |
16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 |
8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 |
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
So the board-string: board=---------------------------xo------ox--------------------------- is equivalent to the layout below (remember: x=black, o=white), which is the starting position for all games. The first "x" is in position 27 in the string, and the other "x" is in position 36.
o | x | ||||||
x | o | ||||||