diff --git a/testbed/2players/test1.cand b/testbed/2players/test1.cand
new file mode 100644
index 0000000000000000000000000000000000000000..a40fe3f71b2d5a427f7f139a437e8e9a076f7a6e
--- /dev/null
+++ b/testbed/2players/test1.cand
@@ -0,0 +1,121 @@
+Board size is 6x7 (rows x col)
+┌─┬─┬─┬─┬─┬─┬─┐
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+└─┴─┴─┴─┴─┴─┴─┘
+ 1 2 3 4 5 6 7
+Column number? (starts at 1):
+┌─┬─┬─┬─┬─┬─┬─┐
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │X│ │ │ │
+└─┴─┴─┴─┴─┴─┴─┘
+ 1 2 3 4 5 6 7
+Column number? (starts at 1):
+┌─┬─┬─┬─┬─┬─┬─┐
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│O│ │ │X│ │ │ │
+└─┴─┴─┴─┴─┴─┴─┘
+ 1 2 3 4 5 6 7
+Column number? (starts at 1):
+┌─┬─┬─┬─┬─┬─┬─┐
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │X│ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│O│ │ │X│ │ │ │
+└─┴─┴─┴─┴─┴─┴─┘
+ 1 2 3 4 5 6 7
+Column number? (starts at 1):
+┌─┬─┬─┬─┬─┬─┬─┐
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│O│ │ │X│ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│O│ │ │X│ │ │ │
+└─┴─┴─┴─┴─┴─┴─┘
+ 1 2 3 4 5 6 7
+Column number? (starts at 1):
+┌─┬─┬─┬─┬─┬─┬─┐
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │X│ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│O│ │ │X│ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│O│ │ │X│ │ │ │
+└─┴─┴─┴─┴─┴─┴─┘
+ 1 2 3 4 5 6 7
+Column number? (starts at 1):
+┌─┬─┬─┬─┬─┬─┬─┐
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│O│ │ │X│ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│O│ │ │X│ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│O│ │ │X│ │ │ │
+└─┴─┴─┴─┴─┴─┴─┘
+ 1 2 3 4 5 6 7
+Column number? (starts at 1):
+┌─┬─┬─┬─┬─┬─┬─┐
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │X│ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│O│ │ │X│ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│O│ │ │X│ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│O│ │ │X│ │ │ │
+└─┴─┴─┴─┴─┴─┴─┘
+ 1 2 3 4 5 6 7
+Player one won!
diff --git a/testbed/2players/test2.cand b/testbed/2players/test2.cand
new file mode 100644
index 0000000000000000000000000000000000000000..a8ff64e733c319b5fd9abebdc7524e90141d03a2
--- /dev/null
+++ b/testbed/2players/test2.cand
@@ -0,0 +1,121 @@
+Board size is 6x7 (rows x col)
+┌─┬─┬─┬─┬─┬─┬─┐
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+└─┴─┴─┴─┴─┴─┴─┘
+ 1 2 3 4 5 6 7
+Column number? (starts at 1):
+┌─┬─┬─┬─┬─┬─┬─┐
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│X│ │ │ │ │ │ │
+└─┴─┴─┴─┴─┴─┴─┘
+ 1 2 3 4 5 6 7
+Column number? (starts at 1):
+┌─┬─┬─┬─┬─┬─┬─┐
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│O│ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│X│ │ │ │ │ │ │
+└─┴─┴─┴─┴─┴─┴─┘
+ 1 2 3 4 5 6 7
+Column number? (starts at 1):
+┌─┬─┬─┬─┬─┬─┬─┐
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│O│ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│X│X│ │ │ │ │ │
+└─┴─┴─┴─┴─┴─┴─┘
+ 1 2 3 4 5 6 7
+Column number? (starts at 1):
+┌─┬─┬─┬─┬─┬─┬─┐
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│O│O│ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│X│X│ │ │ │ │ │
+└─┴─┴─┴─┴─┴─┴─┘
+ 1 2 3 4 5 6 7
+Column number? (starts at 1):
+┌─┬─┬─┬─┬─┬─┬─┐
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│O│O│ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│X│X│X│ │ │ │ │
+└─┴─┴─┴─┴─┴─┴─┘
+ 1 2 3 4 5 6 7
+Column number? (starts at 1):
+┌─┬─┬─┬─┬─┬─┬─┐
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│O│O│O│ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│X│X│X│ │ │ │ │
+└─┴─┴─┴─┴─┴─┴─┘
+ 1 2 3 4 5 6 7
+Column number? (starts at 1):
+┌─┬─┬─┬─┬─┬─┬─┐
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│O│O│O│ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│X│X│X│X│ │ │ │
+└─┴─┴─┴─┴─┴─┴─┘
+ 1 2 3 4 5 6 7
+Player one won!
diff --git a/testbed/2players/test3.cand b/testbed/2players/test3.cand
new file mode 100644
index 0000000000000000000000000000000000000000..f9eba0cb5ff80edb36510aa405037f018c69966c
--- /dev/null
+++ b/testbed/2players/test3.cand
@@ -0,0 +1,181 @@
+Board size is 6x7 (rows x col)
+┌─┬─┬─┬─┬─┬─┬─┐
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+└─┴─┴─┴─┴─┴─┴─┘
+ 1 2 3 4 5 6 7
+Column number? (starts at 1):
+┌─┬─┬─┬─┬─┬─┬─┐
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│X│ │ │ │ │ │ │
+└─┴─┴─┴─┴─┴─┴─┘
+ 1 2 3 4 5 6 7
+Column number? (starts at 1):
+┌─┬─┬─┬─┬─┬─┬─┐
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│X│O│ │ │ │ │ │
+└─┴─┴─┴─┴─┴─┴─┘
+ 1 2 3 4 5 6 7
+Column number? (starts at 1):
+┌─┬─┬─┬─┬─┬─┬─┐
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│X│O│X│ │ │ │ │
+└─┴─┴─┴─┴─┴─┴─┘
+ 1 2 3 4 5 6 7
+Column number? (starts at 1):
+┌─┬─┬─┬─┬─┬─┬─┐
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│X│O│X│O│ │ │ │
+└─┴─┴─┴─┴─┴─┴─┘
+ 1 2 3 4 5 6 7
+Column number? (starts at 1):
+┌─┬─┬─┬─┬─┬─┬─┐
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │X│ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│X│O│X│O│ │ │ │
+└─┴─┴─┴─┴─┴─┴─┘
+ 1 2 3 4 5 6 7
+Column number? (starts at 1):
+┌─┬─┬─┬─┬─┬─┬─┐
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │X│O│ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│X│O│X│O│ │ │ │
+└─┴─┴─┴─┴─┴─┴─┘
+ 1 2 3 4 5 6 7
+Column number? (starts at 1):
+┌─┬─┬─┬─┬─┬─┬─┐
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │X│ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │X│O│ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│X│O│X│O│ │ │ │
+└─┴─┴─┴─┴─┴─┴─┘
+ 1 2 3 4 5 6 7
+Column number? (starts at 1):
+┌─┬─┬─┬─┬─┬─┬─┐
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │X│O│ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │X│O│ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│X│O│X│O│ │ │ │
+└─┴─┴─┴─┴─┴─┴─┘
+ 1 2 3 4 5 6 7
+Column number? (starts at 1):
+┌─┬─┬─┬─┬─┬─┬─┐
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │X│O│ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │X│X│O│ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│X│O│X│O│ │ │ │
+└─┴─┴─┴─┴─┴─┴─┘
+ 1 2 3 4 5 6 7
+Column number? (starts at 1):
+┌─┬─┬─┬─┬─┬─┬─┐
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │X│O│ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│O│X│X│O│ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│X│O│X│O│ │ │ │
+└─┴─┴─┴─┴─┴─┴─┘
+ 1 2 3 4 5 6 7
+Column number? (starts at 1):
+┌─┬─┬─┬─┬─┬─┬─┐
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │X│ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │X│O│ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│O│X│X│O│ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│X│O│X│O│ │ │ │
+└─┴─┴─┴─┴─┴─┴─┘
+ 1 2 3 4 5 6 7
+Player one won!
diff --git a/testbed/2players/test4.cand b/testbed/2players/test4.cand
new file mode 100644
index 0000000000000000000000000000000000000000..81602525b3f80603466f1d1bd63e49685e651884
--- /dev/null
+++ b/testbed/2players/test4.cand
@@ -0,0 +1,166 @@
+Board size is 6x7 (rows x col)
+┌─┬─┬─┬─┬─┬─┬─┐
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+└─┴─┴─┴─┴─┴─┴─┘
+ 1 2 3 4 5 6 7
+Column number? (starts at 1):
+┌─┬─┬─┬─┬─┬─┬─┐
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│X│ │ │ │ │ │ │
+└─┴─┴─┴─┴─┴─┴─┘
+ 1 2 3 4 5 6 7
+Column number? (starts at 1):
+┌─┬─┬─┬─┬─┬─┬─┐
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│O│ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│X│ │ │ │ │ │ │
+└─┴─┴─┴─┴─┴─┴─┘
+ 1 2 3 4 5 6 7
+Column number? (starts at 1):
+┌─┬─┬─┬─┬─┬─┬─┐
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│X│ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│O│ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│X│ │ │ │ │ │ │
+└─┴─┴─┴─┴─┴─┴─┘
+ 1 2 3 4 5 6 7
+Column number? (starts at 1):
+┌─┬─┬─┬─┬─┬─┬─┐
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│O│ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│X│ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│O│ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│X│ │ │ │ │ │ │
+└─┴─┴─┴─┴─┴─┴─┘
+ 1 2 3 4 5 6 7
+Column number? (starts at 1):
+┌─┬─┬─┬─┬─┬─┬─┐
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│O│ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│X│ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│O│ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│X│X│ │ │ │ │ │
+└─┴─┴─┴─┴─┴─┴─┘
+ 1 2 3 4 5 6 7
+Column number? (starts at 1):
+┌─┬─┬─┬─┬─┬─┬─┐
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│O│ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│X│ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│O│ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│X│X│ │O│ │ │ │
+└─┴─┴─┴─┴─┴─┴─┘
+ 1 2 3 4 5 6 7
+Column number? (starts at 1):
+┌─┬─┬─┬─┬─┬─┬─┐
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│O│ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│X│ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│O│ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│X│X│X│O│ │ │ │
+└─┴─┴─┴─┴─┴─┴─┘
+ 1 2 3 4 5 6 7
+Column number? (starts at 1):
+┌─┬─┬─┬─┬─┬─┬─┐
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│O│ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│X│ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│O│ │O│ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│X│X│X│O│ │ │ │
+└─┴─┴─┴─┴─┴─┴─┘
+ 1 2 3 4 5 6 7
+Column number? (starts at 1):
+┌─┬─┬─┬─┬─┬─┬─┐
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│O│ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│X│ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│O│X│O│ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│X│X│X│O│ │ │ │
+└─┴─┴─┴─┴─┴─┴─┘
+ 1 2 3 4 5 6 7
+Column number? (starts at 1):
+┌─┬─┬─┬─┬─┬─┬─┐
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│O│ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│X│O│ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│O│X│O│ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│X│X│X│O│ │ │ │
+└─┴─┴─┴─┴─┴─┴─┘
+ 1 2 3 4 5 6 7
+Player two won!
diff --git a/testbed/2players/test5.cand b/testbed/2players/test5.cand
new file mode 100644
index 0000000000000000000000000000000000000000..52cf289aeba19f2aad00146cff2c14ad89c11040
--- /dev/null
+++ b/testbed/2players/test5.cand
@@ -0,0 +1,646 @@
+Board size is 6x7 (rows x col)
+┌─┬─┬─┬─┬─┬─┬─┐
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+└─┴─┴─┴─┴─┴─┴─┘
+ 1 2 3 4 5 6 7
+Column number? (starts at 1):
+┌─┬─┬─┬─┬─┬─┬─┐
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│X│ │ │ │ │ │ │
+└─┴─┴─┴─┴─┴─┴─┘
+ 1 2 3 4 5 6 7
+Column number? (starts at 1):
+┌─┬─┬─┬─┬─┬─┬─┐
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│X│O│ │ │ │ │ │
+└─┴─┴─┴─┴─┴─┴─┘
+ 1 2 3 4 5 6 7
+Column number? (starts at 1):
+┌─┬─┬─┬─┬─┬─┬─┐
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│X│O│X│ │ │ │ │
+└─┴─┴─┴─┴─┴─┴─┘
+ 1 2 3 4 5 6 7
+Column number? (starts at 1):
+┌─┬─┬─┬─┬─┬─┬─┐
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│X│O│X│O│ │ │ │
+└─┴─┴─┴─┴─┴─┴─┘
+ 1 2 3 4 5 6 7
+Column number? (starts at 1):
+┌─┬─┬─┬─┬─┬─┬─┐
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│X│O│X│O│X│ │ │
+└─┴─┴─┴─┴─┴─┴─┘
+ 1 2 3 4 5 6 7
+Column number? (starts at 1):
+┌─┬─┬─┬─┬─┬─┬─┐
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│X│O│X│O│X│O│ │
+└─┴─┴─┴─┴─┴─┴─┘
+ 1 2 3 4 5 6 7
+Column number? (starts at 1):
+┌─┬─┬─┬─┬─┬─┬─┐
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│X│O│X│O│X│O│X│
+└─┴─┴─┴─┴─┴─┴─┘
+ 1 2 3 4 5 6 7
+Column number? (starts at 1):
+┌─┬─┬─┬─┬─┬─┬─┐
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │O│ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│X│O│X│O│X│O│X│
+└─┴─┴─┴─┴─┴─┴─┘
+ 1 2 3 4 5 6 7
+Column number? (starts at 1):
+┌─┬─┬─┬─┬─┬─┬─┐
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │O│X│ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│X│O│X│O│X│O│X│
+└─┴─┴─┴─┴─┴─┴─┘
+ 1 2 3 4 5 6 7
+Column number? (starts at 1):
+┌─┬─┬─┬─┬─┬─┬─┐
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │O│X│O│ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│X│O│X│O│X│O│X│
+└─┴─┴─┴─┴─┴─┴─┘
+ 1 2 3 4 5 6 7
+Column number? (starts at 1):
+┌─┬─┬─┬─┬─┬─┬─┐
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │O│X│O│X│ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│X│O│X│O│X│O│X│
+└─┴─┴─┴─┴─┴─┴─┘
+ 1 2 3 4 5 6 7
+Column number? (starts at 1):
+┌─┬─┬─┬─┬─┬─┬─┐
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │O│X│O│X│O│ │
+├─┼─┼─┼─┼─┼─┼─┤
+│X│O│X│O│X│O│X│
+└─┴─┴─┴─┴─┴─┴─┘
+ 1 2 3 4 5 6 7
+Column number? (starts at 1):
+┌─┬─┬─┬─┬─┬─┬─┐
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │O│X│O│X│O│X│
+├─┼─┼─┼─┼─┼─┼─┤
+│X│O│X│O│X│O│X│
+└─┴─┴─┴─┴─┴─┴─┘
+ 1 2 3 4 5 6 7
+Column number? (starts at 1):
+┌─┬─┬─┬─┬─┬─┬─┐
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │O│ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │O│X│O│X│O│X│
+├─┼─┼─┼─┼─┼─┼─┤
+│X│O│X│O│X│O│X│
+└─┴─┴─┴─┴─┴─┴─┘
+ 1 2 3 4 5 6 7
+Column number? (starts at 1):
+┌─┬─┬─┬─┬─┬─┬─┐
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │O│X│ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │O│X│O│X│O│X│
+├─┼─┼─┼─┼─┼─┼─┤
+│X│O│X│O│X│O│X│
+└─┴─┴─┴─┴─┴─┴─┘
+ 1 2 3 4 5 6 7
+Column number? (starts at 1):
+┌─┬─┬─┬─┬─┬─┬─┐
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │O│X│O│ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │O│X│O│X│O│X│
+├─┼─┼─┼─┼─┼─┼─┤
+│X│O│X│O│X│O│X│
+└─┴─┴─┴─┴─┴─┴─┘
+ 1 2 3 4 5 6 7
+Column number? (starts at 1):
+┌─┬─┬─┬─┬─┬─┬─┐
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │O│X│O│X│ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │O│X│O│X│O│X│
+├─┼─┼─┼─┼─┼─┼─┤
+│X│O│X│O│X│O│X│
+└─┴─┴─┴─┴─┴─┴─┘
+ 1 2 3 4 5 6 7
+Column number? (starts at 1):
+┌─┬─┬─┬─┬─┬─┬─┐
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │O│X│O│X│O│
+├─┼─┼─┼─┼─┼─┼─┤
+│ │O│X│O│X│O│X│
+├─┼─┼─┼─┼─┼─┼─┤
+│X│O│X│O│X│O│X│
+└─┴─┴─┴─┴─┴─┴─┘
+ 1 2 3 4 5 6 7
+Column number? (starts at 1):
+┌─┬─┬─┬─┬─┬─┬─┐
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │X│ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │O│X│O│X│O│
+├─┼─┼─┼─┼─┼─┼─┤
+│ │O│X│O│X│O│X│
+├─┼─┼─┼─┼─┼─┼─┤
+│X│O│X│O│X│O│X│
+└─┴─┴─┴─┴─┴─┴─┘
+ 1 2 3 4 5 6 7
+Column number? (starts at 1):
+┌─┬─┬─┬─┬─┬─┬─┐
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │X│O│ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │O│X│O│X│O│
+├─┼─┼─┼─┼─┼─┼─┤
+│ │O│X│O│X│O│X│
+├─┼─┼─┼─┼─┼─┼─┤
+│X│O│X│O│X│O│X│
+└─┴─┴─┴─┴─┴─┴─┘
+ 1 2 3 4 5 6 7
+Column number? (starts at 1):
+┌─┬─┬─┬─┬─┬─┬─┐
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │X│O│X│ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │O│X│O│X│O│
+├─┼─┼─┼─┼─┼─┼─┤
+│ │O│X│O│X│O│X│
+├─┼─┼─┼─┼─┼─┼─┤
+│X│O│X│O│X│O│X│
+└─┴─┴─┴─┴─┴─┴─┘
+ 1 2 3 4 5 6 7
+Column number? (starts at 1):
+┌─┬─┬─┬─┬─┬─┬─┐
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │X│O│X│O│
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │O│X│O│X│O│
+├─┼─┼─┼─┼─┼─┼─┤
+│ │O│X│O│X│O│X│
+├─┼─┼─┼─┼─┼─┼─┤
+│X│O│X│O│X│O│X│
+└─┴─┴─┴─┴─┴─┴─┘
+ 1 2 3 4 5 6 7
+Column number? (starts at 1):
+┌─┬─┬─┬─┬─┬─┬─┐
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │X│ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │X│O│X│O│
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │O│X│O│X│O│
+├─┼─┼─┼─┼─┼─┼─┤
+│ │O│X│O│X│O│X│
+├─┼─┼─┼─┼─┼─┼─┤
+│X│O│X│O│X│O│X│
+└─┴─┴─┴─┴─┴─┴─┘
+ 1 2 3 4 5 6 7
+Column number? (starts at 1):
+┌─┬─┬─┬─┬─┬─┬─┐
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │X│O│ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │X│O│X│O│
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │O│X│O│X│O│
+├─┼─┼─┼─┼─┼─┼─┤
+│ │O│X│O│X│O│X│
+├─┼─┼─┼─┼─┼─┼─┤
+│X│O│X│O│X│O│X│
+└─┴─┴─┴─┴─┴─┴─┘
+ 1 2 3 4 5 6 7
+Column number? (starts at 1):
+┌─┬─┬─┬─┬─┬─┬─┐
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │X│O│X│
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │X│O│X│O│
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │O│X│O│X│O│
+├─┼─┼─┼─┼─┼─┼─┤
+│ │O│X│O│X│O│X│
+├─┼─┼─┼─┼─┼─┼─┤
+│X│O│X│O│X│O│X│
+└─┴─┴─┴─┴─┴─┴─┘
+ 1 2 3 4 5 6 7
+Column number? (starts at 1):
+┌─┬─┬─┬─┬─┬─┬─┐
+│ │ │ │ │ │O│ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │X│O│X│
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │X│O│X│O│
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │O│X│O│X│O│
+├─┼─┼─┼─┼─┼─┼─┤
+│ │O│X│O│X│O│X│
+├─┼─┼─┼─┼─┼─┼─┤
+│X│O│X│O│X│O│X│
+└─┴─┴─┴─┴─┴─┴─┘
+ 1 2 3 4 5 6 7
+Column number? (starts at 1):
+┌─┬─┬─┬─┬─┬─┬─┐
+│ │ │ │ │ │O│X│
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │X│O│X│
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │X│O│X│O│
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │O│X│O│X│O│
+├─┼─┼─┼─┼─┼─┼─┤
+│ │O│X│O│X│O│X│
+├─┼─┼─┼─┼─┼─┼─┤
+│X│O│X│O│X│O│X│
+└─┴─┴─┴─┴─┴─┴─┘
+ 1 2 3 4 5 6 7
+Column number? (starts at 1):
+┌─┬─┬─┬─┬─┬─┬─┐
+│ │ │ │ │ │O│X│
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │X│O│X│
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │X│O│X│O│
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │O│X│O│X│O│
+├─┼─┼─┼─┼─┼─┼─┤
+│O│O│X│O│X│O│X│
+├─┼─┼─┼─┼─┼─┼─┤
+│X│O│X│O│X│O│X│
+└─┴─┴─┴─┴─┴─┴─┘
+ 1 2 3 4 5 6 7
+Column number? (starts at 1):
+┌─┬─┬─┬─┬─┬─┬─┐
+│ │ │ │ │ │O│X│
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │X│O│X│
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │X│O│X│O│
+├─┼─┼─┼─┼─┼─┼─┤
+│ │X│O│X│O│X│O│
+├─┼─┼─┼─┼─┼─┼─┤
+│O│O│X│O│X│O│X│
+├─┼─┼─┼─┼─┼─┼─┤
+│X│O│X│O│X│O│X│
+└─┴─┴─┴─┴─┴─┴─┘
+ 1 2 3 4 5 6 7
+Column number? (starts at 1):
+┌─┬─┬─┬─┬─┬─┬─┐
+│ │ │ │ │ │O│X│
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │X│O│X│
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │X│O│X│O│
+├─┼─┼─┼─┼─┼─┼─┤
+│O│X│O│X│O│X│O│
+├─┼─┼─┼─┼─┼─┼─┤
+│O│O│X│O│X│O│X│
+├─┼─┼─┼─┼─┼─┼─┤
+│X│O│X│O│X│O│X│
+└─┴─┴─┴─┴─┴─┴─┘
+ 1 2 3 4 5 6 7
+Column number? (starts at 1):
+┌─┬─┬─┬─┬─┬─┬─┐
+│ │ │ │ │ │O│X│
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │X│O│X│
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │X│X│O│X│O│
+├─┼─┼─┼─┼─┼─┼─┤
+│O│X│O│X│O│X│O│
+├─┼─┼─┼─┼─┼─┼─┤
+│O│O│X│O│X│O│X│
+├─┼─┼─┼─┼─┼─┼─┤
+│X│O│X│O│X│O│X│
+└─┴─┴─┴─┴─┴─┴─┘
+ 1 2 3 4 5 6 7
+Column number? (starts at 1):
+┌─┬─┬─┬─┬─┬─┬─┐
+│ │ │ │ │ │O│X│
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │X│O│X│
+├─┼─┼─┼─┼─┼─┼─┤
+│ │O│X│X│O│X│O│
+├─┼─┼─┼─┼─┼─┼─┤
+│O│X│O│X│O│X│O│
+├─┼─┼─┼─┼─┼─┼─┤
+│O│O│X│O│X│O│X│
+├─┼─┼─┼─┼─┼─┼─┤
+│X│O│X│O│X│O│X│
+└─┴─┴─┴─┴─┴─┴─┘
+ 1 2 3 4 5 6 7
+Column number? (starts at 1):
+┌─┬─┬─┬─┬─┬─┬─┐
+│ │ │ │ │ │O│X│
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │X│O│X│
+├─┼─┼─┼─┼─┼─┼─┤
+│X│O│X│X│O│X│O│
+├─┼─┼─┼─┼─┼─┼─┤
+│O│X│O│X│O│X│O│
+├─┼─┼─┼─┼─┼─┼─┤
+│O│O│X│O│X│O│X│
+├─┼─┼─┼─┼─┼─┼─┤
+│X│O│X│O│X│O│X│
+└─┴─┴─┴─┴─┴─┴─┘
+ 1 2 3 4 5 6 7
+Column number? (starts at 1):
+┌─┬─┬─┬─┬─┬─┬─┐
+│ │ │ │ │ │O│X│
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │O│X│O│X│
+├─┼─┼─┼─┼─┼─┼─┤
+│X│O│X│X│O│X│O│
+├─┼─┼─┼─┼─┼─┼─┤
+│O│X│O│X│O│X│O│
+├─┼─┼─┼─┼─┼─┼─┤
+│O│O│X│O│X│O│X│
+├─┼─┼─┼─┼─┼─┼─┤
+│X│O│X│O│X│O│X│
+└─┴─┴─┴─┴─┴─┴─┘
+ 1 2 3 4 5 6 7
+Column number? (starts at 1):
+┌─┬─┬─┬─┬─┬─┬─┐
+│ │ │ │ │ │O│X│
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │X│O│X│O│X│
+├─┼─┼─┼─┼─┼─┼─┤
+│X│O│X│X│O│X│O│
+├─┼─┼─┼─┼─┼─┼─┤
+│O│X│O│X│O│X│O│
+├─┼─┼─┼─┼─┼─┼─┤
+│O│O│X│O│X│O│X│
+├─┼─┼─┼─┼─┼─┼─┤
+│X│O│X│O│X│O│X│
+└─┴─┴─┴─┴─┴─┴─┘
+ 1 2 3 4 5 6 7
+Column number? (starts at 1):
+┌─┬─┬─┬─┬─┬─┬─┐
+│ │ │ │ │ │O│X│
+├─┼─┼─┼─┼─┼─┼─┤
+│ │O│X│O│X│O│X│
+├─┼─┼─┼─┼─┼─┼─┤
+│X│O│X│X│O│X│O│
+├─┼─┼─┼─┼─┼─┼─┤
+│O│X│O│X│O│X│O│
+├─┼─┼─┼─┼─┼─┼─┤
+│O│O│X│O│X│O│X│
+├─┼─┼─┼─┼─┼─┼─┤
+│X│O│X│O│X│O│X│
+└─┴─┴─┴─┴─┴─┴─┘
+ 1 2 3 4 5 6 7
+Column number? (starts at 1):
+┌─┬─┬─┬─┬─┬─┬─┐
+│ │ │ │ │ │O│X│
+├─┼─┼─┼─┼─┼─┼─┤
+│X│O│X│O│X│O│X│
+├─┼─┼─┼─┼─┼─┼─┤
+│X│O│X│X│O│X│O│
+├─┼─┼─┼─┼─┼─┼─┤
+│O│X│O│X│O│X│O│
+├─┼─┼─┼─┼─┼─┼─┤
+│O│O│X│O│X│O│X│
+├─┼─┼─┼─┼─┼─┼─┤
+│X│O│X│O│X│O│X│
+└─┴─┴─┴─┴─┴─┴─┘
+ 1 2 3 4 5 6 7
+Column number? (starts at 1):
+┌─┬─┬─┬─┬─┬─┬─┐
+│ │ │ │O│ │O│X│
+├─┼─┼─┼─┼─┼─┼─┤
+│X│O│X│O│X│O│X│
+├─┼─┼─┼─┼─┼─┼─┤
+│X│O│X│X│O│X│O│
+├─┼─┼─┼─┼─┼─┼─┤
+│O│X│O│X│O│X│O│
+├─┼─┼─┼─┼─┼─┼─┤
+│O│O│X│O│X│O│X│
+├─┼─┼─┼─┼─┼─┼─┤
+│X│O│X│O│X│O│X│
+└─┴─┴─┴─┴─┴─┴─┘
+ 1 2 3 4 5 6 7
+Column number? (starts at 1):
+┌─┬─┬─┬─┬─┬─┬─┐
+│ │ │X│O│ │O│X│
+├─┼─┼─┼─┼─┼─┼─┤
+│X│O│X│O│X│O│X│
+├─┼─┼─┼─┼─┼─┼─┤
+│X│O│X│X│O│X│O│
+├─┼─┼─┼─┼─┼─┼─┤
+│O│X│O│X│O│X│O│
+├─┼─┼─┼─┼─┼─┼─┤
+│O│O│X│O│X│O│X│
+├─┼─┼─┼─┼─┼─┼─┤
+│X│O│X│O│X│O│X│
+└─┴─┴─┴─┴─┴─┴─┘
+ 1 2 3 4 5 6 7
+Column number? (starts at 1):
+┌─┬─┬─┬─┬─┬─┬─┐
+│ │O│X│O│ │O│X│
+├─┼─┼─┼─┼─┼─┼─┤
+│X│O│X│O│X│O│X│
+├─┼─┼─┼─┼─┼─┼─┤
+│X│O│X│X│O│X│O│
+├─┼─┼─┼─┼─┼─┼─┤
+│O│X│O│X│O│X│O│
+├─┼─┼─┼─┼─┼─┼─┤
+│O│O│X│O│X│O│X│
+├─┼─┼─┼─┼─┼─┼─┤
+│X│O│X│O│X│O│X│
+└─┴─┴─┴─┴─┴─┴─┘
+ 1 2 3 4 5 6 7
+Column number? (starts at 1):
+┌─┬─┬─┬─┬─┬─┬─┐
+│X│O│X│O│ │O│X│
+├─┼─┼─┼─┼─┼─┼─┤
+│X│O│X│O│X│O│X│
+├─┼─┼─┼─┼─┼─┼─┤
+│X│O│X│X│O│X│O│
+├─┼─┼─┼─┼─┼─┼─┤
+│O│X│O│X│O│X│O│
+├─┼─┼─┼─┼─┼─┼─┤
+│O│O│X│O│X│O│X│
+├─┼─┼─┼─┼─┼─┼─┤
+│X│O│X│O│X│O│X│
+└─┴─┴─┴─┴─┴─┴─┘
+ 1 2 3 4 5 6 7
+Column number? (starts at 1):
+┌─┬─┬─┬─┬─┬─┬─┐
+│X│O│X│O│O│O│X│
+├─┼─┼─┼─┼─┼─┼─┤
+│X│O│X│O│X│O│X│
+├─┼─┼─┼─┼─┼─┼─┤
+│X│O│X│X│O│X│O│
+├─┼─┼─┼─┼─┼─┼─┤
+│O│X│O│X│O│X│O│
+├─┼─┼─┼─┼─┼─┼─┤
+│O│O│X│O│X│O│X│
+├─┼─┼─┼─┼─┼─┼─┤
+│X│O│X│O│X│O│X│
+└─┴─┴─┴─┴─┴─┴─┘
+ 1 2 3 4 5 6 7
+It is a draw.
diff --git a/testbed/rand_ai/test1.cand b/testbed/rand_ai/test1.cand
new file mode 100644
index 0000000000000000000000000000000000000000..e28c57bd4e8cffd0bfdedc84a65dc03cd6d93011
--- /dev/null
+++ b/testbed/rand_ai/test1.cand
@@ -0,0 +1,118 @@
+Board size is 6x7 (rows x col)
+┌─┬─┬─┬─┬─┬─┬─┐
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+└─┴─┴─┴─┴─┴─┴─┘
+ 1 2 3 4 5 6 7
+Column number? (starts at 1):
+┌─┬─┬─┬─┬─┬─┬─┐
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│X│ │ │ │ │ │ │
+└─┴─┴─┴─┴─┴─┴─┘
+ 1 2 3 4 5 6 7
+┌─┬─┬─┬─┬─┬─┬─┐
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│X│O│ │ │ │ │ │
+└─┴─┴─┴─┴─┴─┴─┘
+ 1 2 3 4 5 6 7
+Column number? (starts at 1):
+┌─┬─┬─┬─┬─┬─┬─┐
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│X│ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│X│O│ │ │ │ │ │
+└─┴─┴─┴─┴─┴─┴─┘
+ 1 2 3 4 5 6 7
+┌─┬─┬─┬─┬─┬─┬─┐
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│X│ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│X│O│ │ │O│ │ │
+└─┴─┴─┴─┴─┴─┴─┘
+ 1 2 3 4 5 6 7
+Column number? (starts at 1):
+┌─┬─┬─┬─┬─┬─┬─┐
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│X│ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│X│ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│X│O│ │ │O│ │ │
+└─┴─┴─┴─┴─┴─┴─┘
+ 1 2 3 4 5 6 7
+┌─┬─┬─┬─┬─┬─┬─┐
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│X│ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│X│ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│X│O│O│ │O│ │ │
+└─┴─┴─┴─┴─┴─┴─┘
+ 1 2 3 4 5 6 7
+Column number? (starts at 1):
+┌─┬─┬─┬─┬─┬─┬─┐
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│X│ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│X│ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│X│ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│X│O│O│ │O│ │ │
+└─┴─┴─┴─┴─┴─┴─┘
+ 1 2 3 4 5 6 7
+Player one won!
diff --git a/testbed/rand_ai/test2.cand b/testbed/rand_ai/test2.cand
new file mode 100644
index 0000000000000000000000000000000000000000..94e7f63ae668cfb8fe45f35d7e57f2e63d9db534
--- /dev/null
+++ b/testbed/rand_ai/test2.cand
@@ -0,0 +1,118 @@
+Board size is 6x7 (rows x col)
+┌─┬─┬─┬─┬─┬─┬─┐
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+└─┴─┴─┴─┴─┴─┴─┘
+ 1 2 3 4 5 6 7
+Column number? (starts at 1):
+┌─┬─┬─┬─┬─┬─┬─┐
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │X│ │ │ │ │ │
+└─┴─┴─┴─┴─┴─┴─┘
+ 1 2 3 4 5 6 7
+┌─┬─┬─┬─┬─┬─┬─┐
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │O│ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │X│ │ │ │ │ │
+└─┴─┴─┴─┴─┴─┴─┘
+ 1 2 3 4 5 6 7
+Column number? (starts at 1):
+┌─┬─┬─┬─┬─┬─┬─┐
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │O│ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │X│X│ │ │ │ │
+└─┴─┴─┴─┴─┴─┴─┘
+ 1 2 3 4 5 6 7
+┌─┬─┬─┬─┬─┬─┬─┐
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │O│ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │X│X│ │O│ │ │
+└─┴─┴─┴─┴─┴─┴─┘
+ 1 2 3 4 5 6 7
+Column number? (starts at 1):
+┌─┬─┬─┬─┬─┬─┬─┐
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │O│ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │X│X│X│O│ │ │
+└─┴─┴─┴─┴─┴─┴─┘
+ 1 2 3 4 5 6 7
+┌─┬─┬─┬─┬─┬─┬─┐
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │O│O│ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │X│X│X│O│ │ │
+└─┴─┴─┴─┴─┴─┴─┘
+ 1 2 3 4 5 6 7
+Column number? (starts at 1):
+┌─┬─┬─┬─┬─┬─┬─┐
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │O│O│ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│X│X│X│X│O│ │ │
+└─┴─┴─┴─┴─┴─┴─┘
+ 1 2 3 4 5 6 7
+Player one won!
diff --git a/testbed/rand_ai/test3.cand b/testbed/rand_ai/test3.cand
new file mode 100644
index 0000000000000000000000000000000000000000..e856963e177dbeb2443a22199afe5a3c1ebcd274
--- /dev/null
+++ b/testbed/rand_ai/test3.cand
@@ -0,0 +1,205 @@
+Board size is 6x7 (rows x col)
+┌─┬─┬─┬─┬─┬─┬─┐
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+└─┴─┴─┴─┴─┴─┴─┘
+ 1 2 3 4 5 6 7
+Column number? (starts at 1):
+┌─┬─┬─┬─┬─┬─┬─┐
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│X│ │ │ │ │ │ │
+└─┴─┴─┴─┴─┴─┴─┘
+ 1 2 3 4 5 6 7
+┌─┬─┬─┬─┬─┬─┬─┐
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│X│O│ │ │ │ │ │
+└─┴─┴─┴─┴─┴─┴─┘
+ 1 2 3 4 5 6 7
+Column number? (starts at 1):
+┌─┬─┬─┬─┬─┬─┬─┐
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │X│ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│X│O│ │ │ │ │ │
+└─┴─┴─┴─┴─┴─┴─┘
+ 1 2 3 4 5 6 7
+┌─┬─┬─┬─┬─┬─┬─┐
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │X│ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│X│O│ │ │O│ │ │
+└─┴─┴─┴─┴─┴─┴─┘
+ 1 2 3 4 5 6 7
+Column number? (starts at 1):
+┌─┬─┬─┬─┬─┬─┬─┐
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │X│ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│X│O│X│ │O│ │ │
+└─┴─┴─┴─┴─┴─┴─┘
+ 1 2 3 4 5 6 7
+┌─┬─┬─┬─┬─┬─┬─┐
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │X│O│ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│X│O│X│ │O│ │ │
+└─┴─┴─┴─┴─┴─┴─┘
+ 1 2 3 4 5 6 7
+Column number? (starts at 1):
+┌─┬─┬─┬─┬─┬─┬─┐
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │X│ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │X│O│ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│X│O│X│ │O│ │ │
+└─┴─┴─┴─┴─┴─┴─┘
+ 1 2 3 4 5 6 7
+┌─┬─┬─┬─┬─┬─┬─┐
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │X│ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │X│O│ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│X│O│X│ │O│O│ │
+└─┴─┴─┴─┴─┴─┴─┘
+ 1 2 3 4 5 6 7
+Column number? (starts at 1):
+┌─┬─┬─┬─┬─┬─┬─┐
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │X│ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │X│O│ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│X│O│X│X│O│O│ │
+└─┴─┴─┴─┴─┴─┴─┘
+ 1 2 3 4 5 6 7
+┌─┬─┬─┬─┬─┬─┬─┐
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │O│X│ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │X│O│ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│X│O│X│X│O│O│ │
+└─┴─┴─┴─┴─┴─┴─┘
+ 1 2 3 4 5 6 7
+Column number? (starts at 1):
+┌─┬─┬─┬─┬─┬─┬─┐
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │O│X│ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │X│O│X│ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│X│O│X│X│O│O│ │
+└─┴─┴─┴─┴─┴─┴─┘
+ 1 2 3 4 5 6 7
+┌─┬─┬─┬─┬─┬─┬─┐
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │O│X│O│ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │X│O│X│ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│X│O│X│X│O│O│ │
+└─┴─┴─┴─┴─┴─┴─┘
+ 1 2 3 4 5 6 7
+Column number? (starts at 1):
+┌─┬─┬─┬─┬─┬─┬─┐
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │X│ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │O│X│O│ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │X│O│X│ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│X│O│X│X│O│O│ │
+└─┴─┴─┴─┴─┴─┴─┘
+ 1 2 3 4 5 6 7
+Player one won!
diff --git a/testbed/rand_ai/test4.cand b/testbed/rand_ai/test4.cand
new file mode 100644
index 0000000000000000000000000000000000000000..2b346675c58781173979b46b50499e15cb08d256
--- /dev/null
+++ b/testbed/rand_ai/test4.cand
@@ -0,0 +1,190 @@
+Board size is 6x7 (rows x col)
+┌─┬─┬─┬─┬─┬─┬─┐
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+└─┴─┴─┴─┴─┴─┴─┘
+ 1 2 3 4 5 6 7
+Column number? (starts at 1):
+┌─┬─┬─┬─┬─┬─┬─┐
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │X│
+└─┴─┴─┴─┴─┴─┴─┘
+ 1 2 3 4 5 6 7
+┌─┬─┬─┬─┬─┬─┬─┐
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │O│ │ │ │ │X│
+└─┴─┴─┴─┴─┴─┴─┘
+ 1 2 3 4 5 6 7
+Column number? (starts at 1):
+┌─┬─┬─┬─┬─┬─┬─┐
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │O│ │ │ │X│X│
+└─┴─┴─┴─┴─┴─┴─┘
+ 1 2 3 4 5 6 7
+┌─┬─┬─┬─┬─┬─┬─┐
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │O│ │ │O│X│X│
+└─┴─┴─┴─┴─┴─┴─┘
+ 1 2 3 4 5 6 7
+Column number? (starts at 1):
+┌─┬─┬─┬─┬─┬─┬─┐
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │X│ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │O│ │ │O│X│X│
+└─┴─┴─┴─┴─┴─┴─┘
+ 1 2 3 4 5 6 7
+┌─┬─┬─┬─┬─┬─┬─┐
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │X│ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │O│O│ │O│X│X│
+└─┴─┴─┴─┴─┴─┴─┘
+ 1 2 3 4 5 6 7
+Column number? (starts at 1):
+┌─┬─┬─┬─┬─┬─┬─┐
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │X│X│ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │O│O│ │O│X│X│
+└─┴─┴─┴─┴─┴─┴─┘
+ 1 2 3 4 5 6 7
+┌─┬─┬─┬─┬─┬─┬─┐
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │O│ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │X│X│ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │O│O│ │O│X│X│
+└─┴─┴─┴─┴─┴─┴─┘
+ 1 2 3 4 5 6 7
+Column number? (starts at 1):
+┌─┬─┬─┬─┬─┬─┬─┐
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │X│O│ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │X│X│ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │O│O│ │O│X│X│
+└─┴─┴─┴─┴─┴─┴─┘
+ 1 2 3 4 5 6 7
+┌─┬─┬─┬─┬─┬─┬─┐
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │X│O│ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │O│ │ │X│X│ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │O│O│ │O│X│X│
+└─┴─┴─┴─┴─┴─┴─┘
+ 1 2 3 4 5 6 7
+Column number? (starts at 1):
+┌─┬─┬─┬─┬─┬─┬─┐
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │X│O│ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │O│ │ │X│X│ │
+├─┼─┼─┼─┼─┼─┼─┤
+│X│O│O│ │O│X│X│
+└─┴─┴─┴─┴─┴─┴─┘
+ 1 2 3 4 5 6 7
+┌─┬─┬─┬─┬─┬─┬─┐
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │X│O│ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │O│ │ │X│X│ │
+├─┼─┼─┼─┼─┼─┼─┤
+│X│O│O│O│O│X│X│
+└─┴─┴─┴─┴─┴─┴─┘
+ 1 2 3 4 5 6 7
+Computer won!
diff --git a/testbed/smart_ai/test1.cand b/testbed/smart_ai/test1.cand
new file mode 100644
index 0000000000000000000000000000000000000000..4f1e01992ed3f7b3e1b00121020f379603deb328
--- /dev/null
+++ b/testbed/smart_ai/test1.cand
@@ -0,0 +1,263 @@
+Board size is 6x7 (rows x col)
+┌─┬─┬─┬─┬─┬─┬─┐
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+└─┴─┴─┴─┴─┴─┴─┘
+ 1 2 3 4 5 6 7
+Column number? (starts at 1):
+┌─┬─┬─┬─┬─┬─┬─┐
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│X│ │ │ │ │ │ │
+└─┴─┴─┴─┴─┴─┴─┘
+ 1 2 3 4 5 6 7
+┌─┬─┬─┬─┬─┬─┬─┐
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│X│O│ │ │ │ │ │
+└─┴─┴─┴─┴─┴─┴─┘
+ 1 2 3 4 5 6 7
+Column number? (starts at 1):
+┌─┬─┬─┬─┬─┬─┬─┐
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│X│ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│X│O│ │ │ │ │ │
+└─┴─┴─┴─┴─┴─┴─┘
+ 1 2 3 4 5 6 7
+┌─┬─┬─┬─┬─┬─┬─┐
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│X│ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│X│O│ │ │O│ │ │
+└─┴─┴─┴─┴─┴─┴─┘
+ 1 2 3 4 5 6 7
+Column number? (starts at 1):
+┌─┬─┬─┬─┬─┬─┬─┐
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│X│ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│X│ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│X│O│ │ │O│ │ │
+└─┴─┴─┴─┴─┴─┴─┘
+ 1 2 3 4 5 6 7
+┌─┬─┬─┬─┬─┬─┬─┐
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│O│ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│X│ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│X│ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│X│O│ │ │O│ │ │
+└─┴─┴─┴─┴─┴─┴─┘
+ 1 2 3 4 5 6 7
+Column number? (starts at 1):
+┌─┬─┬─┬─┬─┬─┬─┐
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│O│ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│X│ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│X│X│ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│X│O│ │ │O│ │ │
+└─┴─┴─┴─┴─┴─┴─┘
+ 1 2 3 4 5 6 7
+┌─┬─┬─┬─┬─┬─┬─┐
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│O│ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│X│ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│X│X│ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│X│O│O│ │O│ │ │
+└─┴─┴─┴─┴─┴─┴─┘
+ 1 2 3 4 5 6 7
+Column number? (starts at 1):
+┌─┬─┬─┬─┬─┬─┬─┐
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│O│ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│X│ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│X│X│ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│X│O│O│X│O│ │ │
+└─┴─┴─┴─┴─┴─┴─┘
+ 1 2 3 4 5 6 7
+┌─┬─┬─┬─┬─┬─┬─┐
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│O│ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│X│ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│X│X│ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│X│O│O│X│O│O│ │
+└─┴─┴─┴─┴─┴─┴─┘
+ 1 2 3 4 5 6 7
+Column number? (starts at 1):
+┌─┬─┬─┬─┬─┬─┬─┐
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│O│ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│X│ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│X│X│ │X│ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│X│O│O│X│O│O│ │
+└─┴─┴─┴─┴─┴─┴─┘
+ 1 2 3 4 5 6 7
+┌─┬─┬─┬─┬─┬─┬─┐
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│O│ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│X│ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│X│X│O│X│ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│X│O│O│X│O│O│ │
+└─┴─┴─┴─┴─┴─┴─┘
+ 1 2 3 4 5 6 7
+Column number? (starts at 1):
+┌─┬─┬─┬─┬─┬─┬─┐
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│O│ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│X│X│ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│X│X│O│X│ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│X│O│O│X│O│O│ │
+└─┴─┴─┴─┴─┴─┴─┘
+ 1 2 3 4 5 6 7
+┌─┬─┬─┬─┬─┬─┬─┐
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│O│O│ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│X│X│ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│X│X│O│X│ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│X│O│O│X│O│O│ │
+└─┴─┴─┴─┴─┴─┴─┘
+ 1 2 3 4 5 6 7
+Column number? (starts at 1):
+┌─┬─┬─┬─┬─┬─┬─┐
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│O│O│ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│X│X│X│ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│X│X│O│X│ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│X│O│O│X│O│O│ │
+└─┴─┴─┴─┴─┴─┴─┘
+ 1 2 3 4 5 6 7
+┌─┬─┬─┬─┬─┬─┬─┐
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│O│O│ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│X│X│X│O│ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│X│X│O│X│ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│X│O│O│X│O│O│ │
+└─┴─┴─┴─┴─┴─┴─┘
+ 1 2 3 4 5 6 7
+Column number? (starts at 1):
+┌─┬─┬─┬─┬─┬─┬─┐
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│O│O│ │X│ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│X│X│X│O│ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│X│X│O│X│ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│X│O│O│X│O│O│ │
+└─┴─┴─┴─┴─┴─┴─┘
+ 1 2 3 4 5 6 7
+Player one won!
diff --git a/testbed/smart_ai/test2.cand b/testbed/smart_ai/test2.cand
new file mode 100644
index 0000000000000000000000000000000000000000..b6e011dcb0da91e6976f752cc84b703097be140f
--- /dev/null
+++ b/testbed/smart_ai/test2.cand
@@ -0,0 +1,132 @@
+Board size is 6x7 (rows x col)
+┌─┬─┬─┬─┬─┬─┬─┐
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+└─┴─┴─┴─┴─┴─┴─┘
+ 1 2 3 4 5 6 7
+Column number? (starts at 1):
+┌─┬─┬─┬─┬─┬─┬─┐
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│X│ │ │ │ │ │ │
+└─┴─┴─┴─┴─┴─┴─┘
+ 1 2 3 4 5 6 7
+┌─┬─┬─┬─┬─┬─┬─┐
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│X│O│ │ │ │ │ │
+└─┴─┴─┴─┴─┴─┴─┘
+ 1 2 3 4 5 6 7
+Column number? (starts at 1):
+┌─┬─┬─┬─┬─┬─┬─┐
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │X│ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│X│O│ │ │ │ │ │
+└─┴─┴─┴─┴─┴─┴─┘
+ 1 2 3 4 5 6 7
+┌─┬─┬─┬─┬─┬─┬─┐
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │X│ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│X│O│ │ │O│ │ │
+└─┴─┴─┴─┴─┴─┴─┘
+ 1 2 3 4 5 6 7
+Column number? (starts at 1):
+┌─┬─┬─┬─┬─┬─┬─┐
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│X│X│ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│X│O│ │ │O│ │ │
+└─┴─┴─┴─┴─┴─┴─┘
+ 1 2 3 4 5 6 7
+┌─┬─┬─┬─┬─┬─┬─┐
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│X│X│ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│X│O│O│ │O│ │ │
+└─┴─┴─┴─┴─┴─┴─┘
+ 1 2 3 4 5 6 7
+Column number? (starts at 1):
+┌─┬─┬─┬─┬─┬─┬─┐
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│X│X│X│ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│X│O│O│ │O│ │ │
+└─┴─┴─┴─┴─┴─┴─┘
+ 1 2 3 4 5 6 7
+┌─┬─┬─┬─┬─┬─┬─┐
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│X│X│X│ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│X│O│O│O│O│ │ │
+└─┴─┴─┴─┴─┴─┴─┘
+ 1 2 3 4 5 6 7
+Computer won!
diff --git a/testbed/smart_ai/test3.cand b/testbed/smart_ai/test3.cand
new file mode 100644
index 0000000000000000000000000000000000000000..515b4fd88ad56d6d51812f73d5ba4dd13594c4e5
--- /dev/null
+++ b/testbed/smart_ai/test3.cand
@@ -0,0 +1,248 @@
+Board size is 6x7 (rows x col)
+┌─┬─┬─┬─┬─┬─┬─┐
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+└─┴─┴─┴─┴─┴─┴─┘
+ 1 2 3 4 5 6 7
+Column number? (starts at 1):
+┌─┬─┬─┬─┬─┬─┬─┐
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│X│ │ │ │ │ │ │
+└─┴─┴─┴─┴─┴─┴─┘
+ 1 2 3 4 5 6 7
+┌─┬─┬─┬─┬─┬─┬─┐
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│X│O│ │ │ │ │ │
+└─┴─┴─┴─┴─┴─┴─┘
+ 1 2 3 4 5 6 7
+Column number? (starts at 1):
+┌─┬─┬─┬─┬─┬─┬─┐
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │X│ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│X│O│ │ │ │ │ │
+└─┴─┴─┴─┴─┴─┴─┘
+ 1 2 3 4 5 6 7
+┌─┬─┬─┬─┬─┬─┬─┐
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │X│ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│X│O│ │ │O│ │ │
+└─┴─┴─┴─┴─┴─┴─┘
+ 1 2 3 4 5 6 7
+Column number? (starts at 1):
+┌─┬─┬─┬─┬─┬─┬─┐
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │X│ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│X│O│X│ │O│ │ │
+└─┴─┴─┴─┴─┴─┴─┘
+ 1 2 3 4 5 6 7
+┌─┬─┬─┬─┬─┬─┬─┐
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │X│O│ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│X│O│X│ │O│ │ │
+└─┴─┴─┴─┴─┴─┴─┘
+ 1 2 3 4 5 6 7
+Column number? (starts at 1):
+┌─┬─┬─┬─┬─┬─┬─┐
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │X│O│ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│X│O│X│X│O│ │ │
+└─┴─┴─┴─┴─┴─┴─┘
+ 1 2 3 4 5 6 7
+┌─┬─┬─┬─┬─┬─┬─┐
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │X│O│ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│X│O│X│X│O│O│ │
+└─┴─┴─┴─┴─┴─┴─┘
+ 1 2 3 4 5 6 7
+Column number? (starts at 1):
+┌─┬─┬─┬─┬─┬─┬─┐
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │X│O│ │X│ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│X│O│X│X│O│O│ │
+└─┴─┴─┴─┴─┴─┴─┘
+ 1 2 3 4 5 6 7
+┌─┬─┬─┬─┬─┬─┬─┐
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │O│ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │X│O│ │X│ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│X│O│X│X│O│O│ │
+└─┴─┴─┴─┴─┴─┴─┘
+ 1 2 3 4 5 6 7
+Column number? (starts at 1):
+┌─┬─┬─┬─┬─┬─┬─┐
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │O│ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │X│O│ │X│X│ │
+├─┼─┼─┼─┼─┼─┼─┤
+│X│O│X│X│O│O│ │
+└─┴─┴─┴─┴─┴─┴─┘
+ 1 2 3 4 5 6 7
+┌─┬─┬─┬─┬─┬─┬─┐
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │O│ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │X│O│O│X│X│ │
+├─┼─┼─┼─┼─┼─┼─┤
+│X│O│X│X│O│O│ │
+└─┴─┴─┴─┴─┴─┴─┘
+ 1 2 3 4 5 6 7
+Column number? (starts at 1):
+┌─┬─┬─┬─┬─┬─┬─┐
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │O│ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │X│O│O│X│X│ │
+├─┼─┼─┼─┼─┼─┼─┤
+│X│O│X│X│O│O│X│
+└─┴─┴─┴─┴─┴─┴─┘
+ 1 2 3 4 5 6 7
+┌─┬─┬─┬─┬─┬─┬─┐
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │O│ │O│ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │X│O│O│X│X│ │
+├─┼─┼─┼─┼─┼─┼─┤
+│X│O│X│X│O│O│X│
+└─┴─┴─┴─┴─┴─┴─┘
+ 1 2 3 4 5 6 7
+Column number? (starts at 1):
+┌─┬─┬─┬─┬─┬─┬─┐
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │O│ │O│X│ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │X│O│O│X│X│ │
+├─┼─┼─┼─┼─┼─┼─┤
+│X│O│X│X│O│O│X│
+└─┴─┴─┴─┴─┴─┴─┘
+ 1 2 3 4 5 6 7
+┌─┬─┬─┬─┬─┬─┬─┐
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │O│ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │O│ │O│X│ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │X│O│O│X│X│ │
+├─┼─┼─┼─┼─┼─┼─┤
+│X│O│X│X│O│O│X│
+└─┴─┴─┴─┴─┴─┴─┘
+ 1 2 3 4 5 6 7
+Computer won!
diff --git a/testbed/smart_ai/test4.cand b/testbed/smart_ai/test4.cand
new file mode 100644
index 0000000000000000000000000000000000000000..97e668c1b469b6942377d5da55e5d4dff4196e4b
--- /dev/null
+++ b/testbed/smart_ai/test4.cand
@@ -0,0 +1,335 @@
+Board size is 6x7 (rows x col)
+┌─┬─┬─┬─┬─┬─┬─┐
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+└─┴─┴─┴─┴─┴─┴─┘
+ 1 2 3 4 5 6 7
+Column number? (starts at 1):
+┌─┬─┬─┬─┬─┬─┬─┐
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │X│
+└─┴─┴─┴─┴─┴─┴─┘
+ 1 2 3 4 5 6 7
+┌─┬─┬─┬─┬─┬─┬─┐
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │O│ │ │ │ │X│
+└─┴─┴─┴─┴─┴─┴─┘
+ 1 2 3 4 5 6 7
+Column number? (starts at 1):
+┌─┬─┬─┬─┬─┬─┬─┐
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │O│ │ │ │X│X│
+└─┴─┴─┴─┴─┴─┴─┘
+ 1 2 3 4 5 6 7
+┌─┬─┬─┬─┬─┬─┬─┐
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │O│ │ │O│X│X│
+└─┴─┴─┴─┴─┴─┴─┘
+ 1 2 3 4 5 6 7
+Column number? (starts at 1):
+┌─┬─┬─┬─┬─┬─┬─┐
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │X│ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │O│ │ │O│X│X│
+└─┴─┴─┴─┴─┴─┴─┘
+ 1 2 3 4 5 6 7
+┌─┬─┬─┬─┬─┬─┬─┐
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │X│ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │O│O│ │O│X│X│
+└─┴─┴─┴─┴─┴─┴─┘
+ 1 2 3 4 5 6 7
+Column number? (starts at 1):
+┌─┬─┬─┬─┬─┬─┬─┐
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │X│ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │O│O│X│O│X│X│
+└─┴─┴─┴─┴─┴─┴─┘
+ 1 2 3 4 5 6 7
+┌─┬─┬─┬─┬─┬─┬─┐
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │X│O│ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │O│O│X│O│X│X│
+└─┴─┴─┴─┴─┴─┴─┘
+ 1 2 3 4 5 6 7
+Column number? (starts at 1):
+┌─┬─┬─┬─┬─┬─┬─┐
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │X│ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │X│O│ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │O│O│X│O│X│X│
+└─┴─┴─┴─┴─┴─┴─┘
+ 1 2 3 4 5 6 7
+┌─┬─┬─┬─┬─┬─┬─┐
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │X│ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │O│ │ │X│O│ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │O│O│X│O│X│X│
+└─┴─┴─┴─┴─┴─┴─┘
+ 1 2 3 4 5 6 7
+Column number? (starts at 1):
+┌─┬─┬─┬─┬─┬─┬─┐
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │X│ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │O│ │ │X│O│X│
+├─┼─┼─┼─┼─┼─┼─┤
+│ │O│O│X│O│X│X│
+└─┴─┴─┴─┴─┴─┴─┘
+ 1 2 3 4 5 6 7
+┌─┬─┬─┬─┬─┬─┬─┐
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │X│ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │O│ │O│X│O│X│
+├─┼─┼─┼─┼─┼─┼─┤
+│ │O│O│X│O│X│X│
+└─┴─┴─┴─┴─┴─┴─┘
+ 1 2 3 4 5 6 7
+Column number? (starts at 1):
+┌─┬─┬─┬─┬─┬─┬─┐
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │X│X│
+├─┼─┼─┼─┼─┼─┼─┤
+│ │O│ │O│X│O│X│
+├─┼─┼─┼─┼─┼─┼─┤
+│ │O│O│X│O│X│X│
+└─┴─┴─┴─┴─┴─┴─┘
+ 1 2 3 4 5 6 7
+┌─┬─┬─┬─┬─┬─┬─┐
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │O│
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │X│X│
+├─┼─┼─┼─┼─┼─┼─┤
+│ │O│ │O│X│O│X│
+├─┼─┼─┼─┼─┼─┼─┤
+│ │O│O│X│O│X│X│
+└─┴─┴─┴─┴─┴─┴─┘
+ 1 2 3 4 5 6 7
+Column number? (starts at 1):
+┌─┬─┬─┬─┬─┬─┬─┐
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │O│
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │X│X│X│
+├─┼─┼─┼─┼─┼─┼─┤
+│ │O│ │O│X│O│X│
+├─┼─┼─┼─┼─┼─┼─┤
+│ │O│O│X│O│X│X│
+└─┴─┴─┴─┴─┴─┴─┘
+ 1 2 3 4 5 6 7
+┌─┬─┬─┬─┬─┬─┬─┐
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │O│
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │O│X│X│X│
+├─┼─┼─┼─┼─┼─┼─┤
+│ │O│ │O│X│O│X│
+├─┼─┼─┼─┼─┼─┼─┤
+│ │O│O│X│O│X│X│
+└─┴─┴─┴─┴─┴─┴─┘
+ 1 2 3 4 5 6 7
+Column number? (starts at 1):
+┌─┬─┬─┬─┬─┬─┬─┐
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │O│
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │O│X│X│X│
+├─┼─┼─┼─┼─┼─┼─┤
+│ │O│ │O│X│O│X│
+├─┼─┼─┼─┼─┼─┼─┤
+│X│O│O│X│O│X│X│
+└─┴─┴─┴─┴─┴─┴─┘
+ 1 2 3 4 5 6 7
+┌─┬─┬─┬─┬─┬─┬─┐
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │O│ │ │O│
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │O│X│X│X│
+├─┼─┼─┼─┼─┼─┼─┤
+│ │O│ │O│X│O│X│
+├─┼─┼─┼─┼─┼─┼─┤
+│X│O│O│X│O│X│X│
+└─┴─┴─┴─┴─┴─┴─┘
+ 1 2 3 4 5 6 7
+Column number? (starts at 1):
+┌─┬─┬─┬─┬─┬─┬─┐
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │X│ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │O│ │ │O│
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │O│X│X│X│
+├─┼─┼─┼─┼─┼─┼─┤
+│ │O│ │O│X│O│X│
+├─┼─┼─┼─┼─┼─┼─┤
+│X│O│O│X│O│X│X│
+└─┴─┴─┴─┴─┴─┴─┘
+ 1 2 3 4 5 6 7
+┌─┬─┬─┬─┬─┬─┬─┐
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │X│ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │O│O│ │O│
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │O│X│X│X│
+├─┼─┼─┼─┼─┼─┼─┤
+│ │O│ │O│X│O│X│
+├─┼─┼─┼─┼─┼─┼─┤
+│X│O│O│X│O│X│X│
+└─┴─┴─┴─┴─┴─┴─┘
+ 1 2 3 4 5 6 7
+Column number? (starts at 1):
+┌─┬─┬─┬─┬─┬─┬─┐
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │X│ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │O│O│X│O│
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │O│X│X│X│
+├─┼─┼─┼─┼─┼─┼─┤
+│ │O│ │O│X│O│X│
+├─┼─┼─┼─┼─┼─┼─┤
+│X│O│O│X│O│X│X│
+└─┴─┴─┴─┴─┴─┴─┘
+ 1 2 3 4 5 6 7
+┌─┬─┬─┬─┬─┬─┬─┐
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │X│ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │O│O│X│O│
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │O│X│X│X│
+├─┼─┼─┼─┼─┼─┼─┤
+│ │O│O│O│X│O│X│
+├─┼─┼─┼─┼─┼─┼─┤
+│X│O│O│X│O│X│X│
+└─┴─┴─┴─┴─┴─┴─┘
+ 1 2 3 4 5 6 7
+Computer won!
diff --git a/testbed/smart_ai/test5.cand b/testbed/smart_ai/test5.cand
new file mode 100644
index 0000000000000000000000000000000000000000..2e6a63f5d175f1efdeb513f673aa8bcdc3347f52
--- /dev/null
+++ b/testbed/smart_ai/test5.cand
@@ -0,0 +1,219 @@
+Board size is 6x7 (rows x col)
+┌─┬─┬─┬─┬─┬─┬─┐
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+└─┴─┴─┴─┴─┴─┴─┘
+ 1 2 3 4 5 6 7
+Column number? (starts at 1):
+┌─┬─┬─┬─┬─┬─┬─┐
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│X│ │ │ │ │ │ │
+└─┴─┴─┴─┴─┴─┴─┘
+ 1 2 3 4 5 6 7
+┌─┬─┬─┬─┬─┬─┬─┐
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│X│O│ │ │ │ │ │
+└─┴─┴─┴─┴─┴─┴─┘
+ 1 2 3 4 5 6 7
+Column number? (starts at 1):
+┌─┬─┬─┬─┬─┬─┬─┐
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│X│O│X│ │ │ │ │
+└─┴─┴─┴─┴─┴─┴─┘
+ 1 2 3 4 5 6 7
+┌─┬─┬─┬─┬─┬─┬─┐
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│X│O│X│ │O│ │ │
+└─┴─┴─┴─┴─┴─┴─┘
+ 1 2 3 4 5 6 7
+Column number? (starts at 1):
+┌─┬─┬─┬─┬─┬─┬─┐
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │X│ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│X│O│X│ │O│ │ │
+└─┴─┴─┴─┴─┴─┴─┘
+ 1 2 3 4 5 6 7
+┌─┬─┬─┬─┬─┬─┬─┐
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │O│ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │X│ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│X│O│X│ │O│ │ │
+└─┴─┴─┴─┴─┴─┴─┘
+ 1 2 3 4 5 6 7
+Column number? (starts at 1):
+┌─┬─┬─┬─┬─┬─┬─┐
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │O│ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │X│ │X│ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│X│O│X│ │O│ │ │
+└─┴─┴─┴─┴─┴─┴─┘
+ 1 2 3 4 5 6 7
+┌─┬─┬─┬─┬─┬─┬─┐
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │O│ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │X│ │X│ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│X│O│X│ │O│O│ │
+└─┴─┴─┴─┴─┴─┴─┘
+ 1 2 3 4 5 6 7
+Column number? (starts at 1):
+┌─┬─┬─┬─┬─┬─┬─┐
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │O│ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │X│ │X│X│ │
+├─┼─┼─┼─┼─┼─┼─┤
+│X│O│X│ │O│O│ │
+└─┴─┴─┴─┴─┴─┴─┘
+ 1 2 3 4 5 6 7
+┌─┬─┬─┬─┬─┬─┬─┐
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │O│ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │O│X│ │X│X│ │
+├─┼─┼─┼─┼─┼─┼─┤
+│X│O│X│ │O│O│ │
+└─┴─┴─┴─┴─┴─┴─┘
+ 1 2 3 4 5 6 7
+Column number? (starts at 1):
+┌─┬─┬─┬─┬─┬─┬─┐
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │O│ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│X│O│X│ │X│X│ │
+├─┼─┼─┼─┼─┼─┼─┤
+│X│O│X│ │O│O│ │
+└─┴─┴─┴─┴─┴─┴─┘
+ 1 2 3 4 5 6 7
+┌─┬─┬─┬─┬─┬─┬─┐
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │O│ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│X│O│X│ │X│X│ │
+├─┼─┼─┼─┼─┼─┼─┤
+│X│O│X│O│O│O│ │
+└─┴─┴─┴─┴─┴─┴─┘
+ 1 2 3 4 5 6 7
+Column number? (starts at 1):
+┌─┬─┬─┬─┬─┬─┬─┐
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│X│ │O│ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│X│O│X│ │X│X│ │
+├─┼─┼─┼─┼─┼─┼─┤
+│X│O│X│O│O│O│ │
+└─┴─┴─┴─┴─┴─┴─┘
+ 1 2 3 4 5 6 7
+┌─┬─┬─┬─┬─┬─┬─┐
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│ │ │ │ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│X│ │O│ │ │ │ │
+├─┼─┼─┼─┼─┼─┼─┤
+│X│O│X│ │X│X│ │
+├─┼─┼─┼─┼─┼─┼─┤
+│X│O│X│O│O│O│O│
+└─┴─┴─┴─┴─┴─┴─┘
+ 1 2 3 4 5 6 7
+Computer won!