{ "cells": [ { "cell_type": "code", "execution_count": 132, "metadata": { "collapsed": true }, "outputs": [], "source": [ "import itertools\n", "import functools\n", "import collections\n", "import random\n", "from IPython.display import HTML, display" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "collapsed": true }, "outputs": [], "source": [ "INITIAL_BEAD_COUNT = 3" ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "collapsed": true }, "outputs": [], "source": [ "def xo_count(board):\n", " xs = 0\n", " os = 0\n", " for c in board:\n", " if c == 'x':\n", " xs += 1\n", " elif c == 'o':\n", " os += 1\n", " return xs, os" ] }, { "cell_type": "code", "execution_count": 195, "metadata": { "collapsed": true }, "outputs": [], "source": [ "def valid_board(board):\n", " xs, os = xo_count(board)\n", " return (xs - os) == 0 or (xs - os) == 1" ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "collapsed": true }, "outputs": [], "source": [ "def empty_board():\n", " return tuple('.' * 9)" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "('.', '.', '.', '.', '.', '.', '.', '.', '.')" ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "empty_board()" ] }, { "cell_type": "code", "execution_count": 7, "metadata": { "collapsed": true }, "outputs": [], "source": [ "def all_boards():\n", " return [b for b in itertools.product('.xo', repeat=9)\n", " if valid_board(b)\n", " ]" ] }, { "cell_type": "code", "execution_count": 8, "metadata": { "collapsed": true }, "outputs": [], "source": [ "def winner(board):\n", " winning_player = None\n", " if board[0] == board[1] == board[2] and board[0] != '.':\n", " winning_player = board[0]\n", " if board[3] == board[4] == board[5] and board[3] != '.':\n", " winning_player = board[3]\n", " if board[6] == board[7] == board[8] and board[6] != '.':\n", " winning_player = board[6]\n", " if board[0] == board[3] == board[6] and board[0] != '.':\n", " winning_player = board[0]\n", " if board[1] == board[4] == board[7] and board[1] != '.':\n", " winning_player = board[1]\n", " if board[2] == board[5] == board[8] and board[2] != '.':\n", " winning_player = board[2]\n", " if board[0] == board[4] == board[8] and board[0] != '.':\n", " winning_player = board[0]\n", " if board[2] == board[4] == board[6] and board[2] != '.':\n", " winning_player = board[2]\n", " return winning_player" ] }, { "cell_type": "code", "execution_count": 196, "metadata": { "scrolled": true }, "outputs": [ { "data": { "text/plain": [ "6046" ] }, "execution_count": 196, "metadata": {}, "output_type": "execute_result" } ], "source": [ "len(all_boards())" ] }, { "cell_type": "code", "execution_count": 197, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "[('.', '.', '.', '.', '.', '.', '.', '.', '.'),\n", " ('.', '.', '.', '.', '.', '.', '.', '.', 'x'),\n", " ('.', '.', '.', '.', '.', '.', '.', 'x', '.'),\n", " ('.', '.', '.', '.', '.', '.', '.', 'x', 'o'),\n", " ('.', '.', '.', '.', '.', '.', '.', 'o', 'x'),\n", " ('.', '.', '.', '.', '.', '.', 'x', '.', '.'),\n", " ('.', '.', '.', '.', '.', '.', 'x', '.', 'o'),\n", " ('.', '.', '.', '.', '.', '.', 'x', 'x', 'o'),\n", " ('.', '.', '.', '.', '.', '.', 'x', 'o', '.'),\n", " ('.', '.', '.', '.', '.', '.', 'x', 'o', 'x')]" ] }, "execution_count": 197, "metadata": {}, "output_type": "execute_result" } ], "source": [ "all_boards()[:10]" ] }, { "cell_type": "code", "execution_count": 198, "metadata": { "collapsed": true }, "outputs": [], "source": [ "def show_board(b):\n", " s = ''.join(b)\n", " return s[0:3] + '\\n' + s[3:6] + '\\n' + s[6:9]" ] }, { "cell_type": "code", "execution_count": 199, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "...\n", ".oo\n", "xxx\n" ] } ], "source": [ "print(show_board([b for b in all_boards() if winner(b)][0]))" ] }, { "cell_type": "code", "execution_count": 200, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ ".x.\n", "oox\n", "...\n" ] } ], "source": [ "test_board = all_boards()[1000]\n", "\n", "print(show_board(test_board))" ] }, { "cell_type": "code", "execution_count": 201, "metadata": { "collapsed": true }, "outputs": [], "source": [ "def show_boards(bs):\n", " rows = [[], [], []]\n", " for b in bs:\n", " s = ''.join(b)\n", " for i in range(3):\n", " rows[i] += [s[i*3:i*3+3]]\n", " return '\\n'.join(' '.join(r) for r in rows)" ] }, { "cell_type": "code", "execution_count": 202, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ ".x. .x. .x. .x. .x. .x. .x. .x. .x. .x.\n", "oox oox oox oox oox oox oox oox oox oox\n", "... ..x .x. .xo .ox x.. x.o xxo xo. xox\n" ] } ], "source": [ "print(show_boards(all_boards()[1000:1010]))" ] }, { "cell_type": "code", "execution_count": 203, "metadata": { "collapsed": true }, "outputs": [], "source": [ "# 0 1 2 6 3 0\n", "# 3 4 5 -> 7 4 1\n", "# 6 7 8 8 5 2\n", "rotation = {0: 6, 1: 3, 2: 0, 3: 7, 4: 4, 5: 1, 6: 8, 7: 5, 8: 2}\n", "inverse_rotation = {t: f for f, t in rotation.items()}" ] }, { "cell_type": "code", "execution_count": 204, "metadata": { "collapsed": true }, "outputs": [], "source": [ "# 0 1 2 2 1 0\n", "# 3 4 5 -> 5 4 3\n", "# 6 7 8 8 7 6\n", "reflection = {0: 2, 1: 1, 2: 0, 3: 5, 4: 4, 5: 3, 6: 8, 7: 7, 8: 6}" ] }, { "cell_type": "code", "execution_count": 205, "metadata": { "collapsed": true }, "outputs": [], "source": [ "def rotate(board, n=1):\n", " b = board\n", " for _ in range(n):\n", " b = tuple(b[rotation[i]] for i in range(len(board)))\n", " return b" ] }, { "cell_type": "code", "execution_count": 206, "metadata": { "collapsed": true }, "outputs": [], "source": [ "def reflect(board, r=True):\n", " if r: \n", " return tuple(board[reflection[i]] for i in range(len(board)))\n", " else:\n", " return board" ] }, { "cell_type": "code", "execution_count": 207, "metadata": { "scrolled": true }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ ".x. .o. ... .x. .x.\n", "oox .ox xoo xo. oox\n", "... .x. .x. .o. ...\n" ] } ], "source": [ "print(show_boards(rotate(test_board, i) for i in range(5)))" ] }, { "cell_type": "code", "execution_count": 184, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "..o o..\n", "xox xox\n", "xoo oox\n" ] } ], "source": [ "print(show_boards([test_board, reflect(test_board)]))" ] }, { "cell_type": "code", "execution_count": 20, "metadata": { "collapsed": true }, "outputs": [], "source": [ "def transform(board, n, r):\n", " b = rotate(board, n)\n", " return reflect(b, r)" ] }, { "cell_type": "code", "execution_count": 21, "metadata": { "collapsed": true }, "outputs": [], "source": [ "def untransform(board, n, r):\n", " b = reflect(board, r)\n", " return rotate(b, abs(4-n))" ] }, { "cell_type": "code", "execution_count": 22, "metadata": { "collapsed": true }, "outputs": [], "source": [ "def all_transforms(board):\n", " return [(transform(board, rot, ref), rot, ref)\n", " for rot in range(4)\n", " for ref in [False, True]]" ] }, { "cell_type": "code", "execution_count": 185, "metadata": { "scrolled": true }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "..o o.. xx. .xx oox xoo oxo oxo\n", "xox xox oo. .oo xox xox .oo oo.\n", "xoo oox oxo oxo o.. ..o .xx xx.\n" ] } ], "source": [ "print(show_boards(b for b, r, f in all_transforms(test_board)))" ] }, { "cell_type": "code", "execution_count": 24, "metadata": { "collapsed": true }, "outputs": [], "source": [ "def score(board):\n", " return ''.join(board)" ] }, { "cell_type": "code", "execution_count": 25, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "'..oxoxxoo'" ] }, "execution_count": 25, "metadata": {}, "output_type": "execute_result" } ], "source": [ "score(test_board)" ] }, { "cell_type": "code", "execution_count": 26, "metadata": { "collapsed": true }, "outputs": [], "source": [ "def canonical(board):\n", " return max(all_transforms(board), key=lambda brf: score(brf[0]))" ] }, { "cell_type": "code", "execution_count": 27, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "(('x', 'x', '.', 'o', 'o', '.', 'o', 'x', 'o'), 1, False)" ] }, "execution_count": 27, "metadata": {}, "output_type": "execute_result" } ], "source": [ "canonical(test_board)" ] }, { "cell_type": "code", "execution_count": 28, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "True" ] }, "execution_count": 28, "metadata": {}, "output_type": "execute_result" } ], "source": [ "b, r, f = canonical(test_board)\n", "untransform(b, r, f) == test_board" ] }, { "cell_type": "code", "execution_count": 29, "metadata": { "collapsed": true, "scrolled": true }, "outputs": [], "source": [ "for b, r, f in all_transforms(test_board):\n", " assert untransform(b, r, f) == test_board" ] }, { "cell_type": "code", "execution_count": 30, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "8953" ] }, "execution_count": 30, "metadata": {}, "output_type": "execute_result" } ], "source": [ "len(all_boards())" ] }, { "cell_type": "code", "execution_count": 31, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "1262" ] }, "execution_count": 31, "metadata": {}, "output_type": "execute_result" } ], "source": [ "canonical_boards = set([canonical(b)[0] for b in all_boards()])\n", "len(canonical_boards)" ] }, { "cell_type": "code", "execution_count": 186, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "... .x. x..\n", ".x. ... ...\n", "... ... ...\n" ] } ], "source": [ "print(show_boards(b for b in sorted([b for b in canonical_boards if xo_count(b) == (1, 0)], key=score)))" ] }, { "cell_type": "code", "execution_count": 33, "metadata": { "collapsed": true }, "outputs": [], "source": [ "def non_winning_boards():\n", " return set([canonical(b)[0] for b in all_boards()\n", " if not winner(b)\n", " ])" ] }, { "cell_type": "code", "execution_count": 34, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "[('.', '.', '.', '.', '.', '.', '.', '.', '.'),\n", " ('.', '.', '.', '.', 'o', '.', '.', '.', '.'),\n", " ('.', '.', '.', '.', 'x', '.', '.', '.', '.'),\n", " ('.', 'o', '.', '.', '.', '.', '.', '.', '.'),\n", " ('.', 'o', '.', '.', 'x', '.', '.', '.', '.'),\n", " ('.', 'o', '.', '.', 'x', '.', '.', 'o', '.'),\n", " ('.', 'o', '.', 'o', 'x', '.', '.', '.', '.'),\n", " ('.', 'x', '.', '.', '.', '.', '.', '.', '.'),\n", " ('.', 'x', '.', '.', '.', '.', '.', 'o', '.'),\n", " ('.', 'x', '.', '.', 'o', '.', '.', '.', '.')]" ] }, "execution_count": 34, "metadata": {}, "output_type": "execute_result" } ], "source": [ "sorted(non_winning_boards())[:10]" ] }, { "cell_type": "code", "execution_count": 210, "metadata": { "collapsed": true }, "outputs": [], "source": [ "def successors(board):\n", " xs, os = xo_count(board)\n", " succs = []\n", " if (xs - os) == 0:\n", " # add an x\n", " for i in range(len(board)):\n", " if board[i] == '.':\n", " succs += [tuple(board[:i] + ('x',) + board[i+1:])]\n", "\n", " if (xs - os) == 1:\n", " # add an o\n", " for i in range(len(board)):\n", " if board[i] == '.':\n", " succs += [tuple(board[:i] + ('o',) + board[i+1:])]\n", " return succs" ] }, { "cell_type": "code", "execution_count": 211, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "('.', 'x', '.', 'o', 'o', 'x', '.', '.', '.')" ] }, "execution_count": 211, "metadata": {}, "output_type": "execute_result" } ], "source": [ "test_board" ] }, { "cell_type": "code", "execution_count": 212, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "[('x', 'x', '.', 'o', 'o', 'x', '.', '.', '.'),\n", " ('.', 'x', 'x', 'o', 'o', 'x', '.', '.', '.'),\n", " ('.', 'x', '.', 'o', 'o', 'x', 'x', '.', '.'),\n", " ('.', 'x', '.', 'o', 'o', 'x', '.', 'x', '.'),\n", " ('.', 'x', '.', 'o', 'o', 'x', '.', '.', 'x')]" ] }, "execution_count": 212, "metadata": {}, "output_type": "execute_result" } ], "source": [ "successors(test_board)" ] }, { "cell_type": "code", "execution_count": 38, "metadata": { "collapsed": true }, "outputs": [], "source": [ "def vacants(board):\n", " return [i for i, c in enumerate(board) if c == '.']" ] }, { "cell_type": "code", "execution_count": 39, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "[0, 1]" ] }, "execution_count": 39, "metadata": {}, "output_type": "execute_result" } ], "source": [ "vacants(test_board)" ] }, { "cell_type": "code", "execution_count": 40, "metadata": { "collapsed": true }, "outputs": [], "source": [ "def apply_move(board, position, piece):\n", " return tuple(board[:position] + (piece,) + board[position+1:])" ] }, { "cell_type": "code", "execution_count": 41, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "(('o', '.', 'o', 'x', 'o', 'x', 'x', 'o', 'o'),\n", " ('.', 'x', 'o', 'x', 'o', 'x', 'x', 'o', 'o'))" ] }, "execution_count": 41, "metadata": {}, "output_type": "execute_result" } ], "source": [ "apply_move(test_board, 0, 'o'), apply_move(test_board, 1, 'x')" ] }, { "cell_type": "code", "execution_count": 42, "metadata": { "collapsed": true }, "outputs": [], "source": [ "def token_for_player(is_player_1):\n", " if is_player_1:\n", " return 'x'\n", " else:\n", " return 'o'" ] }, { "cell_type": "code", "execution_count": 43, "metadata": { "collapsed": true }, "outputs": [], "source": [ "def new_game(player1, player2):\n", " return {'board': empty_board(),\n", " 'player1': player1,\n", " 'player2': player2,\n", " 'player1_active': True,\n", " 'history': []}" ] }, { "cell_type": "code", "execution_count": 79, "metadata": { "collapsed": true }, "outputs": [], "source": [ "def game_finished(game):\n", " return (winner(game['board']) is not None) or (game['board'].count('.') == 0)" ] }, { "cell_type": "code", "execution_count": 50, "metadata": { "collapsed": true }, "outputs": [], "source": [ "def active_player(game):\n", " if game['player1_active']:\n", " return game['player1']\n", " else:\n", " return game['player2']" ] }, { "cell_type": "code", "execution_count": 213, "metadata": { "collapsed": true }, "outputs": [], "source": [ "def new_menace():\n", " boxes = {'human?': False}\n", " for b in non_winning_boards():\n", " box = collections.Counter()\n", " for s in vacants(b):\n", " box[s] = INITIAL_BEAD_COUNT\n", " boxes[b] = box\n", " return boxes" ] }, { "cell_type": "code", "execution_count": 214, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "{('x', '.', 'o', '.', 'o', 'x', '.', 'x', 'o'): Counter({1: 3, 3: 3, 6: 3}),\n", " ('o',\n", " 'x',\n", " 'o',\n", " '.',\n", " '.',\n", " '.',\n", " '.',\n", " 'x',\n", " '.'): Counter({3: 3, 4: 3, 5: 3, 6: 3, 8: 3}),\n", " ('x', 'x', '.', 'o', '.', 'x', 'o', 'o', 'x'): Counter({2: 3, 4: 3}),\n", " ('o',\n", " '.',\n", " '.',\n", " '.',\n", " 'x',\n", " 'x',\n", " '.',\n", " 'o',\n", " '.'): Counter({1: 3, 2: 3, 3: 3, 6: 3, 8: 3}),\n", " ('x',\n", " 'o',\n", " '.',\n", " '.',\n", " 'x',\n", " 'x',\n", " '.',\n", " '.',\n", " 'o'): Counter({2: 3, 3: 3, 6: 3, 7: 3}),\n", " ('x',\n", " 'o',\n", " '.',\n", " '.',\n", " '.',\n", " 'o',\n", " 'x',\n", " '.',\n", " '.'): Counter({2: 3, 3: 3, 4: 3, 7: 3, 8: 3}),\n", " ('x', 'x', '.', '.', 'o', 'x', 'o', 'x', 'o'): Counter({2: 3, 3: 3}),\n", " ('x',\n", " 'x',\n", " '.',\n", " 'o',\n", " '.',\n", " '.',\n", " 'x',\n", " 'o',\n", " '.'): Counter({2: 3, 4: 3, 5: 3, 8: 3}),\n", " ('x',\n", " 'x',\n", " '.',\n", " '.',\n", " '.',\n", " '.',\n", " 'o',\n", " 'x',\n", " 'o'): Counter({2: 3, 3: 3, 4: 3, 5: 3}),\n", " ('x',\n", " 'o',\n", " '.',\n", " '.',\n", " '.',\n", " '.',\n", " '.',\n", " '.',\n", " '.'): Counter({2: 3, 3: 3, 4: 3, 5: 3, 6: 3, 7: 3, 8: 3}),\n", " ('x',\n", " 'o',\n", " 'x',\n", " 'o',\n", " 'x',\n", " '.',\n", " '.',\n", " '.',\n", " '.'): Counter({5: 3, 6: 3, 7: 3, 8: 3}),\n", " ('x', 'o', 'o', '.', 'x', 'x', '.', 'x', 'o'): Counter({3: 3, 6: 3}),\n", " ('x',\n", " 'x',\n", " '.',\n", " '.',\n", " '.',\n", " '.',\n", " 'o',\n", " 'o',\n", " 'x'): Counter({2: 3, 3: 3, 4: 3, 5: 3}),\n", " ('x',\n", " 'x',\n", " 'o',\n", " '.',\n", " 'o',\n", " 'x',\n", " '.',\n", " '.',\n", " '.'): Counter({3: 3, 6: 3, 7: 3, 8: 3}),\n", " ('x', 'o', 'o', '.', 'x', 'o', '.', 'x', '.'): Counter({3: 3, 6: 3, 8: 3}),\n", " ('x', 'x', '.', 'o', '.', 'x', 'x', 'o', 'o'): Counter({2: 3, 4: 3}),\n", " ('x',\n", " 'o',\n", " '.',\n", " '.',\n", " 'o',\n", " 'x',\n", " '.',\n", " 'x',\n", " '.'): Counter({2: 3, 3: 3, 6: 3, 8: 3}),\n", " ('x', 'x', '.', '.', 'o', 'x', 'o', 'o', '.'): Counter({2: 3, 3: 3, 8: 3}),\n", " ('.',\n", " 'x',\n", " '.',\n", " 'x',\n", " 'o',\n", " 'o',\n", " '.',\n", " '.',\n", " '.'): Counter({0: 3, 2: 3, 6: 3, 7: 3, 8: 3}),\n", " ('o',\n", " 'x',\n", " '.',\n", " 'x',\n", " '.',\n", " '.',\n", " '.',\n", " '.',\n", " '.'): Counter({2: 3, 4: 3, 5: 3, 6: 3, 7: 3, 8: 3}),\n", " ('x', 'x', '.', 'o', 'o', 'x', '.', 'x', 'o'): Counter({2: 3, 6: 3}),\n", " ('o',\n", " '.',\n", " 'o',\n", " '.',\n", " 'x',\n", " '.',\n", " '.',\n", " 'x',\n", " '.'): Counter({1: 3, 3: 3, 5: 3, 6: 3, 8: 3}),\n", " ('x',\n", " 'x',\n", " 'o',\n", " '.',\n", " 'x',\n", " '.',\n", " '.',\n", " '.',\n", " 'o'): Counter({3: 3, 5: 3, 6: 3, 7: 3}),\n", " ('x', 'x', 'o', 'x', '.', 'x', 'o', '.', 'o'): Counter({4: 3, 7: 3}),\n", " ('x',\n", " '.',\n", " 'o',\n", " '.',\n", " '.',\n", " 'o',\n", " '.',\n", " 'x',\n", " '.'): Counter({1: 3, 3: 3, 4: 3, 6: 3, 8: 3}),\n", " ('x', 'x', 'o', 'o', '.', '.', 'o', '.', 'x'): Counter({4: 3, 5: 3, 7: 3}),\n", " ('x', 'x', '.', '.', 'x', 'o', '.', 'o', 'o'): Counter({2: 3, 3: 3, 6: 3}),\n", " ('o',\n", " 'x',\n", " '.',\n", " '.',\n", " 'o',\n", " 'x',\n", " '.',\n", " '.',\n", " '.'): Counter({2: 3, 3: 3, 6: 3, 7: 3, 8: 3}),\n", " ('x',\n", " 'o',\n", " '.',\n", " '.',\n", " 'x',\n", " '.',\n", " '.',\n", " 'o',\n", " '.'): Counter({2: 3, 3: 3, 5: 3, 6: 3, 8: 3}),\n", " ('x',\n", " '.',\n", " 'o',\n", " '.',\n", " '.',\n", " 'x',\n", " '.',\n", " 'o',\n", " '.'): Counter({1: 3, 3: 3, 4: 3, 6: 3, 8: 3}),\n", " ('x', 'o', 'x', 'o', 'x', 'o', 'o', 'x', '.'): Counter({8: 3}),\n", " ('o', 'x', 'o', 'x', '.', '.', '.', 'x', 'o'): Counter({4: 3, 5: 3, 6: 3}),\n", " ('o',\n", " '.',\n", " '.',\n", " '.',\n", " '.',\n", " 'x',\n", " '.',\n", " '.',\n", " '.'): Counter({1: 3, 2: 3, 3: 3, 4: 3, 6: 3, 7: 3, 8: 3}),\n", " ('x',\n", " 'x',\n", " 'o',\n", " '.',\n", " '.',\n", " '.',\n", " '.',\n", " '.',\n", " 'o'): Counter({3: 3, 4: 3, 5: 3, 6: 3, 7: 3}),\n", " ('x', 'x', '.', 'o', '.', 'x', 'o', 'o', '.'): Counter({2: 3, 4: 3, 8: 3}),\n", " ('x',\n", " 'x',\n", " '.',\n", " '.',\n", " 'o',\n", " 'o',\n", " '.',\n", " '.',\n", " '.'): Counter({2: 3, 3: 3, 6: 3, 7: 3, 8: 3}),\n", " ('o',\n", " 'x',\n", " '.',\n", " '.',\n", " 'x',\n", " '.',\n", " '.',\n", " '.',\n", " 'o'): Counter({2: 3, 3: 3, 5: 3, 6: 3, 7: 3}),\n", " ('x',\n", " 'x',\n", " 'o',\n", " 'o',\n", " '.',\n", " 'x',\n", " '.',\n", " '.',\n", " '.'): Counter({4: 3, 6: 3, 7: 3, 8: 3}),\n", " ('o', 'x', 'o', 'x', 'o', 'x', '.', '.', '.'): Counter({6: 3, 7: 3, 8: 3}),\n", " ('x',\n", " 'o',\n", " '.',\n", " '.',\n", " 'x',\n", " 'o',\n", " '.',\n", " 'x',\n", " '.'): Counter({2: 3, 3: 3, 6: 3, 8: 3}),\n", " ('x', 'x', 'o', '.', 'x', '.', 'x', 'o', 'o'): Counter({3: 3, 5: 3}),\n", " ('x',\n", " '.',\n", " '.',\n", " '.',\n", " '.',\n", " 'o',\n", " '.',\n", " '.',\n", " '.'): Counter({1: 3, 2: 3, 3: 3, 4: 3, 6: 3, 7: 3, 8: 3}),\n", " ('o',\n", " 'x',\n", " '.',\n", " '.',\n", " 'x',\n", " '.',\n", " '.',\n", " '.',\n", " '.'): Counter({2: 3, 3: 3, 5: 3, 6: 3, 7: 3, 8: 3}),\n", " ('x', 'x', 'o', '.', 'o', 'x', '.', '.', 'o'): Counter({3: 3, 6: 3, 7: 3}),\n", " ('x',\n", " 'x',\n", " '.',\n", " 'o',\n", " 'x',\n", " '.',\n", " '.',\n", " '.',\n", " 'o'): Counter({2: 3, 5: 3, 6: 3, 7: 3}),\n", " ('x', 'o', '.', 'o', 'x', 'x', '.', '.', 'o'): Counter({2: 3, 6: 3, 7: 3}),\n", " ('x', 'x', '.', 'o', 'x', 'x', 'o', 'o', '.'): Counter({2: 3, 8: 3}),\n", " ('x',\n", " 'o',\n", " '.',\n", " '.',\n", " '.',\n", " '.',\n", " '.',\n", " 'x',\n", " 'o'): Counter({2: 3, 3: 3, 4: 3, 5: 3, 6: 3}),\n", " ('x', 'x', '.', 'o', 'o', 'x', 'x', 'o', 'o'): Counter({2: 3}),\n", " ('x', 'x', '.', '.', 'o', 'o', '.', 'x', 'o'): Counter({2: 3, 3: 3, 6: 3}),\n", " ('x',\n", " 'o',\n", " '.',\n", " 'o',\n", " 'x',\n", " 'x',\n", " '.',\n", " '.',\n", " '.'): Counter({2: 3, 6: 3, 7: 3, 8: 3}),\n", " ('x',\n", " 'x',\n", " '.',\n", " 'o',\n", " '.',\n", " '.',\n", " 'o',\n", " 'x',\n", " '.'): Counter({2: 3, 4: 3, 5: 3, 8: 3}),\n", " ('x', 'o', 'x', '.', 'x', '.', 'o', 'o', '.'): Counter({3: 3, 5: 3, 8: 3}),\n", " ('x', 'x', 'o', 'o', '.', 'x', 'x', 'o', '.'): Counter({4: 3, 8: 3}),\n", " ('x',\n", " 'o',\n", " 'o',\n", " '.',\n", " 'x',\n", " 'x',\n", " '.',\n", " '.',\n", " '.'): Counter({3: 3, 6: 3, 7: 3, 8: 3}),\n", " ('x',\n", " 'x',\n", " '.',\n", " 'o',\n", " 'o',\n", " '.',\n", " '.',\n", " 'x',\n", " '.'): Counter({2: 3, 5: 3, 6: 3, 8: 3}),\n", " ('x',\n", " 'o',\n", " '.',\n", " '.',\n", " '.',\n", " '.',\n", " '.',\n", " 'o',\n", " 'x'): Counter({2: 3, 3: 3, 4: 3, 5: 3, 6: 3}),\n", " ('x', 'o', 'x', 'o', '.', '.', 'o', '.', 'x'): Counter({4: 3, 5: 3, 7: 3}),\n", " ('x',\n", " 'x',\n", " '.',\n", " '.',\n", " 'o',\n", " 'x',\n", " '.',\n", " '.',\n", " 'o'): Counter({2: 3, 3: 3, 6: 3, 7: 3}),\n", " ('x', 'x', '.', '.', '.', 'o', 'x', 'o', 'o'): Counter({2: 3, 3: 3, 4: 3}),\n", " ('x',\n", " 'x',\n", " '.',\n", " '.',\n", " 'o',\n", " '.',\n", " '.',\n", " 'o',\n", " 'x'): Counter({2: 3, 3: 3, 5: 3, 6: 3}),\n", " ('x',\n", " 'x',\n", " 'o',\n", " 'o',\n", " '.',\n", " '.',\n", " '.',\n", " '.',\n", " '.'): Counter({4: 3, 5: 3, 6: 3, 7: 3, 8: 3}),\n", " ('x', 'x', 'o', 'x', '.', 'x', '.', 'o', 'o'): Counter({4: 3, 6: 3}),\n", " ('x', 'o', 'o', 'o', 'x', 'x', '.', 'x', '.'): Counter({6: 3, 8: 3}),\n", " ('x', 'x', 'o', '.', 'o', 'x', 'x', '.', 'o'): Counter({3: 3, 7: 3}),\n", " ('x',\n", " 'x',\n", " 'o',\n", " '.',\n", " '.',\n", " '.',\n", " 'o',\n", " 'x',\n", " '.'): Counter({3: 3, 4: 3, 5: 3, 8: 3}),\n", " ('x',\n", " '.',\n", " '.',\n", " '.',\n", " 'o',\n", " 'x',\n", " '.',\n", " '.',\n", " 'o'): Counter({1: 3, 2: 3, 3: 3, 6: 3, 7: 3}),\n", " ('x', 'o', 'x', 'o', 'x', '.', '.', '.', 'o'): Counter({5: 3, 6: 3, 7: 3}),\n", " ('o',\n", " 'x',\n", " '.',\n", " 'x',\n", " 'x',\n", " '.',\n", " '.',\n", " '.',\n", " 'o'): Counter({2: 3, 5: 3, 6: 3, 7: 3}),\n", " ('x', 'x', 'o', 'o', 'x', '.', '.', '.', 'o'): Counter({5: 3, 6: 3, 7: 3}),\n", " ('x', 'x', '.', '.', 'o', '.', 'o', 'x', 'o'): Counter({2: 3, 3: 3, 5: 3}),\n", " ('x', 'x', 'o', 'o', 'o', 'x', '.', 'o', 'x'): Counter({6: 3}),\n", " ('.',\n", " 'x',\n", " '.',\n", " 'o',\n", " 'x',\n", " '.',\n", " '.',\n", " 'o',\n", " '.'): Counter({0: 3, 2: 3, 5: 3, 6: 3, 8: 3}),\n", " ('.',\n", " '.',\n", " '.',\n", " '.',\n", " 'x',\n", " '.',\n", " '.',\n", " '.',\n", " '.'): Counter({0: 3, 1: 3, 2: 3, 3: 3, 5: 3, 6: 3, 7: 3, 8: 3}),\n", " ('x', 'x', 'o', '.', 'x', 'x', 'o', '.', 'o'): Counter({3: 3, 7: 3}),\n", " ('x', 'o', 'o', 'o', 'x', 'x', '.', '.', '.'): Counter({6: 3, 7: 3, 8: 3}),\n", " ('.',\n", " 'x',\n", " '.',\n", " '.',\n", " '.',\n", " '.',\n", " '.',\n", " 'o',\n", " '.'): Counter({0: 3, 2: 3, 3: 3, 4: 3, 5: 3, 6: 3, 8: 3}),\n", " ('x', 'x', '.', 'o', '.', '.', 'x', 'o', 'o'): Counter({2: 3, 4: 3, 5: 3}),\n", " ('x', 'x', 'o', 'o', '.', 'x', 'x', 'o', 'o'): Counter({4: 3}),\n", " ('x',\n", " 'o',\n", " '.',\n", " '.',\n", " '.',\n", " '.',\n", " 'x',\n", " 'o',\n", " '.'): Counter({2: 3, 3: 3, 4: 3, 5: 3, 8: 3}),\n", " ('.',\n", " 'x',\n", " '.',\n", " 'o',\n", " 'x',\n", " '.',\n", " '.',\n", " '.',\n", " '.'): Counter({0: 3, 2: 3, 5: 3, 6: 3, 7: 3, 8: 3}),\n", " ('o',\n", " 'x',\n", " '.',\n", " 'o',\n", " '.',\n", " '.',\n", " '.',\n", " 'x',\n", " '.'): Counter({2: 3, 4: 3, 5: 3, 6: 3, 8: 3}),\n", " ('x', 'x', 'o', 'o', 'x', 'o', '.', '.', '.'): Counter({6: 3, 7: 3, 8: 3}),\n", " ('x', 'x', 'o', '.', 'x', 'o', '.', 'o', '.'): Counter({3: 3, 6: 3, 8: 3}),\n", " ('x',\n", " 'x',\n", " 'o',\n", " '.',\n", " '.',\n", " 'x',\n", " 'o',\n", " '.',\n", " '.'): Counter({3: 3, 4: 3, 7: 3, 8: 3}),\n", " 'human?': False,\n", " ('x', 'x', 'o', '.', 'o', 'o', '.', 'x', 'x'): Counter({3: 3, 6: 3}),\n", " ('x',\n", " 'x',\n", " '.',\n", " 'o',\n", " 'x',\n", " 'o',\n", " '.',\n", " '.',\n", " '.'): Counter({2: 3, 6: 3, 7: 3, 8: 3}),\n", " ('x', 'x', 'o', 'x', 'x', 'o', 'o', 'o', '.'): Counter({8: 3}),\n", " ('x', 'x', '.', 'x', 'o', 'o', '.', '.', 'o'): Counter({2: 3, 6: 3, 7: 3}),\n", " ('x', 'o', 'x', 'o', '.', '.', '.', 'o', 'x'): Counter({4: 3, 5: 3, 6: 3}),\n", " ('x',\n", " 'o',\n", " 'o',\n", " '.',\n", " 'x',\n", " '.',\n", " '.',\n", " '.',\n", " '.'): Counter({3: 3, 5: 3, 6: 3, 7: 3, 8: 3}),\n", " ('x',\n", " 'x',\n", " '.',\n", " 'o',\n", " '.',\n", " '.',\n", " '.',\n", " '.',\n", " '.'): Counter({2: 3, 4: 3, 5: 3, 6: 3, 7: 3, 8: 3}),\n", " ('x',\n", " '.',\n", " '.',\n", " '.',\n", " '.',\n", " 'x',\n", " '.',\n", " 'o',\n", " '.'): Counter({1: 3, 2: 3, 3: 3, 4: 3, 6: 3, 8: 3}),\n", " ('x', 'x', 'o', '.', 'x', '.', '.', 'o', 'o'): Counter({3: 3, 5: 3, 6: 3}),\n", " ('x',\n", " 'o',\n", " '.',\n", " '.',\n", " '.',\n", " 'x',\n", " '.',\n", " 'o',\n", " '.'): Counter({2: 3, 3: 3, 4: 3, 6: 3, 8: 3}),\n", " ('x', 'o', '.', 'o', '.', 'x', '.', 'x', 'o'): Counter({2: 3, 4: 3, 6: 3}),\n", " ('x', 'x', 'o', 'o', 'o', 'x', 'x', 'o', 'x'): Counter(),\n", " ('x',\n", " 'x',\n", " 'o',\n", " '.',\n", " 'o',\n", " '.',\n", " 'x',\n", " '.',\n", " '.'): Counter({3: 3, 5: 3, 7: 3, 8: 3}),\n", " ('x',\n", " 'x',\n", " '.',\n", " '.',\n", " 'o',\n", " '.',\n", " 'x',\n", " 'o',\n", " '.'): Counter({2: 3, 3: 3, 5: 3, 8: 3}),\n", " ('x', 'x', 'o', 'o', 'x', '.', 'x', 'o', 'o'): Counter({5: 3}),\n", " ('x',\n", " 'o',\n", " '.',\n", " '.',\n", " '.',\n", " 'o',\n", " '.',\n", " '.',\n", " 'x'): Counter({2: 3, 3: 3, 4: 3, 6: 3, 7: 3}),\n", " ('x', 'x', 'o', '.', '.', 'o', 'x', 'o', 'x'): Counter({3: 3, 4: 3}),\n", " ('x',\n", " '.',\n", " 'o',\n", " '.',\n", " '.',\n", " '.',\n", " '.',\n", " '.',\n", " 'x'): Counter({1: 3, 3: 3, 4: 3, 5: 3, 6: 3, 7: 3}),\n", " ('x',\n", " '.',\n", " 'o',\n", " '.',\n", " 'o',\n", " '.',\n", " '.',\n", " '.',\n", " 'x'): Counter({1: 3, 3: 3, 5: 3, 6: 3, 7: 3}),\n", " ('x',\n", " '.',\n", " 'x',\n", " '.',\n", " 'o',\n", " '.',\n", " 'o',\n", " '.',\n", " '.'): Counter({1: 3, 3: 3, 5: 3, 7: 3, 8: 3}),\n", " ('x',\n", " 'x',\n", " '.',\n", " '.',\n", " 'x',\n", " '.',\n", " 'o',\n", " '.',\n", " 'o'): Counter({2: 3, 3: 3, 5: 3, 7: 3}),\n", " ('x', 'o', 'x', '.', 'x', '.', 'o', '.', 'o'): Counter({3: 3, 5: 3, 7: 3}),\n", " ('x',\n", " '.',\n", " 'o',\n", " '.',\n", " '.',\n", " 'x',\n", " '.',\n", " 'x',\n", " 'o'): Counter({1: 3, 3: 3, 4: 3, 6: 3}),\n", " ('x',\n", " '.',\n", " 'o',\n", " '.',\n", " 'x',\n", " '.',\n", " '.',\n", " 'o',\n", " '.'): Counter({1: 3, 3: 3, 5: 3, 6: 3, 8: 3}),\n", " ('x', 'o', 'o', 'o', 'x', 'x', 'o', 'x', '.'): Counter({8: 3}),\n", " ('x', 'x', 'o', '.', 'o', '.', 'x', 'o', '.'): Counter({3: 3, 5: 3, 8: 3}),\n", " ('x', 'x', 'o', 'o', 'x', 'x', '.', '.', 'o'): Counter({6: 3, 7: 3}),\n", " ('x', 'x', 'o', '.', '.', '.', 'x', 'o', 'o'): Counter({3: 3, 4: 3, 5: 3}),\n", " ('x',\n", " '.',\n", " 'x',\n", " '.',\n", " 'o',\n", " '.',\n", " 'o',\n", " 'x',\n", " '.'): Counter({1: 3, 3: 3, 5: 3, 8: 3}),\n", " ('o', 'x', '.', 'x', 'o', 'x', '.', 'o', '.'): Counter({2: 3, 6: 3, 8: 3}),\n", " ('x',\n", " '.',\n", " '.',\n", " '.',\n", " 'o',\n", " 'x',\n", " '.',\n", " 'o',\n", " '.'): Counter({1: 3, 2: 3, 3: 3, 6: 3, 8: 3}),\n", " ('x', 'x', 'o', 'o', 'x', 'x', 'o', 'o', '.'): Counter({8: 3}),\n", " ('x',\n", " 'o',\n", " '.',\n", " '.',\n", " '.',\n", " '.',\n", " '.',\n", " 'x',\n", " '.'): Counter({2: 3, 3: 3, 4: 3, 5: 3, 6: 3, 8: 3}),\n", " ('x', 'x', 'o', '.', 'o', '.', '.', 'x', 'o'): Counter({3: 3, 5: 3, 6: 3}),\n", " ('x',\n", " 'x',\n", " 'o',\n", " '.',\n", " '.',\n", " '.',\n", " '.',\n", " 'x',\n", " 'o'): Counter({3: 3, 4: 3, 5: 3, 6: 3}),\n", " ('x', 'x', 'o', 'o', 'x', 'x', '.', 'o', '.'): Counter({6: 3, 8: 3}),\n", " ('x',\n", " 'o',\n", " 'x',\n", " '.',\n", " 'x',\n", " '.',\n", " '.',\n", " 'o',\n", " '.'): Counter({3: 3, 5: 3, 6: 3, 8: 3}),\n", " ('x', 'x', '.', '.', 'o', 'o', 'x', '.', 'o'): Counter({2: 3, 3: 3, 7: 3}),\n", " ('x', 'x', 'o', 'o', 'o', '.', 'x', 'x', '.'): Counter({5: 3, 8: 3}),\n", " ('x', 'x', 'o', 'o', 'o', 'x', 'x', 'o', '.'): Counter({8: 3}),\n", " ('o',\n", " '.',\n", " '.',\n", " '.',\n", " 'x',\n", " '.',\n", " '.',\n", " '.',\n", " '.'): Counter({1: 3, 2: 3, 3: 3, 5: 3, 6: 3, 7: 3, 8: 3}),\n", " ('x',\n", " '.',\n", " '.',\n", " '.',\n", " '.',\n", " 'x',\n", " '.',\n", " 'o',\n", " 'o'): Counter({1: 3, 2: 3, 3: 3, 4: 3, 6: 3}),\n", " ('x',\n", " 'x',\n", " '.',\n", " '.',\n", " 'o',\n", " '.',\n", " '.',\n", " '.',\n", " '.'): Counter({2: 3, 3: 3, 5: 3, 6: 3, 7: 3, 8: 3}),\n", " ('x',\n", " 'o',\n", " '.',\n", " '.',\n", " '.',\n", " '.',\n", " 'x',\n", " '.',\n", " 'o'): Counter({2: 3, 3: 3, 4: 3, 5: 3, 7: 3}),\n", " ('x', 'x', 'o', 'o', 'o', 'x', '.', 'x', '.'): Counter({6: 3, 8: 3}),\n", " ('x', 'o', 'x', 'o', 'o', '.', '.', 'x', '.'): Counter({5: 3, 6: 3, 8: 3}),\n", " ('x', 'o', 'o', '.', 'x', 'x', '.', '.', 'o'): Counter({3: 3, 6: 3, 7: 3}),\n", " ('x',\n", " '.',\n", " '.',\n", " '.',\n", " 'o',\n", " 'x',\n", " '.',\n", " 'x',\n", " 'o'): Counter({1: 3, 2: 3, 3: 3, 6: 3}),\n", " ('.',\n", " 'x',\n", " '.',\n", " 'o',\n", " '.',\n", " '.',\n", " '.',\n", " 'x',\n", " '.'): Counter({0: 3, 2: 3, 4: 3, 5: 3, 6: 3, 8: 3}),\n", " ('x', 'o', 'o', 'o', '.', 'x', '.', 'x', '.'): Counter({4: 3, 6: 3, 8: 3}),\n", " ('x',\n", " 'x',\n", " 'o',\n", " 'x',\n", " '.',\n", " '.',\n", " '.',\n", " 'o',\n", " '.'): Counter({4: 3, 5: 3, 6: 3, 8: 3}),\n", " ('x', 'x', '.', 'o', 'o', 'x', 'o', 'x', 'o'): Counter({2: 3}),\n", " ('x',\n", " 'o',\n", " '.',\n", " '.',\n", " 'x',\n", " '.',\n", " 'x',\n", " '.',\n", " 'o'): Counter({2: 3, 3: 3, 5: 3, 7: 3}),\n", " ('x',\n", " '.',\n", " '.',\n", " '.',\n", " '.',\n", " '.',\n", " '.',\n", " '.',\n", " 'o'): Counter({1: 3, 2: 3, 3: 3, 4: 3, 5: 3, 6: 3, 7: 3}),\n", " ('x', 'x', 'o', 'o', 'o', '.', 'x', '.', '.'): Counter({5: 3, 7: 3, 8: 3}),\n", " ('x', 'x', 'o', 'x', '.', 'o', 'o', '.', '.'): Counter({4: 3, 7: 3, 8: 3}),\n", " ('x', 'x', '.', 'o', '.', 'x', '.', 'o', 'o'): Counter({2: 3, 4: 3, 6: 3}),\n", " ('x', 'o', '.', '.', 'o', 'o', 'x', '.', 'x'): Counter({2: 3, 3: 3, 7: 3}),\n", " ('x',\n", " 'x',\n", " 'o',\n", " '.',\n", " 'x',\n", " '.',\n", " 'o',\n", " '.',\n", " '.'): Counter({3: 3, 5: 3, 7: 3, 8: 3}),\n", " ('x',\n", " 'o',\n", " 'x',\n", " 'o',\n", " '.',\n", " '.',\n", " '.',\n", " 'x',\n", " '.'): Counter({4: 3, 5: 3, 6: 3, 8: 3}),\n", " ('x', 'x', 'o', '.', '.', '.', 'o', 'o', 'x'): Counter({3: 3, 4: 3, 5: 3}),\n", " ('o', 'x', 'o', 'x', 'x', '.', 'o', '.', '.'): Counter({5: 3, 7: 3, 8: 3}),\n", " ('x',\n", " 'o',\n", " '.',\n", " '.',\n", " 'x',\n", " '.',\n", " 'o',\n", " '.',\n", " '.'): Counter({2: 3, 3: 3, 5: 3, 7: 3, 8: 3}),\n", " ('x', 'o', 'o', '.', '.', 'o', 'x', '.', 'x'): Counter({3: 3, 4: 3, 7: 3}),\n", " ('x',\n", " '.',\n", " 'x',\n", " '.',\n", " 'o',\n", " '.',\n", " 'x',\n", " '.',\n", " 'o'): Counter({1: 3, 3: 3, 5: 3, 7: 3}),\n", " ('x', 'o', '.', '.', 'x', 'o', 'x', 'o', '.'): Counter({2: 3, 3: 3, 8: 3}),\n", " ('x', 'x', 'o', 'o', 'o', 'x', 'x', '.', 'o'): Counter({7: 3}),\n", " ('x',\n", " 'x',\n", " 'o',\n", " 'o',\n", " '.',\n", " '.',\n", " 'x',\n", " '.',\n", " '.'): Counter({4: 3, 5: 3, 7: 3, 8: 3}),\n", " ('x', 'x', 'o', '.', '.', 'o', 'o', '.', 'x'): Counter({3: 3, 4: 3, 7: 3}),\n", " ('x', 'x', '.', 'o', 'x', 'o', '.', 'o', '.'): Counter({2: 3, 6: 3, 8: 3}),\n", " ('x',\n", " 'x',\n", " '.',\n", " 'o',\n", " 'x',\n", " '.',\n", " '.',\n", " 'o',\n", " '.'): Counter({2: 3, 5: 3, 6: 3, 8: 3}),\n", " ('o', 'x', 'o', 'x', '.', 'x', 'o', '.', '.'): Counter({4: 3, 7: 3, 8: 3}),\n", " ('x',\n", " 'x',\n", " '.',\n", " 'o',\n", " '.',\n", " 'o',\n", " '.',\n", " '.',\n", " 'x'): Counter({2: 3, 4: 3, 6: 3, 7: 3}),\n", " ('x', 'x', 'o', 'x', '.', 'o', '.', 'o', 'x'): Counter({4: 3, 6: 3}),\n", " ('x', 'o', '.', '.', '.', 'x', 'o', 'x', 'o'): Counter({2: 3, 3: 3, 4: 3}),\n", " ('x', 'x', 'o', 'o', '.', 'o', '.', 'x', 'x'): Counter({4: 3, 6: 3}),\n", " ('x',\n", " 'o',\n", " '.',\n", " '.',\n", " 'o',\n", " '.',\n", " 'x',\n", " '.',\n", " '.'): Counter({2: 3, 3: 3, 5: 3, 7: 3, 8: 3}),\n", " ('x',\n", " 'x',\n", " 'o',\n", " 'o',\n", " 'x',\n", " '.',\n", " '.',\n", " '.',\n", " '.'): Counter({5: 3, 6: 3, 7: 3, 8: 3}),\n", " ('x', 'x', 'o', 'o', '.', 'o', 'x', '.', 'x'): Counter({4: 3, 7: 3}),\n", " ('x',\n", " '.',\n", " 'x',\n", " '.',\n", " '.',\n", " '.',\n", " 'o',\n", " 'x',\n", " 'o'): Counter({1: 3, 3: 3, 4: 3, 5: 3}),\n", " ('x', 'x', '.', 'o', 'o', 'x', 'x', '.', 'o'): Counter({2: 3, 7: 3}),\n", " ('x', 'o', 'o', '.', 'o', 'x', 'x', '.', '.'): Counter({3: 3, 7: 3, 8: 3}),\n", " ('x', 'x', 'o', 'o', '.', 'x', '.', 'x', 'o'): Counter({4: 3, 6: 3}),\n", " ('x', 'x', 'o', '.', '.', 'x', 'o', '.', 'o'): Counter({3: 3, 4: 3, 7: 3}),\n", " ('o',\n", " 'x',\n", " '.',\n", " '.',\n", " '.',\n", " '.',\n", " '.',\n", " 'x',\n", " 'o'): Counter({2: 3, 3: 3, 4: 3, 5: 3, 6: 3}),\n", " ('x', 'x', 'o', 'o', '.', 'x', 'x', '.', 'o'): Counter({4: 3, 7: 3}),\n", " ('x', 'x', 'o', 'o', 'o', 'x', '.', 'x', 'o'): Counter({6: 3}),\n", " ('x',\n", " 'x',\n", " '.',\n", " '.',\n", " 'x',\n", " 'o',\n", " '.',\n", " 'o',\n", " '.'): Counter({2: 3, 3: 3, 6: 3, 8: 3}),\n", " ('x', 'x', 'o', 'o', '.', 'o', 'x', 'o', 'x'): Counter({4: 3}),\n", " ('x',\n", " 'x',\n", " '.',\n", " '.',\n", " 'o',\n", " '.',\n", " '.',\n", " 'o',\n", " '.'): Counter({2: 3, 3: 3, 5: 3, 6: 3, 8: 3}),\n", " ('x', 'x', '.', 'o', 'o', '.', '.', 'x', 'o'): Counter({2: 3, 5: 3, 6: 3}),\n", " ('x', 'x', '.', 'o', 'x', 'o', 'x', 'o', '.'): Counter({2: 3, 8: 3}),\n", " ('o',\n", " 'x',\n", " '.',\n", " 'o',\n", " 'x',\n", " '.',\n", " '.',\n", " '.',\n", " '.'): Counter({2: 3, 5: 3, 6: 3, 7: 3, 8: 3}),\n", " ('x', 'x', 'o', 'o', '.', 'x', 'o', '.', 'x'): Counter({4: 3, 7: 3}),\n", " ('x', 'x', '.', 'o', 'x', 'x', 'o', '.', 'o'): Counter({2: 3, 7: 3}),\n", " ('x',\n", " 'x',\n", " '.',\n", " 'o',\n", " 'o',\n", " '.',\n", " '.',\n", " '.',\n", " '.'): Counter({2: 3, 5: 3, 6: 3, 7: 3, 8: 3}),\n", " ('x',\n", " '.',\n", " 'o',\n", " '.',\n", " 'o',\n", " '.',\n", " '.',\n", " 'x',\n", " '.'): Counter({1: 3, 3: 3, 5: 3, 6: 3, 8: 3}),\n", " ('x', 'x', '.', '.', 'o', 'o', 'o', '.', 'x'): Counter({2: 3, 3: 3, 7: 3}),\n", " ('o',\n", " 'x',\n", " '.',\n", " 'x',\n", " 'o',\n", " '.',\n", " '.',\n", " '.',\n", " '.'): Counter({2: 3, 5: 3, 6: 3, 7: 3, 8: 3}),\n", " ('.',\n", " 'x',\n", " '.',\n", " 'x',\n", " '.',\n", " 'o',\n", " '.',\n", " '.',\n", " '.'): Counter({0: 3, 2: 3, 4: 3, 6: 3, 7: 3, 8: 3}),\n", " ('x',\n", " 'x',\n", " 'o',\n", " '.',\n", " '.',\n", " '.',\n", " 'o',\n", " '.',\n", " 'x'): Counter({3: 3, 4: 3, 5: 3, 7: 3}),\n", " ('.',\n", " 'x',\n", " '.',\n", " '.',\n", " '.',\n", " '.',\n", " '.',\n", " '.',\n", " '.'): Counter({0: 3, 2: 3, 3: 3, 4: 3, 5: 3, 6: 3, 7: 3, 8: 3}),\n", " ('o', 'x', '.', '.', 'x', 'x', 'o', '.', 'o'): Counter({2: 3, 3: 3, 7: 3}),\n", " ('x',\n", " '.',\n", " 'o',\n", " '.',\n", " 'x',\n", " 'x',\n", " 'o',\n", " '.',\n", " '.'): Counter({1: 3, 3: 3, 7: 3, 8: 3}),\n", " ('x', 'x', 'o', 'x', 'o', 'o', '.', '.', '.'): Counter({6: 3, 7: 3, 8: 3}),\n", " ('x',\n", " 'o',\n", " 'x',\n", " '.',\n", " '.',\n", " '.',\n", " '.',\n", " 'o',\n", " '.'): Counter({3: 3, 4: 3, 5: 3, 6: 3, 8: 3}),\n", " ('x', 'o', '.', '.', 'x', 'o', '.', 'x', 'o'): Counter({2: 3, 3: 3, 6: 3}),\n", " ('x', 'x', '.', 'x', 'o', 'o', '.', 'o', 'x'): Counter({2: 3, 6: 3}),\n", " ('x', 'x', '.', 'o', '.', 'o', 'x', 'o', 'x'): Counter({2: 3, 4: 3}),\n", " ('.',\n", " 'x',\n", " '.',\n", " 'x',\n", " 'o',\n", " 'x',\n", " '.',\n", " 'o',\n", " '.'): Counter({0: 3, 2: 3, 6: 3, 8: 3}),\n", " ('x',\n", " '.',\n", " '.',\n", " '.',\n", " 'o',\n", " '.',\n", " '.',\n", " '.',\n", " '.'): Counter({1: 3, 2: 3, 3: 3, 5: 3, 6: 3, 7: 3, 8: 3}),\n", " ('x',\n", " '.',\n", " 'o',\n", " '.',\n", " 'o',\n", " 'x',\n", " '.',\n", " 'x',\n", " '.'): Counter({1: 3, 3: 3, 6: 3, 8: 3}),\n", " ('x', 'x', 'o', 'o', '.', 'x', 'o', 'x', 'o'): Counter({4: 3}),\n", " ('x',\n", " 'x',\n", " 'o',\n", " '.',\n", " '.',\n", " 'x',\n", " '.',\n", " '.',\n", " 'o'): Counter({3: 3, 4: 3, 6: 3, 7: 3}),\n", " ('x', 'o', 'o', '.', 'x', 'x', '.', 'o', '.'): Counter({3: 3, 6: 3, 8: 3}),\n", " ('x',\n", " 'o',\n", " 'x',\n", " '.',\n", " '.',\n", " '.',\n", " 'o',\n", " '.',\n", " '.'): Counter({3: 3, 4: 3, 5: 3, 7: 3, 8: 3}),\n", " ('x', 'x', '.', 'o', 'x', 'o', 'x', 'o', 'o'): Counter({2: 3}),\n", " ('x',\n", " 'o',\n", " '.',\n", " '.',\n", " 'o',\n", " 'x',\n", " '.',\n", " '.',\n", " '.'): Counter({2: 3, 3: 3, 6: 3, 7: 3, 8: 3}),\n", " ('o', 'x', 'o', 'x', 'o', '.', '.', 'x', '.'): Counter({5: 3, 6: 3, 8: 3}),\n", " ('x',\n", " 'x',\n", " 'o',\n", " '.',\n", " '.',\n", " '.',\n", " 'x',\n", " '.',\n", " 'o'): Counter({3: 3, 4: 3, 5: 3, 7: 3}),\n", " ('x',\n", " 'x',\n", " '.',\n", " '.',\n", " 'x',\n", " '.',\n", " 'o',\n", " 'o',\n", " '.'): Counter({2: 3, 3: 3, 5: 3, 8: 3}),\n", " ('o', 'x', '.', 'x', '.', 'x', '.', 'o', 'o'): Counter({2: 3, 4: 3, 6: 3}),\n", " ('o', 'x', '.', 'o', 'o', 'x', '.', 'x', '.'): Counter({2: 3, 6: 3, 8: 3}),\n", " ('x',\n", " 'o',\n", " 'o',\n", " '.',\n", " '.',\n", " 'x',\n", " 'x',\n", " '.',\n", " '.'): Counter({3: 3, 4: 3, 7: 3, 8: 3}),\n", " ('x',\n", " 'x',\n", " '.',\n", " '.',\n", " '.',\n", " 'x',\n", " '.',\n", " 'o',\n", " 'o'): Counter({2: 3, 3: 3, 4: 3, 6: 3}),\n", " ('x',\n", " 'x',\n", " 'o',\n", " '.',\n", " 'o',\n", " '.',\n", " '.',\n", " 'x',\n", " '.'): Counter({3: 3, 5: 3, 6: 3, 8: 3}),\n", " ('x', 'o', 'o', '.', 'o', 'x', '.', 'x', '.'): Counter({3: 3, 6: 3, 8: 3}),\n", " ('.',\n", " 'x',\n", " '.',\n", " 'x',\n", " 'x',\n", " 'o',\n", " '.',\n", " 'o',\n", " '.'): Counter({0: 3, 2: 3, 6: 3, 8: 3}),\n", " ('x', 'x', '.', '.', 'x', 'o', 'o', '.', 'o'): Counter({2: 3, 3: 3, 7: 3}),\n", " ('x', 'x', 'o', 'o', '.', 'x', 'o', 'o', 'x'): Counter({4: 3}),\n", " ('x', 'x', '.', 'o', 'x', 'o', '.', '.', 'o'): Counter({2: 3, 6: 3, 7: 3}),\n", " ('x', 'x', 'o', 'x', 'x', 'o', '.', 'o', '.'): Counter({6: 3, 8: 3}),\n", " ('x',\n", " 'x',\n", " 'o',\n", " '.',\n", " '.',\n", " '.',\n", " '.',\n", " 'o',\n", " 'x'): Counter({3: 3, 4: 3, 5: 3, 6: 3}),\n", " ('x', 'o', 'o', '.', '.', 'x', 'o', 'x', '.'): Counter({3: 3, 4: 3, 8: 3}),\n", " ('x',\n", " '.',\n", " 'o',\n", " '.',\n", " '.',\n", " '.',\n", " '.',\n", " '.',\n", " '.'): Counter({1: 3, 3: 3, 4: 3, 5: 3, 6: 3, 7: 3, 8: 3}),\n", " ('x',\n", " '.',\n", " 'o',\n", " '.',\n", " 'x',\n", " 'o',\n", " '.',\n", " '.',\n", " '.'): Counter({1: 3, 3: 3, 6: 3, 7: 3, 8: 3}),\n", " ('x', 'o', 'x', 'o', 'x', 'o', '.', 'x', '.'): Counter({6: 3, 8: 3}),\n", " ('.',\n", " 'x',\n", " '.',\n", " 'x',\n", " '.',\n", " 'o',\n", " '.',\n", " 'o',\n", " '.'): Counter({0: 3, 2: 3, 4: 3, 6: 3, 8: 3}),\n", " ('x', 'x', '.', 'x', 'x', 'o', '.', 'o', 'o'): Counter({2: 3, 6: 3}),\n", " ('x', 'x', 'o', '.', 'o', 'o', 'x', '.', '.'): Counter({3: 3, 7: 3, 8: 3}),\n", " ('x',\n", " 'x',\n", " '.',\n", " '.',\n", " '.',\n", " 'x',\n", " 'o',\n", " '.',\n", " 'o'): Counter({2: 3, 3: 3, 4: 3, 7: 3}),\n", " ('o', 'x', 'o', 'x', 'o', 'x', '.', 'x', '.'): Counter({6: 3, 8: 3}),\n", " ('x', 'o', 'o', '.', 'x', 'x', 'x', '.', 'o'): Counter({3: 3, 7: 3}),\n", " ('x',\n", " '.',\n", " 'o',\n", " '.',\n", " 'x',\n", " 'o',\n", " '.',\n", " 'x',\n", " '.'): Counter({1: 3, 3: 3, 6: 3, 8: 3}),\n", " ('o', 'x', 'o', 'x', 'x', 'o', '.', '.', '.'): Counter({6: 3, 7: 3, 8: 3}),\n", " ('x', '.', 'o', '.', 'x', 'x', 'o', 'o', '.'): Counter({1: 3, 3: 3, 8: 3}),\n", " ('x',\n", " 'o',\n", " '.',\n", " '.',\n", " 'o',\n", " 'x',\n", " 'x',\n", " '.',\n", " '.'): Counter({2: 3, 3: 3, 7: 3, 8: 3}),\n", " ('x', 'o', '.', '.', 'o', 'x', 'o', 'x', '.'): Counter({2: 3, 3: 3, 8: 3}),\n", " ('x', 'x', '.', 'o', 'o', '.', 'x', '.', 'o'): Counter({2: 3, 5: 3, 7: 3}),\n", " ('x', 'x', '.', 'o', '.', 'o', 'o', 'x', '.'): Counter({2: 3, 4: 3, 8: 3}),\n", " ('x', 'o', 'x', 'o', 'x', '.', '.', 'o', '.'): Counter({5: 3, 6: 3, 8: 3}),\n", " ('x',\n", " 'o',\n", " '.',\n", " '.',\n", " 'x',\n", " '.',\n", " 'x',\n", " 'o',\n", " '.'): Counter({2: 3, 3: 3, 5: 3, 8: 3}),\n", " ('x',\n", " 'x',\n", " '.',\n", " '.',\n", " '.',\n", " 'o',\n", " '.',\n", " '.',\n", " '.'): Counter({2: 3, 3: 3, 4: 3, 6: 3, 7: 3, 8: 3}),\n", " ('x',\n", " '.',\n", " '.',\n", " '.',\n", " '.',\n", " '.',\n", " '.',\n", " '.',\n", " '.'): Counter({1: 3, 2: 3, 3: 3, 4: 3, 5: 3, 6: 3, 7: 3, 8: 3}),\n", " ('o', 'x', '.', 'o', 'x', 'x', '.', 'o', '.'): Counter({2: 3, 6: 3, 8: 3}),\n", " ('x', 'o', '.', '.', 'x', '.', 'o', 'x', 'o'): Counter({2: 3, 3: 3, 5: 3}),\n", " ('x',\n", " '.',\n", " 'o',\n", " '.',\n", " 'x',\n", " 'x',\n", " '.',\n", " '.',\n", " 'o'): Counter({1: 3, 3: 3, 6: 3, 7: 3}),\n", " ('x',\n", " 'o',\n", " 'x',\n", " 'o',\n", " '.',\n", " '.',\n", " 'x',\n", " '.',\n", " '.'): Counter({4: 3, 5: 3, 7: 3, 8: 3}),\n", " ('x', 'x', 'o', 'x', '.', '.', 'o', '.', 'o'): Counter({4: 3, 5: 3, 7: 3}),\n", " ('x', 'x', 'o', '.', '.', 'o', '.', 'o', 'x'): Counter({3: 3, 4: 3, 6: 3}),\n", " ('x', 'o', 'x', 'o', '.', 'o', 'x', '.', '.'): Counter({4: 3, 7: 3, 8: 3}),\n", " ('x', 'o', 'o', '.', '.', 'x', 'x', 'o', '.'): Counter({3: 3, 4: 3, 8: 3}),\n", " ('x', 'x', 'o', 'o', '.', 'o', 'x', '.', '.'): Counter({4: 3, 7: 3, 8: 3}),\n", " ('x', 'x', 'o', 'o', '.', 'o', '.', '.', 'x'): Counter({4: 3, 6: 3, 7: 3}),\n", " ('x',\n", " 'x',\n", " '.',\n", " 'x',\n", " 'o',\n", " '.',\n", " '.',\n", " '.',\n", " 'o'): Counter({2: 3, 5: 3, 6: 3, 7: 3}),\n", " ('x', 'x', 'o', 'o', 'x', 'x', 'o', '.', 'o'): Counter({7: 3}),\n", " ('x',\n", " 'x',\n", " '.',\n", " '.',\n", " '.',\n", " 'x',\n", " 'o',\n", " 'o',\n", " '.'): Counter({2: 3, 3: 3, 4: 3, 8: 3}),\n", " ('x',\n", " 'o',\n", " '.',\n", " 'o',\n", " '.',\n", " '.',\n", " '.',\n", " '.',\n", " 'x'): Counter({2: 3, 4: 3, 5: 3, 6: 3, 7: 3}),\n", " ('o',\n", " 'x',\n", " '.',\n", " '.',\n", " '.',\n", " 'o',\n", " '.',\n", " 'x',\n", " '.'): Counter({2: 3, 3: 3, 4: 3, 6: 3, 8: 3}),\n", " ('.',\n", " 'x',\n", " '.',\n", " 'o',\n", " 'x',\n", " 'o',\n", " '.',\n", " '.',\n", " '.'): Counter({0: 3, 2: 3, 6: 3, 7: 3, 8: 3}),\n", " ('x',\n", " 'o',\n", " '.',\n", " '.',\n", " '.',\n", " 'x',\n", " '.',\n", " 'x',\n", " 'o'): Counter({2: 3, 3: 3, 4: 3, 6: 3}),\n", " ('x', 'x', 'o', 'o', 'o', '.', '.', '.', 'x'): Counter({5: 3, 6: 3, 7: 3}),\n", " ('x', 'x', 'o', 'o', 'o', '.', 'x', 'x', 'o'): Counter({5: 3}),\n", " ('.',\n", " 'x',\n", " '.',\n", " '.',\n", " 'o',\n", " '.',\n", " '.',\n", " 'x',\n", " '.'): Counter({0: 3, 2: 3, 3: 3, 5: 3, 6: 3, 8: 3}),\n", " ('x', 'x', 'o', 'o', 'x', 'x', 'x', 'o', 'o'): Counter(),\n", " ('x', 'x', 'o', '.', 'o', 'x', '.', 'x', 'o'): Counter({3: 3, 6: 3}),\n", " ('x', 'x', 'o', '.', 'o', 'o', 'x', 'o', 'x'): Counter({3: 3}),\n", " ('x', 'o', 'o', '.', 'x', 'x', 'o', 'x', '.'): Counter({3: 3, 8: 3}),\n", " ('x', 'x', '.', '.', 'o', 'x', 'o', '.', 'o'): Counter({2: 3, 3: 3, 7: 3}),\n", " ('x', 'x', 'o', 'o', 'x', '.', 'x', '.', 'o'): Counter({5: 3, 7: 3}),\n", " ('o',\n", " 'x',\n", " '.',\n", " 'x',\n", " 'x',\n", " 'o',\n", " '.',\n", " '.',\n", " '.'): Counter({2: 3, 6: 3, 7: 3, 8: 3}),\n", " ('x',\n", " 'x',\n", " '.',\n", " '.',\n", " '.',\n", " '.',\n", " 'o',\n", " '.',\n", " '.'): Counter({2: 3, 3: 3, 4: 3, 5: 3, 7: 3, 8: 3}),\n", " ('x', '.', 'x', '.', 'o', '.', 'o', 'x', 'o'): Counter({1: 3, 3: 3, 5: 3}),\n", " ('x',\n", " '.',\n", " 'x',\n", " '.',\n", " '.',\n", " '.',\n", " 'o',\n", " '.',\n", " 'o'): Counter({1: 3, 3: 3, 4: 3, 5: 3, 7: 3}),\n", " ('x',\n", " 'x',\n", " 'o',\n", " 'o',\n", " '.',\n", " '.',\n", " '.',\n", " '.',\n", " 'x'): Counter({4: 3, 5: 3, 6: 3, 7: 3}),\n", " ('x',\n", " 'o',\n", " 'x',\n", " 'o',\n", " '.',\n", " '.',\n", " '.',\n", " '.',\n", " '.'): Counter({4: 3, 5: 3, 6: 3, 7: 3, 8: 3}),\n", " ('x', 'o', 'o', '.', '.', 'x', '.', 'x', 'o'): Counter({3: 3, 4: 3, 6: 3}),\n", " ('x',\n", " 'x',\n", " '.',\n", " 'o',\n", " '.',\n", " 'o',\n", " 'x',\n", " '.',\n", " '.'): Counter({2: 3, 4: 3, 7: 3, 8: 3}),\n", " ('x',\n", " 'o',\n", " 'x',\n", " '.',\n", " 'x',\n", " '.',\n", " 'o',\n", " '.',\n", " '.'): Counter({3: 3, 5: 3, 7: 3, 8: 3}),\n", " ('x',\n", " 'x',\n", " '.',\n", " '.',\n", " '.',\n", " 'o',\n", " '.',\n", " 'o',\n", " 'x'): Counter({2: 3, 3: 3, 4: 3, 6: 3}),\n", " ('x', 'x', 'o', 'o', 'x', '.', 'o', '.', '.'): Counter({5: 3, 7: 3, 8: 3}),\n", " ('x',\n", " 'x',\n", " '.',\n", " 'o',\n", " '.',\n", " '.',\n", " 'o',\n", " '.',\n", " '.'): Counter({2: 3, 4: 3, 5: 3, 7: 3, 8: 3}),\n", " ('x',\n", " 'o',\n", " 'o',\n", " '.',\n", " '.',\n", " '.',\n", " '.',\n", " 'x',\n", " '.'): Counter({3: 3, 4: 3, 5: 3, 6: 3, 8: 3}),\n", " ('.',\n", " 'o',\n", " '.',\n", " '.',\n", " 'x',\n", " '.',\n", " '.',\n", " '.',\n", " '.'): Counter({0: 3, 2: 3, 3: 3, 5: 3, 6: 3, 7: 3, 8: 3}),\n", " ('x', 'x', 'o', 'o', '.', 'x', '.', 'o', 'x'): Counter({4: 3, 6: 3}),\n", " ('x',\n", " '.',\n", " 'o',\n", " '.',\n", " 'x',\n", " 'x',\n", " '.',\n", " 'o',\n", " '.'): Counter({1: 3, 3: 3, 6: 3, 8: 3}),\n", " ('x', 'o', 'x', 'o', 'x', '.', '.', 'x', 'o'): Counter({5: 3, 6: 3}),\n", " ('x',\n", " 'o',\n", " '.',\n", " '.',\n", " '.',\n", " '.',\n", " 'o',\n", " 'x',\n", " '.'): Counter({2: 3, 3: 3, 4: 3, 5: 3, 8: 3}),\n", " ('x', 'o', 'x', 'o', '.', '.', 'o', 'x', '.'): Counter({4: 3, 5: 3, 8: 3}),\n", " ('o', 'x', 'o', 'x', '.', 'o', '.', 'x', '.'): Counter({4: 3, 6: 3, 8: 3}),\n", " ('x', 'o', '.', '.', 'x', 'o', 'o', 'x', '.'): Counter({2: 3, 3: 3, 8: 3}),\n", " ('x',\n", " 'x',\n", " '.',\n", " '.',\n", " 'o',\n", " 'x',\n", " 'o',\n", " '.',\n", " '.'): Counter({2: 3, 3: 3, 7: 3, 8: 3}),\n", " ('x',\n", " 'x',\n", " '.',\n", " '.',\n", " '.',\n", " 'o',\n", " '.',\n", " 'o',\n", " '.'): Counter({2: 3, 3: 3, 4: 3, 6: 3, 8: 3}),\n", " ('x', 'x', '.', 'o', 'o', 'x', 'o', 'x', '.'): Counter({2: 3, 8: 3}),\n", " ('x',\n", " '.',\n", " 'o',\n", " '.',\n", " 'x',\n", " '.',\n", " '.',\n", " 'x',\n", " 'o'): Counter({1: 3, 3: 3, 5: 3, 6: 3}),\n", " ('x', 'o', 'x', 'o', '.', '.', 'x', '.', 'o'): Counter({4: 3, 5: 3, 7: 3}),\n", " ('o',\n", " 'x',\n", " '.',\n", " '.',\n", " 'x',\n", " 'x',\n", " '.',\n", " '.',\n", " 'o'): Counter({2: 3, 3: 3, 6: 3, 7: 3}),\n", " ('x',\n", " 'o',\n", " '.',\n", " '.',\n", " '.',\n", " 'x',\n", " 'x',\n", " 'o',\n", " '.'): Counter({2: 3, 3: 3, 4: 3, 8: 3}),\n", " ('x', 'x', 'o', 'o', '.', 'o', '.', 'x', '.'): Counter({4: 3, 6: 3, 8: 3}),\n", " ('x', 'x', 'o', 'o', '.', '.', 'x', 'o', '.'): Counter({4: 3, 5: 3, 8: 3}),\n", " ('x', 'x', 'o', '.', 'o', '.', 'x', '.', 'o'): Counter({3: 3, 5: 3, 7: 3}),\n", " ('x',\n", " 'x',\n", " 'o',\n", " 'x',\n", " '.',\n", " '.',\n", " '.',\n", " '.',\n", " 'o'): Counter({4: 3, 5: 3, 6: 3, 7: 3}),\n", " ('x',\n", " 'x',\n", " 'o',\n", " '.',\n", " '.',\n", " '.',\n", " '.',\n", " 'o',\n", " '.'): Counter({3: 3, 4: 3, 5: 3, 6: 3, 8: 3}),\n", " ('x', 'x', 'o', 'x', 'o', 'x', '.', '.', 'o'): Counter({6: 3, 7: 3}),\n", " ('o',\n", " 'x',\n", " '.',\n", " 'o',\n", " 'x',\n", " 'x',\n", " '.',\n", " '.',\n", " '.'): Counter({2: 3, 6: 3, 7: 3, 8: 3}),\n", " ('x', 'x', '.', 'o', '.', '.', 'o', 'o', 'x'): Counter({2: 3, 4: 3, 5: 3}),\n", " ('x', 'x', '.', 'o', '.', 'o', 'o', '.', 'x'): Counter({2: 3, 4: 3, 7: 3}),\n", " ('x',\n", " 'x',\n", " '.',\n", " '.',\n", " 'x',\n", " '.',\n", " '.',\n", " 'o',\n", " 'o'): Counter({2: 3, 3: 3, 5: 3, 6: 3}),\n", " ('x', 'o', 'o', '.', 'o', '.', 'x', '.', 'x'): Counter({3: 3, 5: 3, 7: 3}),\n", " ('x', 'o', 'x', '.', 'x', '.', 'o', 'x', 'o'): Counter({3: 3, 5: 3}),\n", " ('x',\n", " 'o',\n", " 'x',\n", " '.',\n", " 'o',\n", " '.',\n", " '.',\n", " 'x',\n", " '.'): Counter({3: 3, 5: 3, 6: 3, 8: 3}),\n", " ('x', 'o', 'o', '.', 'x', 'x', 'x', 'o', '.'): Counter({3: 3, 8: 3}),\n", " ('x',\n", " 'x',\n", " '.',\n", " '.',\n", " 'o',\n", " '.',\n", " 'o',\n", " '.',\n", " '.'): Counter({2: 3, 3: 3, 5: 3, 7: 3, 8: 3}),\n", " ('x',\n", " 'o',\n", " '.',\n", " '.',\n", " '.',\n", " 'x',\n", " '.',\n", " '.',\n", " '.'): Counter({2: 3, 3: 3, 4: 3, 6: 3, 7: 3, 8: 3}),\n", " ('x', 'x', 'o', '.', 'o', '.', '.', 'o', 'x'): Counter({3: 3, 5: 3, 6: 3}),\n", " ('x', 'o', 'x', 'o', 'x', '.', 'o', 'x', 'o'): Counter({5: 3}),\n", " ('x', 'x', '.', 'o', 'x', '.', 'x', 'o', 'o'): Counter({2: 3, 5: 3}),\n", " ('x',\n", " 'x',\n", " 'o',\n", " '.',\n", " '.',\n", " 'o',\n", " '.',\n", " 'x',\n", " '.'): Counter({3: 3, 4: 3, 6: 3, 8: 3}),\n", " ('o',\n", " 'x',\n", " '.',\n", " '.',\n", " 'x',\n", " 'o',\n", " '.',\n", " '.',\n", " '.'): Counter({2: 3, 3: 3, 6: 3, 7: 3, 8: 3}),\n", " ('x', 'x', '.', 'x', 'o', 'x', '.', 'o', 'o'): Counter({2: 3, 6: 3}),\n", " ('x',\n", " '.',\n", " 'o',\n", " '.',\n", " '.',\n", " 'x',\n", " 'o',\n", " 'x',\n", " '.'): Counter({1: 3, 3: 3, 4: 3, 8: 3}),\n", " ('x', 'x', '.', 'o', 'o', 'x', 'o', '.', 'x'): Counter({2: 3, 7: 3}),\n", " ('.',\n", " 'x',\n", " '.',\n", " 'o',\n", " '.',\n", " 'o',\n", " '.',\n", " 'x',\n", " '.'): Counter({0: 3, 2: 3, 4: 3, 6: 3, 8: 3}),\n", " ('x', 'x', 'o', '.', '.', '.', 'o', 'x', 'o'): Counter({3: 3, 4: 3, 5: 3}),\n", " ('x',\n", " '.',\n", " 'x',\n", " '.',\n", " 'x',\n", " '.',\n", " 'o',\n", " '.',\n", " 'o'): Counter({1: 3, 3: 3, 5: 3, 7: 3}),\n", " ('x',\n", " 'x',\n", " 'o',\n", " 'x',\n", " 'o',\n", " '.',\n", " '.',\n", " '.',\n", " '.'): Counter({5: 3, 6: 3, 7: 3, 8: 3}),\n", " ('x', 'o', 'x', 'o', '.', '.', '.', 'x', 'o'): Counter({4: 3, 5: 3, 6: 3}),\n", " ('.',\n", " 'x',\n", " '.',\n", " '.',\n", " 'x',\n", " '.',\n", " '.',\n", " 'o',\n", " '.'): Counter({0: 3, 2: 3, 3: 3, 5: 3, 6: 3, 8: 3}),\n", " ('x',\n", " 'x',\n", " '.',\n", " 'o',\n", " 'x',\n", " '.',\n", " 'o',\n", " '.',\n", " '.'): Counter({2: 3, 5: 3, 7: 3, 8: 3}),\n", " ('x',\n", " 'x',\n", " '.',\n", " '.',\n", " '.',\n", " 'o',\n", " 'x',\n", " 'o',\n", " '.'): Counter({2: 3, 3: 3, 4: 3, 8: 3}),\n", " ('x', 'o', 'x', '.', 'o', '.', 'x', '.', 'o'): Counter({3: 3, 5: 3, 7: 3}),\n", " ('x',\n", " 'o',\n", " '.',\n", " '.',\n", " '.',\n", " 'o',\n", " 'x',\n", " '.',\n", " 'x'): Counter({2: 3, 3: 3, 4: 3, 7: 3}),\n", " ('o',\n", " 'o',\n", " '.',\n", " '.',\n", " 'x',\n", " '.',\n", " '.',\n", " 'x',\n", " '.'): Counter({2: 3, 3: 3, 5: 3, 6: 3, 8: 3}),\n", " ('x',\n", " 'o',\n", " '.',\n", " '.',\n", " 'o',\n", " '.',\n", " '.',\n", " 'x',\n", " '.'): Counter({2: 3, 3: 3, 5: 3, 6: 3, 8: 3}),\n", " ('x', 'x', '.', 'o', '.', 'o', '.', 'x', 'o'): Counter({2: 3, 4: 3, 6: 3}),\n", " ('x', 'x', 'o', 'x', 'o', '.', '.', 'x', 'o'): Counter({5: 3, 6: 3}),\n", " ('o',\n", " 'x',\n", " 'o',\n", " '.',\n", " 'x',\n", " '.',\n", " '.',\n", " '.',\n", " '.'): Counter({3: 3, 5: 3, 6: 3, 7: 3, 8: 3}),\n", " ('x', 'x', 'o', 'x', 'x', '.', '.', 'o', 'o'): Counter({5: 3, 6: 3}),\n", " ('x',\n", " 'o',\n", " '.',\n", " '.',\n", " 'x',\n", " 'x',\n", " '.',\n", " 'o',\n", " '.'): Counter({2: 3, 3: 3, 6: 3, 8: 3}),\n", " ('x', 'x', '.', '.', 'o', 'o', '.', 'o', 'x'): Counter({2: 3, 3: 3, 6: 3}),\n", " ('x', 'x', '.', '.', 'o', '.', 'x', 'o', 'o'): Counter({2: 3, 3: 3, 5: 3}),\n", " ('x',\n", " 'o',\n", " '.',\n", " '.',\n", " 'x',\n", " 'o',\n", " '.',\n", " '.',\n", " '.'): Counter({2: 3, 3: 3, 6: 3, 7: 3, 8: 3}),\n", " ('x',\n", " '.',\n", " '.',\n", " '.',\n", " 'x',\n", " 'o',\n", " '.',\n", " '.',\n", " '.'): Counter({1: 3, 2: 3, 3: 3, 6: 3, 7: 3, 8: 3}),\n", " ('x',\n", " '.',\n", " 'o',\n", " '.',\n", " '.',\n", " '.',\n", " 'o',\n", " '.',\n", " 'x'): Counter({1: 3, 3: 3, 4: 3, 5: 3, 7: 3}),\n", " ('x',\n", " 'x',\n", " '.',\n", " '.',\n", " 'o',\n", " 'o',\n", " '.',\n", " 'x',\n", " '.'): Counter({2: 3, 3: 3, 6: 3, 8: 3}),\n", " ('x', 'x', 'o', '.', 'o', 'x', '.', 'o', '.'): Counter({3: 3, 6: 3, 8: 3}),\n", " ('x', 'x', '.', 'o', 'x', '.', 'o', 'o', '.'): Counter({2: 3, 5: 3, 8: 3}),\n", " ('x',\n", " 'x',\n", " '.',\n", " '.',\n", " '.',\n", " '.',\n", " 'o',\n", " 'o',\n", " '.'): Counter({2: 3, 3: 3, 4: 3, 5: 3, 8: 3}),\n", " ('x',\n", " 'x',\n", " '.',\n", " '.',\n", " '.',\n", " '.',\n", " '.',\n", " '.',\n", " 'o'): Counter({2: 3, 3: 3, 4: 3, 5: 3, 6: 3, 7: 3}),\n", " ('x',\n", " '.',\n", " 'o',\n", " '.',\n", " '.',\n", " '.',\n", " '.',\n", " 'x',\n", " '.'): Counter({1: 3, 3: 3, 4: 3, 5: 3, 6: 3, 8: 3}),\n", " ('o',\n", " 'x',\n", " '.',\n", " '.',\n", " 'o',\n", " 'x',\n", " '.',\n", " 'x',\n", " '.'): Counter({2: 3, 3: 3, 6: 3, 8: 3}),\n", " ('x', 'x', '.', 'x', '.', 'o', '.', 'o', 'o'): Counter({2: 3, 4: 3, 6: 3}),\n", " ('.',\n", " '.',\n", " '.',\n", " '.',\n", " '.',\n", " '.',\n", " '.',\n", " '.',\n", " '.'): Counter({0: 3, 1: 3, 2: 3, 3: 3, 4: 3, 5: 3, 6: 3, 7: 3, 8: 3}),\n", " ('x', 'x', '.', 'o', 'x', 'x', '.', 'o', 'o'): Counter({2: 3, 6: 3}),\n", " ('x',\n", " 'x',\n", " '.',\n", " 'o',\n", " '.',\n", " 'x',\n", " '.',\n", " '.',\n", " 'o'): Counter({2: 3, 4: 3, 6: 3, 7: 3}),\n", " ('o', 'x', 'o', 'x', 'x', '.', '.', 'o', '.'): Counter({5: 3, 6: 3, 8: 3}),\n", " ('o',\n", " 'x',\n", " '.',\n", " '.',\n", " 'x',\n", " 'x',\n", " 'o',\n", " '.',\n", " '.'): Counter({2: 3, 3: 3, 7: 3, 8: 3}),\n", " ('x',\n", " 'x',\n", " 'o',\n", " '.',\n", " '.',\n", " 'o',\n", " '.',\n", " '.',\n", " '.'): Counter({3: 3, 4: 3, 6: 3, 7: 3, 8: 3}),\n", " ('x', 'o', 'x', 'o', 'o', '.', 'x', '.', 'x'): Counter({5: 3, 7: 3}),\n", " ('x', 'x', 'o', 'o', 'o', '.', 'x', '.', 'x'): Counter({5: 3, 7: 3}),\n", " ('x',\n", " '.',\n", " '.',\n", " '.',\n", " 'x',\n", " 'o',\n", " '.',\n", " '.',\n", " 'o'): Counter({1: 3, 2: 3, 3: 3, 6: 3, 7: 3}),\n", " ('o',\n", " 'x',\n", " '.',\n", " '.',\n", " 'x',\n", " 'x',\n", " '.',\n", " 'o',\n", " '.'): Counter({2: 3, 3: 3, 6: 3, 8: 3}),\n", " ('x',\n", " '.',\n", " '.',\n", " '.',\n", " 'o',\n", " '.',\n", " '.',\n", " '.',\n", " 'x'): Counter({1: 3, 2: 3, 3: 3, 5: 3, 6: 3, 7: 3}),\n", " ('x',\n", " 'x',\n", " '.',\n", " 'o',\n", " '.',\n", " '.',\n", " '.',\n", " 'o',\n", " 'x'): Counter({2: 3, 4: 3, 5: 3, 6: 3}),\n", " ('x',\n", " '.',\n", " 'x',\n", " '.',\n", " 'x',\n", " '.',\n", " 'o',\n", " 'o',\n", " '.'): Counter({1: 3, 3: 3, 5: 3, 8: 3}),\n", " ('x', 'o', '.', '.', 'x', 'x', '.', 'o', 'o'): Counter({2: 3, 3: 3, 6: 3}),\n", " ('x',\n", " 'x',\n", " '.',\n", " '.',\n", " '.',\n", " '.',\n", " '.',\n", " 'o',\n", " '.'): Counter({2: 3, 3: 3, 4: 3, 5: 3, 6: 3, 8: 3}),\n", " ('x',\n", " 'x',\n", " 'o',\n", " '.',\n", " '.',\n", " '.',\n", " 'o',\n", " '.',\n", " '.'): Counter({3: 3, 4: 3, 5: 3, 7: 3, 8: 3}),\n", " ('x', 'o', 'x', 'o', '.', 'o', 'x', 'o', 'x'): Counter({4: 3}),\n", " ('o',\n", " 'x',\n", " '.',\n", " '.',\n", " 'x',\n", " '.',\n", " '.',\n", " 'o',\n", " '.'): Counter({2: 3, 3: 3, 5: 3, 6: 3, 8: 3}),\n", " ('x', 'o', '.', 'o', 'o', 'x', '.', 'x', '.'): Counter({2: 3, 6: 3, 8: 3}),\n", " ('o',\n", " 'x',\n", " '.',\n", " '.',\n", " '.',\n", " '.',\n", " '.',\n", " '.',\n", " '.'): Counter({2: 3, 3: 3, 4: 3, 5: 3, 6: 3, 7: 3, 8: 3}),\n", " ('x',\n", " 'o',\n", " 'x',\n", " '.',\n", " 'o',\n", " '.',\n", " 'x',\n", " '.',\n", " '.'): Counter({3: 3, 5: 3, 7: 3, 8: 3}),\n", " ('x', 'o', '.', '.', 'o', 'x', '.', 'x', 'o'): Counter({2: 3, 3: 3, 6: 3}),\n", " ('x',\n", " 'x',\n", " '.',\n", " '.',\n", " '.',\n", " 'o',\n", " 'o',\n", " 'x',\n", " '.'): Counter({2: 3, 3: 3, 4: 3, 8: 3}),\n", " ('x',\n", " 'o',\n", " '.',\n", " 'o',\n", " '.',\n", " 'x',\n", " '.',\n", " 'x',\n", " '.'): Counter({2: 3, 4: 3, 6: 3, 8: 3}),\n", " ('x', 'x', '.', 'o', 'o', 'x', '.', '.', 'o'): Counter({2: 3, 6: 3, 7: 3}),\n", " ('x',\n", " 'x',\n", " '.',\n", " 'o',\n", " '.',\n", " '.',\n", " 'o',\n", " '.',\n", " 'x'): Counter({2: 3, 4: 3, 5: 3, 7: 3}),\n", " ('x',\n", " '.',\n", " 'o',\n", " '.',\n", " 'o',\n", " 'x',\n", " '.',\n", " '.',\n", " '.'): Counter({1: 3, 3: 3, 6: 3, 7: 3, 8: 3}),\n", " ('x', 'x', 'o', 'o', '.', 'x', '.', 'o', '.'): Counter({4: 3, 6: 3, 8: 3}),\n", " ('x', 'x', 'o', 'o', '.', '.', 'o', 'x', '.'): Counter({4: 3, 5: 3, 8: 3}),\n", " ('x',\n", " '.',\n", " '.',\n", " '.',\n", " 'x',\n", " 'o',\n", " '.',\n", " 'o',\n", " '.'): Counter({1: 3, 2: 3, 3: 3, 6: 3, 8: 3}),\n", " ('x',\n", " 'x',\n", " '.',\n", " 'o',\n", " '.',\n", " '.',\n", " '.',\n", " 'o',\n", " '.'): Counter({2: 3, 4: 3, 5: 3, 6: 3, 8: 3}),\n", " ('x',\n", " '.',\n", " 'o',\n", " '.',\n", " '.',\n", " '.',\n", " '.',\n", " 'x',\n", " 'o'): Counter({1: 3, 3: 3, 4: 3, 5: 3, 6: 3}),\n", " ('x', 'o', '.', '.', 'x', 'x', 'o', 'o', '.'): Counter({2: 3, 3: 3, 8: 3}),\n", " ('x', 'x', '.', 'o', '.', 'x', 'o', 'x', 'o'): Counter({2: 3, 4: 3}),\n", " ('x', '.', 'o', '.', 'x', 'x', '.', 'o', 'o'): Counter({1: 3, 3: 3, 6: 3}),\n", " ('x',\n", " 'x',\n", " '.',\n", " '.',\n", " '.',\n", " '.',\n", " '.',\n", " 'o',\n", " 'o'): Counter({2: 3, 3: 3, 4: 3, 5: 3, 6: 3}),\n", " ('x', 'x', '.', 'o', '.', '.', 'o', 'x', 'o'): Counter({2: 3, 4: 3, 5: 3}),\n", " ('x', 'x', '.', 'o', 'o', 'x', '.', 'o', '.'): Counter({2: 3, 6: 3, 8: 3}),\n", " ('o', 'x', 'o', 'x', '.', 'x', 'o', 'x', 'o'): Counter({4: 3}),\n", " ('x', 'o', 'x', 'o', 'x', '.', 'o', '.', '.'): Counter({5: 3, 7: 3, 8: 3}),\n", " ('x',\n", " 'x',\n", " 'o',\n", " 'x',\n", " '.',\n", " 'o',\n", " '.',\n", " '.',\n", " '.'): Counter({4: 3, 6: 3, 7: 3, 8: 3}),\n", " ('x',\n", " 'x',\n", " 'o',\n", " '.',\n", " 'o',\n", " '.',\n", " '.',\n", " '.',\n", " '.'): Counter({3: 3, 5: 3, 6: 3, 7: 3, 8: 3}),\n", " ('x', 'x', '.', '.', 'o', 'o', 'x', 'o', 'x'): Counter({2: 3, 3: 3}),\n", " ('x',\n", " 'x',\n", " '.',\n", " '.',\n", " 'o',\n", " '.',\n", " '.',\n", " '.',\n", " 'o'): Counter({2: 3, 3: 3, 5: 3, 6: 3, 7: 3}),\n", " ('x',\n", " 'x',\n", " '.',\n", " 'o',\n", " '.',\n", " '.',\n", " '.',\n", " 'x',\n", " 'o'): Counter({2: 3, 4: 3, 5: 3, 6: 3}),\n", " ('x', 'x', 'o', 'x', 'x', 'o', 'o', '.', '.'): Counter({7: 3, 8: 3}),\n", " ('o',\n", " 'x',\n", " 'o',\n", " 'x',\n", " '.',\n", " 'x',\n", " '.',\n", " '.',\n", " '.'): Counter({4: 3, 6: 3, 7: 3, 8: 3}),\n", " ('x', 'x', '.', 'o', '.', 'x', 'o', '.', 'o'): Counter({2: 3, 4: 3, 7: 3}),\n", " ('x',\n", " 'o',\n", " '.',\n", " '.',\n", " '.',\n", " 'x',\n", " 'o',\n", " '.',\n", " '.'): Counter({2: 3, 3: 3, 4: 3, 7: 3, 8: 3}),\n", " ('x', 'o', 'x', 'o', 'o', '.', 'x', '.', '.'): Counter({5: 3, 7: 3, 8: 3}),\n", " ('x',\n", " 'x',\n", " 'o',\n", " '.',\n", " '.',\n", " 'o',\n", " 'x',\n", " '.',\n", " '.'): Counter({3: 3, 4: 3, 7: 3, 8: 3}),\n", " ('x', 'x', '.', '.', 'o', '.', 'o', 'o', 'x'): Counter({2: 3, 3: 3, 5: 3}),\n", " ('x',\n", " 'x',\n", " '.',\n", " '.',\n", " '.',\n", " 'o',\n", " '.',\n", " 'x',\n", " 'o'): Counter({2: 3, 3: 3, 4: 3, 6: 3}),\n", " ('x', 'o', 'o', '.', 'x', '.', 'o', 'x', '.'): Counter({3: 3, 5: 3, 8: 3}),\n", " ('o',\n", " '.',\n", " '.',\n", " '.',\n", " '.',\n", " 'x',\n", " '.',\n", " 'x',\n", " '.'): Counter({1: 3, 2: 3, 3: 3, 4: 3, 6: 3, 8: 3}),\n", " ('x', 'x', 'o', '.', 'o', '.', 'x', 'o', 'x'): Counter({3: 3, 5: 3}),\n", " ('x', 'x', '.', 'o', 'x', 'o', 'x', '.', 'o'): Counter({2: 3, 7: 3}),\n", " ('x',\n", " 'x',\n", " '.',\n", " 'o',\n", " 'o',\n", " 'x',\n", " '.',\n", " '.',\n", " '.'): Counter({2: 3, 6: 3, 7: 3, 8: 3}),\n", " ('x',\n", " 'o',\n", " '.',\n", " '.',\n", " 'x',\n", " '.',\n", " '.',\n", " 'x',\n", " 'o'): Counter({2: 3, 3: 3, 5: 3, 6: 3}),\n", " ('x',\n", " 'o',\n", " 'x',\n", " '.',\n", " '.',\n", " '.',\n", " 'x',\n", " '.',\n", " 'o'): Counter({3: 3, 4: 3, 5: 3, 7: 3}),\n", " ('x', 'x', 'o', 'o', 'o', 'x', '.', '.', '.'): Counter({6: 3, 7: 3, 8: 3}),\n", " ('x',\n", " 'o',\n", " '.',\n", " '.',\n", " 'o',\n", " '.',\n", " '.',\n", " '.',\n", " 'x'): Counter({2: 3, 3: 3, 5: 3, 6: 3, 7: 3}),\n", " ('x',\n", " 'x',\n", " '.',\n", " '.',\n", " 'o',\n", " 'o',\n", " 'x',\n", " '.',\n", " '.'): Counter({2: 3, 3: 3, 7: 3, 8: 3}),\n", " ('x', 'x', 'o', 'x', 'x', '.', 'o', '.', 'o'): Counter({5: 3, 7: 3}),\n", " ('x', 'x', 'o', 'o', '.', 'x', '.', '.', 'o'): Counter({4: 3, 6: 3, 7: 3}),\n", " ('x',\n", " 'o',\n", " 'o',\n", " '.',\n", " '.',\n", " 'x',\n", " '.',\n", " 'x',\n", " '.'): Counter({3: 3, 4: 3, 6: 3, 8: 3}),\n", " ('x', 'x', 'o', '.', 'o', 'o', '.', 'x', '.'): Counter({3: 3, 6: 3, 8: 3}),\n", " ('o',\n", " 'x',\n", " '.',\n", " '.',\n", " '.',\n", " '.',\n", " 'o',\n", " 'x',\n", " '.'): Counter({2: 3, 3: 3, 4: 3, 5: 3, 8: 3}),\n", " ('o',\n", " 'x',\n", " '.',\n", " '.',\n", " '.',\n", " 'x',\n", " '.',\n", " '.',\n", " '.'): Counter({2: 3, 3: 3, 4: 3, 6: 3, 7: 3, 8: 3}),\n", " ('x', 'o', 'x', 'o', 'x', 'o', '.', '.', '.'): Counter({6: 3, 7: 3, 8: 3}),\n", " ('x', 'o', 'x', 'o', 'x', '.', 'o', 'x', '.'): Counter({5: 3, 8: 3}),\n", " ('x',\n", " 'x',\n", " '.',\n", " '.',\n", " 'o',\n", " '.',\n", " 'o',\n", " '.',\n", " 'x'): Counter({2: 3, 3: 3, 5: 3, 7: 3}),\n", " ('o', 'x', '.', 'x', 'x', 'o', '.', '.', 'o'): Counter({2: 3, 6: 3, 7: 3}),\n", " ('x',\n", " 'x',\n", " '.',\n", " '.',\n", " '.',\n", " '.',\n", " 'o',\n", " '.',\n", " 'o'): Counter({2: 3, 3: 3, 4: 3, 5: 3, 7: 3}),\n", " ('x', 'x', 'o', 'x', '.', 'o', 'o', '.', 'x'): Counter({4: 3, 7: 3}),\n", " ('x',\n", " 'o',\n", " '.',\n", " '.',\n", " 'x',\n", " '.',\n", " '.',\n", " '.',\n", " '.'): Counter({2: 3, 3: 3, 5: 3, 6: 3, 7: 3, 8: 3}),\n", " ('x', 'o', 'o', '.', 'x', 'x', 'o', 'x', 'o'): Counter({3: 3}),\n", " ('x', 'x', 'o', 'x', 'o', 'o', '.', 'x', '.'): Counter({6: 3, 8: 3}),\n", " ('x',\n", " 'o',\n", " '.',\n", " '.',\n", " '.',\n", " 'x',\n", " '.',\n", " '.',\n", " 'o'): Counter({2: 3, 3: 3, 4: 3, 6: 3, 7: 3}),\n", " ('x', 'x', '.', 'o', 'o', 'x', '.', 'o', 'x'): Counter({2: 3, 6: 3}),\n", " ('x', 'x', 'o', 'o', 'x', '.', '.', 'o', '.'): Counter({5: 3, 6: 3, 8: 3}),\n", " ('o', 'o', '.', 'o', 'x', 'x', '.', 'x', '.'): Counter({2: 3, 6: 3, 8: 3}),\n", " ('x', 'x', 'o', 'o', '.', 'o', 'x', 'x', '.'): Counter({4: 3, 8: 3}),\n", " ('x',\n", " '.',\n", " '.',\n", " '.',\n", " 'x',\n", " 'x',\n", " '.',\n", " 'o',\n", " 'o'): Counter({1: 3, 2: 3, 3: 3, 6: 3}),\n", " ('x', 'x', 'o', 'x', 'o', '.', '.', 'o', '.'): Counter({5: 3, 6: 3, 8: 3}),\n", " ('x',\n", " '.',\n", " 'o',\n", " '.',\n", " 'x',\n", " '.',\n", " '.',\n", " '.',\n", " '.'): Counter({1: 3, 3: 3, 5: 3, 6: 3, 7: 3, 8: 3}),\n", " ('x',\n", " 'o',\n", " 'x',\n", " 'o',\n", " '.',\n", " '.',\n", " '.',\n", " '.',\n", " 'x'): Counter({4: 3, 5: 3, 6: 3, 7: 3}),\n", " ('x', 'x', 'o', 'x', 'o', 'o', '.', 'o', 'x'): Counter({6: 3}),\n", " ('x',\n", " 'x',\n", " 'o',\n", " '.',\n", " 'o',\n", " '.',\n", " '.',\n", " '.',\n", " 'x'): Counter({3: 3, 5: 3, 6: 3, 7: 3}),\n", " ('x',\n", " 'o',\n", " '.',\n", " '.',\n", " '.',\n", " 'x',\n", " 'o',\n", " 'x',\n", " '.'): Counter({2: 3, 3: 3, 4: 3, 8: 3}),\n", " ('x', 'x', 'o', 'o', 'x', '.', 'x', 'o', '.'): Counter({5: 3, 8: 3}),\n", " ('x', 'o', 'o', '.', '.', 'x', 'x', '.', 'o'): Counter({3: 3, 4: 3, 7: 3}),\n", " ('o',\n", " 'x',\n", " '.',\n", " 'x',\n", " 'o',\n", " 'x',\n", " '.',\n", " '.',\n", " '.'): Counter({2: 3, 6: 3, 7: 3, 8: 3}),\n", " ('x', 'o', '.', '.', 'x', 'o', 'x', '.', 'o'): Counter({2: 3, 3: 3, 7: 3}),\n", " ('x', 'o', 'x', 'o', '.', 'o', 'x', '.', 'x'): Counter({4: 3, 7: 3}),\n", " ('x',\n", " 'x',\n", " 'o',\n", " '.',\n", " 'x',\n", " '.',\n", " '.',\n", " 'o',\n", " '.'): Counter({3: 3, 5: 3, 6: 3, 8: 3}),\n", " ('x', 'o', 'o', '.', 'x', '.', 'x', '.', 'o'): Counter({3: 3, 5: 3, 7: 3}),\n", " ('o',\n", " 'x',\n", " '.',\n", " 'x',\n", " '.',\n", " 'x',\n", " '.',\n", " 'o',\n", " '.'): Counter({2: 3, 4: 3, 6: 3, 8: 3}),\n", " ('x',\n", " 'o',\n", " '.',\n", " '.',\n", " 'x',\n", " '.',\n", " 'o',\n", " 'x',\n", " '.'): Counter({2: 3, 3: 3, 5: 3, 8: 3}),\n", " ('x',\n", " 'o',\n", " '.',\n", " '.',\n", " '.',\n", " '.',\n", " 'o',\n", " '.',\n", " 'x'): Counter({2: 3, 3: 3, 4: 3, 5: 3, 7: 3}),\n", " ('x', 'x', '.', '.', 'o', 'o', 'x', 'o', '.'): Counter({2: 3, 3: 3, 8: 3}),\n", " ('x',\n", " 'x',\n", " '.',\n", " 'o',\n", " '.',\n", " 'x',\n", " 'o',\n", " '.',\n", " '.'): Counter({2: 3, 4: 3, 7: 3, 8: 3}),\n", " ('x', 'x', 'o', 'o', 'x', 'o', 'x', '.', '.'): Counter({7: 3, 8: 3}),\n", " ('x', 'x', 'o', 'x', '.', 'x', 'o', 'o', '.'): Counter({4: 3, 8: 3}),\n", " ('x', 'x', 'o', 'o', '.', '.', '.', 'o', 'x'): Counter({4: 3, 5: 3, 6: 3}),\n", " ('o', 'x', 'o', 'x', '.', 'x', 'o', 'x', '.'): Counter({4: 3, 8: 3}),\n", " ('x', 'x', '.', 'o', 'o', '.', '.', 'o', 'x'): Counter({2: 3, 5: 3, 6: 3}),\n", " ('x', 'x', 'o', 'o', '.', '.', 'x', 'o', 'x'): Counter({4: 3, 5: 3}),\n", " ('o',\n", " 'x',\n", " '.',\n", " '.',\n", " '.',\n", " '.',\n", " '.',\n", " 'x',\n", " '.'): Counter({2: 3, 3: 3, 4: 3, 5: 3, 6: 3, 8: 3}),\n", " ('x',\n", " 'x',\n", " '.',\n", " '.',\n", " 'x',\n", " 'o',\n", " '.',\n", " '.',\n", " 'o'): Counter({2: 3, 3: 3, 6: 3, 7: 3}),\n", " ('o', 'x', '.', 'o', 'x', 'x', '.', '.', 'o'): Counter({2: 3, 6: 3, 7: 3}),\n", " ('x', 'x', 'o', '.', 'x', 'o', 'o', '.', '.'): Counter({3: 3, 7: 3, 8: 3}),\n", " ('x', 'x', '.', 'o', '.', 'o', '.', 'o', 'x'): Counter({2: 3, 4: 3, 6: 3}),\n", " ('x',\n", " 'o',\n", " '.',\n", " '.',\n", " '.',\n", " '.',\n", " '.',\n", " '.',\n", " 'x'): Counter({2: 3, 3: 3, 4: 3, 5: 3, 6: 3, 7: 3}),\n", " ('x',\n", " 'o',\n", " '.',\n", " 'o',\n", " '.',\n", " 'x',\n", " '.',\n", " '.',\n", " '.'): Counter({2: 3, 4: 3, 6: 3, 7: 3, 8: 3}),\n", " ('x', 'x', 'o', 'x', 'o', 'o', '.', '.', 'x'): Counter({6: 3, 7: 3}),\n", " ('x',\n", " 'x',\n", " 'o',\n", " '.',\n", " '.',\n", " 'o',\n", " '.',\n", " '.',\n", " 'x'): Counter({3: 3, 4: 3, 6: 3, 7: 3}),\n", " ('o',\n", " 'x',\n", " '.',\n", " 'x',\n", " '.',\n", " 'x',\n", " '.',\n", " '.',\n", " 'o'): Counter({2: 3, 4: 3, 6: 3, 7: 3}),\n", " ('.',\n", " 'x',\n", " '.',\n", " 'x',\n", " 'o',\n", " '.',\n", " '.',\n", " '.',\n", " '.'): Counter({0: 3, 2: 3, 5: 3, 6: 3, 7: 3, 8: 3}),\n", " ('o', 'x', '.', '.', 'x', 'x', 'o', 'o', '.'): Counter({2: 3, 3: 3, 8: 3}),\n", " ('x', 'x', 'o', 'x', 'o', '.', '.', 'o', 'x'): Counter({5: 3, 6: 3}),\n", " ('x', 'x', 'o', 'o', 'x', 'x', 'o', '.', '.'): Counter({7: 3, 8: 3}),\n", " ('x',\n", " '.',\n", " 'o',\n", " '.',\n", " '.',\n", " 'x',\n", " '.',\n", " '.',\n", " 'o'): Counter({1: 3, 3: 3, 4: 3, 6: 3, 7: 3}),\n", " ('x', 'o', '.', 'o', 'x', 'x', '.', 'x', 'o'): Counter({2: 3, 6: 3}),\n", " ('x',\n", " 'x',\n", " 'o',\n", " 'o',\n", " '.',\n", " '.',\n", " '.',\n", " 'x',\n", " '.'): Counter({4: 3, 5: 3, 6: 3, 8: 3}),\n", " ('x',\n", " 'x',\n", " 'o',\n", " '.',\n", " 'x',\n", " 'o',\n", " '.',\n", " '.',\n", " '.'): Counter({3: 3, 6: 3, 7: 3, 8: 3}),\n", " ('x', 'o', 'x', 'o', '.', 'o', '.', 'x', '.'): Counter({4: 3, 6: 3, 8: 3}),\n", " ('x', 'o', 'o', '.', 'x', '.', '.', 'x', 'o'): Counter({3: 3, 5: 3, 6: 3}),\n", " ('x',\n", " 'x',\n", " '.',\n", " '.',\n", " 'o',\n", " '.',\n", " '.',\n", " 'x',\n", " 'o'): Counter({2: 3, 3: 3, 5: 3, 6: 3}),\n", " ('x', 'o', 'x', '.', 'o', '.', 'o', 'x', '.'): Counter({3: 3, 5: 3, 8: 3}),\n", " ('x',\n", " '.',\n", " 'o',\n", " '.',\n", " '.',\n", " 'x',\n", " 'o',\n", " '.',\n", " '.'): Counter({1: 3, 3: 3, 4: 3, 7: 3, 8: 3}),\n", " ('x', 'x', '.', 'o', 'o', '.', 'x', 'o', '.'): Counter({2: 3, 5: 3, 8: 3}),\n", " ('x', 'x', 'o', '.', 'x', 'o', 'x', 'o', '.'): Counter({3: 3, 8: 3}),\n", " ('x', 'x', '.', 'o', 'x', '.', '.', 'o', 'o'): Counter({2: 3, 5: 3, 6: 3}),\n", " ('o', 'x', 'o', 'x', 'x', '.', '.', '.', 'o'): Counter({5: 3, 6: 3, 7: 3}),\n", " ('x',\n", " 'x',\n", " '.',\n", " 'o',\n", " '.',\n", " 'o',\n", " '.',\n", " '.',\n", " '.'): Counter({2: 3, 4: 3, 6: 3, 7: 3, 8: 3}),\n", " ('x',\n", " 'o',\n", " '.',\n", " '.',\n", " 'x',\n", " 'x',\n", " 'o',\n", " '.',\n", " '.'): Counter({2: 3, 3: 3, 7: 3, 8: 3}),\n", " ('x', 'x', 'o', '.', 'x', 'x', 'o', 'o', '.'): Counter({3: 3, 8: 3}),\n", " ('o',\n", " 'x',\n", " '.',\n", " 'x',\n", " '.',\n", " 'o',\n", " '.',\n", " '.',\n", " '.'): Counter({2: 3, 4: 3, 6: 3, 7: 3, 8: 3}),\n", " ('x', 'x', '.', 'o', 'o', '.', 'o', '.', 'x'): Counter({2: 3, 5: 3, 7: 3}),\n", " ('x', 'o', 'x', '.', '.', '.', 'x', 'o', 'o'): Counter({3: 3, 4: 3, 5: 3}),\n", " ('x',\n", " 'x',\n", " '.',\n", " 'o',\n", " '.',\n", " '.',\n", " '.',\n", " '.',\n", " 'o'): Counter({2: 3, 4: 3, 5: 3, 6: 3, 7: 3}),\n", " ('x', 'x', 'o', '.', '.', 'x', 'o', 'o', '.'): Counter({3: 3, 4: 3, 8: 3}),\n", " ('x',\n", " 'x',\n", " '.',\n", " '.',\n", " 'x',\n", " 'o',\n", " 'o',\n", " '.',\n", " '.'): Counter({2: 3, 3: 3, 7: 3, 8: 3}),\n", " ('x', 'x', '.', '.', 'o', 'x', '.', 'o', 'o'): Counter({2: 3, 3: 3, 6: 3}),\n", " ('x', 'x', 'o', 'o', '.', 'x', 'o', 'x', '.'): Counter({4: 3, 8: 3}),\n", " ('x', 'x', 'o', '.', 'x', '.', 'o', 'o', '.'): Counter({3: 3, 5: 3, 8: 3}),\n", " ('o',\n", " 'x',\n", " '.',\n", " '.',\n", " 'o',\n", " '.',\n", " '.',\n", " 'x',\n", " '.'): Counter({2: 3, 3: 3, 5: 3, 6: 3, 8: 3}),\n", " ('x', 'x', '.', 'o', 'o', '.', 'o', 'x', '.'): Counter({2: 3, 5: 3, 8: 3}),\n", " ('x',\n", " 'x',\n", " '.',\n", " 'o',\n", " '.',\n", " '.',\n", " 'x',\n", " '.',\n", " 'o'): Counter({2: 3, 4: 3, 5: 3, 7: 3}),\n", " ('x',\n", " 'o',\n", " 'o',\n", " '.',\n", " '.',\n", " 'x',\n", " '.',\n", " '.',\n", " '.'): Counter({3: 3, 4: 3, 6: 3, 7: 3, 8: 3}),\n", " ('x',\n", " 'x',\n", " 'o',\n", " '.',\n", " '.',\n", " '.',\n", " '.',\n", " '.',\n", " '.'): Counter({3: 3, 4: 3, 5: 3, 6: 3, 7: 3, 8: 3}),\n", " ('x', 'x', '.', 'o', 'o', 'x', 'o', 'o', 'x'): Counter({2: 3}),\n", " ('x', 'x', 'o', 'o', '.', '.', '.', 'x', 'o'): Counter({4: 3, 5: 3, 6: 3}),\n", " ('x', 'o', 'o', '.', 'x', 'x', 'x', 'o', 'o'): Counter({3: 3}),\n", " ('x', 'x', 'o', 'o', 'o', '.', 'x', 'o', 'x'): Counter({5: 3}),\n", " ('x',\n", " '.',\n", " 'x',\n", " '.',\n", " '.',\n", " '.',\n", " '.',\n", " 'o',\n", " '.'): Counter({1: 3, 3: 3, 4: 3, 5: 3, 6: 3, 8: 3}),\n", " ('x',\n", " '.',\n", " '.',\n", " '.',\n", " 'o',\n", " 'x',\n", " '.',\n", " '.',\n", " '.'): Counter({1: 3, 2: 3, 3: 3, 6: 3, 7: 3, 8: 3}),\n", " ('x',\n", " 'x',\n", " '.',\n", " 'o',\n", " '.',\n", " 'x',\n", " '.',\n", " 'o',\n", " '.'): Counter({2: 3, 4: 3, 6: 3, 8: 3}),\n", " ('x', 'o', '.', '.', 'x', 'x', 'o', '.', 'o'): Counter({2: 3, 3: 3, 7: 3}),\n", " ('x', '.', 'o', '.', 'x', 'x', 'o', '.', 'o'): Counter({1: 3, 3: 3, 7: 3}),\n", " ('o',\n", " 'x',\n", " '.',\n", " 'o',\n", " '.',\n", " 'x',\n", " '.',\n", " 'x',\n", " '.'): Counter({2: 3, 4: 3, 6: 3, 8: 3}),\n", " ('o',\n", " 'x',\n", " 'o',\n", " 'x',\n", " '.',\n", " '.',\n", " '.',\n", " 'x',\n", " '.'): Counter({4: 3, 5: 3, 6: 3, 8: 3}),\n", " ('o',\n", " 'x',\n", " '.',\n", " '.',\n", " '.',\n", " 'x',\n", " '.',\n", " '.',\n", " 'o'): Counter({2: 3, 3: 3, 4: 3, 6: 3, 7: 3}),\n", " ('x', 'x', 'o', 'o', 'o', '.', '.', 'x', 'x'): Counter({5: 3, 6: 3}),\n", " ('x',\n", " '.',\n", " '.',\n", " '.',\n", " 'x',\n", " '.',\n", " '.',\n", " '.',\n", " 'o'): Counter({1: 3, 2: 3, 3: 3, 5: 3, 6: 3, 7: 3}),\n", " ('x',\n", " 'x',\n", " '.',\n", " '.',\n", " 'o',\n", " 'x',\n", " '.',\n", " 'o',\n", " '.'): Counter({2: 3, 3: 3, 6: 3, 8: 3}),\n", " ('x',\n", " 'o',\n", " '.',\n", " '.',\n", " 'o',\n", " '.',\n", " 'x',\n", " '.',\n", " 'x'): Counter({2: 3, 3: 3, 5: 3, 7: 3}),\n", " ('o', 'x', '.', 'x', 'x', 'o', '.', 'o', '.'): Counter({2: 3, 6: 3, 8: 3}),\n", " ('x',\n", " 'x',\n", " '.',\n", " 'x',\n", " '.',\n", " 'o',\n", " '.',\n", " 'o',\n", " '.'): Counter({2: 3, 4: 3, 6: 3, 8: 3}),\n", " ('x',\n", " '.',\n", " 'x',\n", " '.',\n", " '.',\n", " '.',\n", " 'o',\n", " 'o',\n", " '.'): Counter({1: 3, 3: 3, 4: 3, 5: 3, 8: 3}),\n", " ('x', 'x', 'o', 'o', '.', 'o', 'o', 'x', 'x'): Counter({4: 3}),\n", " ('x', 'x', 'o', 'x', 'o', '.', '.', '.', 'o'): Counter({5: 3, 6: 3, 7: 3}),\n", " ('x', 'x', 'o', 'x', 'o', 'x', '.', 'o', '.'): Counter({6: 3, 8: 3}),\n", " ('o',\n", " 'x',\n", " '.',\n", " 'o',\n", " '.',\n", " 'x',\n", " '.',\n", " '.',\n", " '.'): Counter({2: 3, 4: 3, 6: 3, 7: 3, 8: 3}),\n", " ('x', 'x', 'o', '.', 'o', 'o', 'x', 'x', '.'): Counter({3: 3, 8: 3}),\n", " ('x', 'x', 'o', 'x', 'o', 'x', '.', 'o', 'o'): Counter({6: 3}),\n", " ('x', 'x', '.', 'o', '.', 'o', 'x', 'o', '.'): Counter({2: 3, 4: 3, 8: 3}),\n", " ('x', 'x', '.', '.', 'o', 'o', 'o', 'x', '.'): Counter({2: 3, 3: 3, 8: 3}),\n", " ('x',\n", " 'x',\n", " 'o',\n", " '.',\n", " '.',\n", " 'x',\n", " '.',\n", " 'o',\n", " '.'): Counter({3: 3, 4: 3, 6: 3, 8: 3}),\n", " ('x',\n", " 'o',\n", " 'x',\n", " '.',\n", " 'o',\n", " '.',\n", " '.',\n", " '.',\n", " '.'): Counter({3: 3, 5: 3, 6: 3, 7: 3, 8: 3}),\n", " ('x', 'x', 'o', 'o', 'o', 'x', '.', '.', 'x'): Counter({6: 3, 7: 3}),\n", " ('x',\n", " 'o',\n", " 'o',\n", " '.',\n", " 'x',\n", " '.',\n", " 'x',\n", " '.',\n", " '.'): Counter({3: 3, 5: 3, 7: 3, 8: 3}),\n", " ('x', 'x', '.', 'o', 'o', '.', 'x', 'o', 'x'): Counter({2: 3, 5: 3}),\n", " ('x', 'x', 'o', 'o', '.', 'x', 'o', '.', '.'): Counter({4: 3, 7: 3, 8: 3}),\n", " ('x',\n", " 'o',\n", " 'o',\n", " '.',\n", " '.',\n", " '.',\n", " 'x',\n", " '.',\n", " 'x'): Counter({3: 3, 4: 3, 5: 3, 7: 3}),\n", " ('x',\n", " 'x',\n", " '.',\n", " 'o',\n", " '.',\n", " 'o',\n", " '.',\n", " 'x',\n", " '.'): Counter({2: 3, 4: 3, 6: 3, 8: 3}),\n", " ('x', '.', 'o', '.', '.', 'x', 'o', 'x', 'o'): Counter({1: 3, 3: 3, 4: 3}),\n", " ('x',\n", " 'x',\n", " '.',\n", " 'x',\n", " '.',\n", " 'o',\n", " '.',\n", " '.',\n", " 'o'): Counter({2: 3, 4: 3, 6: 3, 7: 3}),\n", " ('x', 'x', 'o', 'o', '.', '.', 'o', 'x', 'x'): Counter({4: 3, 5: 3}),\n", " ('x', 'x', 'o', '.', '.', 'x', '.', 'o', 'o'): Counter({3: 3, 4: 3, 6: 3}),\n", " ('x', 'x', 'o', 'o', 'o', 'x', 'x', 'x', 'o'): Counter(),\n", " ('x', 'x', '.', '.', 'x', 'o', 'o', 'o', '.'): Counter({2: 3, 3: 3, 8: 3}),\n", " ('x', 'x', '.', 'o', 'x', 'o', 'o', '.', '.'): Counter({2: 3, 7: 3, 8: 3}),\n", " ('o',\n", " '.',\n", " '.',\n", " '.',\n", " 'x',\n", " 'x',\n", " '.',\n", " '.',\n", " '.'): Counter({1: 3, 2: 3, 3: 3, 6: 3, 7: 3, 8: 3}),\n", " ('o',\n", " 'x',\n", " 'o',\n", " 'x',\n", " '.',\n", " '.',\n", " '.',\n", " '.',\n", " '.'): Counter({4: 3, 5: 3, 6: 3, 7: 3, 8: 3}),\n", " ('x',\n", " 'o',\n", " 'x',\n", " '.',\n", " '.',\n", " '.',\n", " 'x',\n", " 'o',\n", " '.'): Counter({3: 3, 4: 3, 5: 3, 8: 3}),\n", " ('o',\n", " 'x',\n", " '.',\n", " 'x',\n", " '.',\n", " '.',\n", " '.',\n", " '.',\n", " 'o'): Counter({2: 3, 4: 3, 5: 3, 6: 3, 7: 3}),\n", " ('x', 'x', 'o', '.', '.', 'o', 'o', 'x', '.'): Counter({3: 3, 4: 3, 8: 3}),\n", " ('.',\n", " 'x',\n", " '.',\n", " 'o',\n", " 'o',\n", " '.',\n", " '.',\n", " 'x',\n", " '.'): Counter({0: 3, 2: 3, 5: 3, 6: 3, 8: 3}),\n", " ('x',\n", " 'x',\n", " '.',\n", " '.',\n", " '.',\n", " 'o',\n", " 'o',\n", " '.',\n", " 'x'): Counter({2: 3, 3: 3, 4: 3, 7: 3}),\n", " ('x', 'o', 'o', '.', 'x', 'o', 'x', '.', '.'): Counter({3: 3, 7: 3, 8: 3}),\n", " ('x',\n", " 'x',\n", " '.',\n", " '.',\n", " '.',\n", " 'o',\n", " '.',\n", " '.',\n", " 'o'): Counter({2: 3, 3: 3, 4: 3, 6: 3, 7: 3}),\n", " ('o',\n", " 'x',\n", " '.',\n", " '.',\n", " 'x',\n", " '.',\n", " 'o',\n", " '.',\n", " '.'): Counter({2: 3, 3: 3, 5: 3, 7: 3, 8: 3}),\n", " ('x',\n", " 'o',\n", " 'o',\n", " '.',\n", " '.',\n", " '.',\n", " 'x',\n", " '.',\n", " '.'): Counter({3: 3, 4: 3, 5: 3, 7: 3, 8: 3}),\n", " ('x',\n", " 'x',\n", " '.',\n", " '.',\n", " '.',\n", " '.',\n", " 'x',\n", " 'o',\n", " 'o'): Counter({2: 3, 3: 3, 4: 3, 5: 3}),\n", " ('x', 'x', 'o', '.', 'o', '.', 'x', 'x', 'o'): Counter({3: 3, 5: 3}),\n", " ('x', 'x', 'o', '.', '.', 'x', 'x', 'o', 'o'): Counter({3: 3, 4: 3}),\n", " ('x', 'x', 'o', '.', 'x', '.', 'o', '.', 'o'): Counter({3: 3, 5: 3, 7: 3}),\n", " ('o',\n", " 'o',\n", " '.',\n", " '.',\n", " 'x',\n", " 'x',\n", " '.',\n", " 'x',\n", " '.'): Counter({2: 3, 3: 3, 6: 3, 8: 3}),\n", " ('x', 'x', '.', 'o', 'o', 'x', 'x', 'o', '.'): Counter({2: 3, 8: 3}),\n", " ('x', 'x', 'o', 'o', '.', '.', 'x', 'x', 'o'): Counter({4: 3, 5: 3}),\n", " ('x', 'o', 'o', '.', 'x', 'x', 'o', '.', '.'): Counter({3: 3, 7: 3, 8: 3}),\n", " ('x', 'x', 'o', 'x', '.', 'o', '.', 'o', '.'): Counter({4: 3, 6: 3, 8: 3}),\n", " ('.',\n", " 'x',\n", " '.',\n", " '.',\n", " 'o',\n", " '.',\n", " '.',\n", " '.',\n", " '.'): Counter({0: 3, 2: 3, 3: 3, 5: 3, 6: 3, 7: 3, 8: 3}),\n", " ('x',\n", " 'o',\n", " '.',\n", " '.',\n", " 'x',\n", " 'o',\n", " 'x',\n", " '.',\n", " '.'): Counter({2: 3, 3: 3, 7: 3, 8: 3}),\n", " ('x', 'x', 'o', 'o', 'x', 'x', '.', 'o', 'o'): Counter({6: 3}),\n", " ('x',\n", " 'x',\n", " '.',\n", " '.',\n", " '.',\n", " 'o',\n", " 'o',\n", " '.',\n", " '.'): Counter({2: 3, 3: 3, 4: 3, 7: 3, 8: 3}),\n", " ('x',\n", " 'o',\n", " '.',\n", " '.',\n", " '.',\n", " '.',\n", " 'x',\n", " '.',\n", " '.'): Counter({2: 3, 3: 3, 4: 3, 5: 3, 7: 3, 8: 3}),\n", " ('x', 'o', '.', 'o', 'x', 'x', '.', 'o', '.'): Counter({2: 3, 6: 3, 8: 3}),\n", " ('x', 'x', 'o', '.', '.', 'x', 'o', 'x', 'o'): Counter({3: 3, 4: 3}),\n", " ('x', 'x', 'o', 'x', '.', 'o', 'o', 'o', 'x'): Counter({4: 3}),\n", " ('x',\n", " 'o',\n", " 'x',\n", " '.',\n", " '.',\n", " '.',\n", " 'o',\n", " 'x',\n", " '.'): Counter({3: 3, 4: 3, 5: 3, 8: 3}),\n", " ('x', 'x', '.', 'x', 'o', 'o', '.', 'o', '.'): Counter({2: 3, 6: 3, 8: 3}),\n", " ('x', 'x', '.', '.', '.', 'o', 'o', 'o', 'x'): Counter({2: 3, 3: 3, 4: 3}),\n", " ('x', 'x', 'o', 'o', 'x', 'o', 'x', 'o', '.'): Counter({8: 3}),\n", " ('x', 'o', 'x', 'o', 'o', '.', '.', '.', 'x'): Counter({5: 3, 6: 3, 7: 3}),\n", " ('x', 'x', '.', '.', 'o', 'x', 'x', 'o', 'o'): Counter({2: 3, 3: 3}),\n", " ('x',\n", " 'o',\n", " 'o',\n", " '.',\n", " 'x',\n", " '.',\n", " '.',\n", " 'x',\n", " '.'): Counter({3: 3, 5: 3, 6: 3, 8: 3}),\n", " ('x',\n", " 'x',\n", " '.',\n", " '.',\n", " 'o',\n", " 'o',\n", " '.',\n", " '.',\n", " 'x'): Counter({2: 3, 3: 3, 6: 3, 7: 3}),\n", " ('x', 'o', 'o', 'o', 'x', '.', '.', 'x', '.'): Counter({5: 3, 6: 3, 8: 3}),\n", " ('x',\n", " 'x',\n", " 'o',\n", " '.',\n", " '.',\n", " '.',\n", " 'x',\n", " 'o',\n", " '.'): Counter({3: 3, 4: 3, 5: 3, 8: 3}),\n", " ('x',\n", " '.',\n", " 'o',\n", " '.',\n", " 'x',\n", " '.',\n", " 'o',\n", " '.',\n", " '.'): Counter({1: 3, 3: 3, 5: 3, 7: 3, 8: 3}),\n", " ('o',\n", " 'x',\n", " '.',\n", " '.',\n", " '.',\n", " 'x',\n", " '.',\n", " 'o',\n", " '.'): Counter({2: 3, 3: 3, 4: 3, 6: 3, 8: 3}),\n", " ('o',\n", " 'o',\n", " '.',\n", " '.',\n", " 'x',\n", " 'x',\n", " '.',\n", " '.',\n", " '.'): Counter({2: 3, 3: 3, 6: 3, 7: 3, 8: 3}),\n", " ('x',\n", " '.',\n", " 'x',\n", " '.',\n", " '.',\n", " '.',\n", " 'o',\n", " '.',\n", " '.'): Counter({1: 3, 3: 3, 4: 3, 5: 3, 7: 3, 8: 3}),\n", " ('.',\n", " 'x',\n", " '.',\n", " 'o',\n", " '.',\n", " '.',\n", " '.',\n", " '.',\n", " '.'): Counter({0: 3, 2: 3, 4: 3, 5: 3, 6: 3, 7: 3, 8: 3}),\n", " ('x',\n", " 'x',\n", " '.',\n", " '.',\n", " 'o',\n", " '.',\n", " 'o',\n", " 'x',\n", " '.'): Counter({2: 3, 3: 3, 5: 3, 8: 3}),\n", " ('x',\n", " 'o',\n", " '.',\n", " '.',\n", " 'x',\n", " '.',\n", " '.',\n", " '.',\n", " 'o'): Counter({2: 3, 3: 3, 5: 3, 6: 3, 7: 3}),\n", " ('o',\n", " '.',\n", " '.',\n", " '.',\n", " 'o',\n", " 'x',\n", " '.',\n", " 'x',\n", " '.'): Counter({1: 3, 2: 3, 3: 3, 6: 3, 8: 3}),\n", " ('o',\n", " 'o',\n", " '.',\n", " '.',\n", " '.',\n", " 'x',\n", " '.',\n", " 'x',\n", " '.'): Counter({2: 3, 3: 3, 4: 3, 6: 3, 8: 3}),\n", " ('x', 'o', '.', '.', 'x', 'x', 'o', 'x', 'o'): Counter({2: 3, 3: 3}),\n", " ('x',\n", " 'o',\n", " '.',\n", " 'o',\n", " 'x',\n", " '.',\n", " '.',\n", " '.',\n", " '.'): Counter({2: 3, 5: 3, 6: 3, 7: 3, 8: 3}),\n", " ('x', '.', 'o', '.', 'x', 'x', 'o', 'x', 'o'): Counter({1: 3, 3: 3}),\n", " ('x',\n", " 'x',\n", " '.',\n", " 'o',\n", " 'o',\n", " '.',\n", " 'x',\n", " '.',\n", " '.'): Counter({2: 3, 5: 3, 7: 3, 8: 3}),\n", " ('x',\n", " 'o',\n", " '.',\n", " '.',\n", " '.',\n", " 'x',\n", " 'x',\n", " '.',\n", " 'o'): Counter({2: 3, 3: 3, 4: 3, 7: 3}),\n", " ('x', 'x', 'o', '.', 'o', 'x', 'x', 'o', '.'): Counter({3: 3, 8: 3}),\n", " ('x', 'x', 'o', 'o', '.', '.', 'x', '.', 'o'): Counter({4: 3, 5: 3, 7: 3}),\n", " ('x', 'x', 'o', 'o', 'o', 'x', 'x', '.', '.'): Counter({7: 3, 8: 3}),\n", " ('x',\n", " '.',\n", " 'o',\n", " '.',\n", " 'x',\n", " '.',\n", " '.',\n", " '.',\n", " 'o'): Counter({1: 3, 3: 3, 5: 3, 6: 3, 7: 3}),\n", " ('x', 'x', '.', '.', 'x', 'o', 'x', 'o', 'o'): Counter({2: 3, 3: 3}),\n", " ('x',\n", " 'o',\n", " 'o',\n", " '.',\n", " '.',\n", " '.',\n", " '.',\n", " '.',\n", " 'x'): Counter({3: 3, 4: 3, 5: 3, 6: 3, 7: 3}),\n", " ('x', 'x', 'o', '.', 'x', 'x', '.', 'o', 'o'): Counter({3: 3, 6: 3}),\n", " ('x', 'o', 'x', '.', '.', '.', 'o', 'x', 'o'): Counter({3: 3, 4: 3, 5: 3}),\n", " ('x',\n", " '.',\n", " '.',\n", " '.',\n", " '.',\n", " 'x',\n", " '.',\n", " '.',\n", " 'o'): Counter({1: 3, 2: 3, 3: 3, 4: 3, 6: 3, 7: 3}),\n", " ('x', 'o', 'o', 'o', 'x', 'x', '.', 'x', 'o'): Counter({6: 3}),\n", " ('x', 'x', 'o', '.', 'o', 'x', 'x', 'o', 'o'): Counter({3: 3}),\n", " ('x',\n", " 'x',\n", " '.',\n", " 'o',\n", " 'o',\n", " '.',\n", " '.',\n", " '.',\n", " 'x'): Counter({2: 3, 5: 3, 6: 3, 7: 3}),\n", " ('x',\n", " '.',\n", " 'x',\n", " '.',\n", " 'o',\n", " '.',\n", " '.',\n", " 'o',\n", " '.'): Counter({1: 3, 3: 3, 5: 3, 6: 3, 8: 3}),\n", " ('x', 'o', 'o', '.', 'x', '.', 'x', 'o', '.'): Counter({3: 3, 5: 3, 8: 3}),\n", " ('x', 'x', 'o', '.', 'o', 'o', 'x', '.', 'x'): Counter({3: 3, 7: 3}),\n", " ('x', 'x', '.', 'o', '.', 'o', 'x', '.', 'o'): Counter({2: 3, 4: 3, 7: 3}),\n", " ('o', 'x', '.', '.', 'o', 'x', 'o', 'x', '.'): Counter({2: 3, 3: 3, 8: 3}),\n", " ('x',\n", " 'x',\n", " '.',\n", " '.',\n", " 'o',\n", " '.',\n", " 'x',\n", " '.',\n", " 'o'): Counter({2: 3, 3: 3, 5: 3, 7: 3}),\n", " ('o', 'x', 'o', 'x', '.', 'x', '.', 'o', '.'): Counter({4: 3, 6: 3, 8: 3}),\n", " ('x',\n", " 'o',\n", " 'x',\n", " '.',\n", " '.',\n", " '.',\n", " '.',\n", " '.',\n", " '.'): Counter({3: 3, 4: 3, 5: 3, 6: 3, 7: 3, 8: 3}),\n", " ('x',\n", " 'x',\n", " 'o',\n", " 'x',\n", " '.',\n", " '.',\n", " 'o',\n", " '.',\n", " '.'): Counter({4: 3, 5: 3, 7: 3, 8: 3}),\n", " ('o',\n", " 'x',\n", " '.',\n", " '.',\n", " '.',\n", " 'x',\n", " 'o',\n", " 'x',\n", " '.'): Counter({2: 3, 3: 3, 4: 3, 8: 3}),\n", " ('x', 'x', '.', 'o', 'o', 'x', 'o', '.', '.'): Counter({2: 3, 7: 3, 8: 3}),\n", " ('x', 'x', '.', 'o', 'x', '.', 'o', '.', 'o'): Counter({2: 3, 5: 3, 7: 3}),\n", " ('x',\n", " '.',\n", " 'x',\n", " '.',\n", " 'o',\n", " '.',\n", " '.',\n", " '.',\n", " '.'): Counter({1: 3, 3: 3, 5: 3, 6: 3, 7: 3, 8: 3}),\n", " ('o',\n", " 'x',\n", " 'o',\n", " 'x',\n", " 'x',\n", " '.',\n", " '.',\n", " '.',\n", " '.'): Counter({5: 3, 6: 3, 7: 3, 8: 3}),\n", " ('x',\n", " 'x',\n", " '.',\n", " 'x',\n", " 'o',\n", " 'o',\n", " '.',\n", " '.',\n", " '.'): Counter({2: 3, 6: 3, 7: 3, 8: 3}),\n", " ('x', 'x', 'o', 'o', 'o', '.', '.', 'x', '.'): Counter({5: 3, 6: 3, 8: 3}),\n", " ('x', 'x', '.', '.', '.', 'o', 'o', 'x', 'o'): Counter({2: 3, 3: 3, 4: 3}),\n", " ('x', 'x', 'o', '.', 'o', 'o', '.', '.', 'x'): Counter({3: 3, 6: 3, 7: 3}),\n", " ('x', 'x', 'o', 'x', '.', '.', '.', 'o', 'o'): Counter({4: 3, 5: 3, 6: 3}),\n", " ('o',\n", " 'x',\n", " '.',\n", " '.',\n", " '.',\n", " 'x',\n", " 'o',\n", " '.',\n", " '.'): Counter({2: 3, 3: 3, 4: 3, 7: 3, 8: 3}),\n", " ('x',\n", " '.',\n", " 'o',\n", " '.',\n", " '.',\n", " 'x',\n", " '.',\n", " '.',\n", " '.'): Counter({1: 3, 3: 3, 4: 3, 6: 3, 7: 3, 8: 3}),\n", " ('x',\n", " 'x',\n", " '.',\n", " '.',\n", " '.',\n", " 'o',\n", " 'x',\n", " '.',\n", " 'o'): Counter({2: 3, 3: 3, 4: 3, 7: 3}),\n", " ('x', 'o', '.', '.', 'o', 'x', 'x', '.', 'o'): Counter({2: 3, 3: 3, 7: 3}),\n", " ('x',\n", " 'o',\n", " '.',\n", " '.',\n", " '.',\n", " 'o',\n", " '.',\n", " 'x',\n", " '.'): Counter({2: 3, 3: 3, 4: 3, 6: 3, 8: 3}),\n", " ('x', 'x', 'o', '.', '.', 'o', 'x', 'o', '.'): Counter({3: 3, 4: 3, 8: 3})}" ] }, "execution_count": 214, "metadata": {}, "output_type": "execute_result" } ], "source": [ "new_menace()" ] }, { "cell_type": "code", "execution_count": 53, "metadata": { "collapsed": true }, "outputs": [], "source": [ "def menace_move(game):\n", " board, r, f = canonical(game['board'])\n", " player = active_player(game)\n", " token = token_for_player(game['player1_active'])\n", " cmove = random.choice(list(player[board].elements()))\n", " cmove_board = apply_move(empty_board(), cmove, token)\n", " moved_board = untransform(cmove_board, r, f)\n", " return moved_board.index(token)" ] }, { "cell_type": "code", "execution_count": 48, "metadata": { "collapsed": true }, "outputs": [], "source": [ "def new_human():\n", " return {'human?': True}" ] }, { "cell_type": "code", "execution_count": 71, "metadata": { "collapsed": true }, "outputs": [], "source": [ "def human_move(game):\n", " if game['history']:\n", " print('Opponent moved to', game['history'][-1]['move'])\n", " else:\n", " print('You play first.')\n", " print('The board is:')\n", " print(show_board(game['board']))\n", " \n", " valid_moves = vacants(game['board'])\n", " valid_input = False\n", " \n", " while not valid_input:\n", " user_input = input('Your move ({})? '.format(', '.join(str(m) for m in valid_moves)))\n", " if user_input.isnumeric():\n", " move = int(user_input)\n", " if move in valid_moves:\n", " valid_input = True\n", " else:\n", " print('Number not a valid move.')\n", " else:\n", " print('Please enter a number.')\n", " return move" ] }, { "cell_type": "code", "execution_count": 61, "metadata": { "collapsed": true }, "outputs": [], "source": [ "def make_move(game):\n", " if game['player1_active']:\n", " active = game['player1']\n", " else:\n", " active = game['player2']\n", " if active['human?']:\n", " move = human_move(game)\n", " else:\n", " move = menace_move(game)\n", " token = token_for_player(game['player1_active'])\n", " game['history'] += [{'player1?': game['player1_active'], 'move': move, 'board': game['board']}]\n", " game['board'] = apply_move(game['board'], move, token)\n", " game['player1_active'] = not game['player1_active'] " ] }, { "cell_type": "code", "execution_count": 215, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "(('x', '.', '.', '.', '.', 'o', 'o', 'x', '.'),\n", " [{'board': ('.', '.', '.', '.', '.', '.', '.', '.', '.'),\n", " 'move': 0,\n", " 'player1?': True},\n", " {'board': ('x', '.', '.', '.', '.', '.', '.', '.', '.'),\n", " 'move': 5,\n", " 'player1?': False},\n", " {'board': ('x', '.', '.', '.', '.', 'o', '.', '.', '.'),\n", " 'move': 7,\n", " 'player1?': True},\n", " {'board': ('x', '.', '.', '.', '.', 'o', '.', 'x', '.'),\n", " 'move': 6,\n", " 'player1?': False}])" ] }, "execution_count": 215, "metadata": {}, "output_type": "execute_result" } ], "source": [ "p1 = new_menace()\n", "p2 = new_menace()\n", "g = new_game(p1, p2)\n", "for _ in range(4):\n", " make_move(g)\n", "g['board'], g['history']" ] }, { "cell_type": "code", "execution_count": 63, "metadata": { "collapsed": true }, "outputs": [], "source": [ "def play_game(game):\n", " while not game_finished(game):\n", " make_move(game)" ] }, { "cell_type": "code", "execution_count": 80, "metadata": { "collapsed": true }, "outputs": [], "source": [ "def winning_player(game):\n", " if winner(game['board']) is None:\n", " return None\n", " elif game['history'][-1]['player1?']:\n", " return game['player1']\n", " else:\n", " return game['player2']\n", "\n", "def losing_player(game):\n", " if winner(game['board']) is None:\n", " return None\n", " elif game['history'][-1]['player1?']:\n", " return game['player2']\n", " else:\n", " return game['player1'] " ] }, { "cell_type": "code", "execution_count": 216, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "(('.', 'x', 'x', '.', 'x', 'o', 'o', 'x', 'o'),\n", " [{'board': ('.', '.', '.', '.', '.', '.', '.', '.', '.'),\n", " 'move': 1,\n", " 'player1?': True},\n", " {'board': ('.', 'x', '.', '.', '.', '.', '.', '.', '.'),\n", " 'move': 5,\n", " 'player1?': False},\n", " {'board': ('.', 'x', '.', '.', '.', 'o', '.', '.', '.'),\n", " 'move': 4,\n", " 'player1?': True},\n", " {'board': ('.', 'x', '.', '.', 'x', 'o', '.', '.', '.'),\n", " 'move': 6,\n", " 'player1?': False},\n", " {'board': ('.', 'x', '.', '.', 'x', 'o', 'o', '.', '.'),\n", " 'move': 2,\n", " 'player1?': True},\n", " {'board': ('.', 'x', 'x', '.', 'x', 'o', 'o', '.', '.'),\n", " 'move': 8,\n", " 'player1?': False},\n", " {'board': ('.', 'x', 'x', '.', 'x', 'o', 'o', '.', 'o'),\n", " 'move': 7,\n", " 'player1?': True}])" ] }, "execution_count": 216, "metadata": {}, "output_type": "execute_result" } ], "source": [ "p1 = new_menace()\n", "p2 = new_menace()\n", "g = new_game(p1, p2)\n", "play_game(g)\n", "g['board'], g['history']" ] }, { "cell_type": "code", "execution_count": 217, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ ".xx\n", ".xo\n", "oxo\n" ] } ], "source": [ "print(show_board(g['board']))" ] }, { "cell_type": "code", "execution_count": 218, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "'x'" ] }, "execution_count": 218, "metadata": {}, "output_type": "execute_result" } ], "source": [ "winner(g['board'])" ] }, { "cell_type": "code", "execution_count": 219, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "You play first.\n", "The board is:\n", "...\n", "...\n", "...\n", "Your move (0, 1, 2, 3, 4, 5, 6, 7, 8)? 4\n", "Opponent moved to 5\n", "The board is:\n", "...\n", ".xo\n", "...\n", "Your move (0, 1, 2, 3, 6, 7, 8)? 2\n", "Opponent moved to 3\n", "The board is:\n", "..x\n", "oxo\n", "...\n", "Your move (0, 1, 6, 7, 8)? 6\n", "\n", "Final position\n", "..x\n", "oxo\n", "x..\n", "You won\n" ] } ], "source": [ "p1 = new_menace()\n", "ph = new_human()\n", "if random.choice([True, False]):\n", " g = new_game(p1, ph)\n", "else:\n", " g = new_game(ph, p1)\n", "play_game(g)\n", "\n", "print('\\nFinal position')\n", "print(show_board(g['board']))\n", "if winner(g['board']) is None:\n", " print('A draw')\n", "elif winning_player(g) == ph:\n", " print('You won')\n", "else:\n", " print('You lost')" ] }, { "cell_type": "code", "execution_count": 220, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "..x\n", "oxo\n", "x..\n" ] } ], "source": [ "print(show_board(g['board']))" ] }, { "cell_type": "code", "execution_count": 91, "metadata": { "collapsed": true }, "outputs": [], "source": [ "def winning_moves(game):\n", " return [h for h in game['history'] \n", " if h['player1?'] == game['history'][-1]['player1?']]\n", "\n", "def losing_moves(game):\n", " return [h for h in game['history'] \n", " if h['player1?'] != game['history'][-1]['player1?']]" ] }, { "cell_type": "code", "execution_count": 130, "metadata": { "collapsed": true }, "outputs": [], "source": [ "def update_players(game, allow_drop_move=False):\n", " if winner(game['board']) is not None:\n", " update_winner(game)\n", " update_loser(game, allow_drop_move=allow_drop_move)" ] }, { "cell_type": "code", "execution_count": 111, "metadata": { "collapsed": true }, "outputs": [], "source": [ "def update_winner(game):\n", " player = winning_player(game)\n", " moves = winning_moves(game)\n", " for m in moves:\n", " board, r, f = canonical(m['board'])\n", " move_board = apply_move(empty_board(), m['move'], '+')\n", " cmove_board = transform(move_board, r, f)\n", " cmove = cmove_board.index('+')\n", " player[board][cmove] += 1" ] }, { "cell_type": "code", "execution_count": 126, "metadata": {}, "outputs": [], "source": [ "def update_loser(game, allow_drop_move=False):\n", " player = losing_player(game)\n", " moves = losing_moves(game)\n", " for m in moves:\n", " board, r, f = canonical(m['board'])\n", " move_board = apply_move(empty_board(), m['move'], '+')\n", " cmove_board = transform(move_board, r, f)\n", " cmove = cmove_board.index('+')\n", "# if player[board][cmove] > 1:\n", "# player[board][cmove] -= 1\n", " if allow_drop_move:\n", " if len(list(player[board].elements())) > 1:\n", " player[board][cmove] -= 1\n", " else:\n", " if player[board][cmove] > 1:\n", " player[board][cmove] -= 1\n" ] }, { "cell_type": "code", "execution_count": 221, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "({('x', '.', 'o', '.', 'o', 'x', '.', 'x', 'o'): Counter({1: 1, 3: 1, 6: 3}),\n", " ('o',\n", " 'x',\n", " 'o',\n", " '.',\n", " '.',\n", " '.',\n", " '.',\n", " 'x',\n", " '.'): Counter({3: 2, 4: 5, 5: 2, 6: 3, 8: 5}),\n", " ('x', 'x', '.', 'o', '.', 'x', 'o', 'o', 'x'): Counter({2: 1, 4: 1}),\n", " ('o',\n", " '.',\n", " '.',\n", " '.',\n", " 'x',\n", " 'x',\n", " '.',\n", " 'o',\n", " '.'): Counter({1: 27, 2: 494, 3: 446, 6: 1146, 8: 88}),\n", " ('x',\n", " 'o',\n", " '.',\n", " '.',\n", " 'x',\n", " 'x',\n", " '.',\n", " '.',\n", " 'o'): Counter({2: 1, 3: 1, 6: 1, 7: 1}),\n", " ('x',\n", " 'o',\n", " '.',\n", " '.',\n", " '.',\n", " 'o',\n", " 'x',\n", " '.',\n", " '.'): Counter({2: 5, 3: 10, 4: 6, 7: 3, 8: 3}),\n", " ('x', 'x', '.', '.', 'o', 'x', 'o', 'x', 'o'): Counter({2: 12, 3: 1}),\n", " ('x',\n", " 'x',\n", " '.',\n", " 'o',\n", " '.',\n", " '.',\n", " 'x',\n", " 'o',\n", " '.'): Counter({2: 1, 4: 1, 5: 1, 8: 1}),\n", " ('x',\n", " 'x',\n", " '.',\n", " '.',\n", " '.',\n", " '.',\n", " 'o',\n", " 'x',\n", " 'o'): Counter({2: 3, 3: 1, 4: 3, 5: 1}),\n", " ('x',\n", " 'o',\n", " '.',\n", " '.',\n", " '.',\n", " '.',\n", " '.',\n", " '.',\n", " '.'): Counter({2: 3, 3: 10, 4: 22, 5: 7, 6: 7, 7: 12, 8: 16}),\n", " ('x',\n", " 'o',\n", " 'x',\n", " 'o',\n", " 'x',\n", " '.',\n", " '.',\n", " '.',\n", " '.'): Counter({5: 1, 6: 1, 7: 1, 8: 1}),\n", " ('x', 'o', 'o', '.', 'x', 'x', '.', 'x', 'o'): Counter({3: 3, 6: 1}),\n", " ('x',\n", " 'x',\n", " '.',\n", " '.',\n", " '.',\n", " '.',\n", " 'o',\n", " 'o',\n", " 'x'): Counter({2: 2, 3: 1, 4: 1, 5: 1}),\n", " ('x',\n", " 'x',\n", " 'o',\n", " '.',\n", " 'o',\n", " 'x',\n", " '.',\n", " '.',\n", " '.'): Counter({3: 13, 6: 25, 7: 2, 8: 6}),\n", " ('x', 'o', 'o', '.', 'x', 'o', '.', 'x', '.'): Counter({3: 1, 6: 1, 8: 115}),\n", " ('x', 'x', '.', 'o', '.', 'x', 'x', 'o', 'o'): Counter({2: 3, 4: 1}),\n", " ('x',\n", " 'o',\n", " '.',\n", " '.',\n", " 'o',\n", " 'x',\n", " '.',\n", " 'x',\n", " '.'): Counter({2: 1, 3: 2, 6: 4, 8: 1}),\n", " ('x', 'x', '.', '.', 'o', 'x', 'o', 'o', '.'): Counter({2: 23, 3: 1, 8: 1}),\n", " ('.',\n", " 'x',\n", " '.',\n", " 'x',\n", " 'o',\n", " 'o',\n", " '.',\n", " '.',\n", " '.'): Counter({0: 9, 2: 3, 6: 5, 7: 2, 8: 3}),\n", " ('o',\n", " 'x',\n", " '.',\n", " 'x',\n", " '.',\n", " '.',\n", " '.',\n", " '.',\n", " '.'): Counter({2: 2, 4: 3, 5: 2, 6: 3, 7: 3, 8: 5}),\n", " ('x', 'x', '.', 'o', 'o', 'x', '.', 'x', 'o'): Counter({2: 3, 6: 1}),\n", " ('o',\n", " '.',\n", " 'o',\n", " '.',\n", " 'x',\n", " '.',\n", " '.',\n", " 'x',\n", " '.'): Counter({1: 8, 3: 4, 5: 4, 6: 2, 8: 2}),\n", " ('x',\n", " 'x',\n", " 'o',\n", " '.',\n", " 'x',\n", " '.',\n", " '.',\n", " '.',\n", " 'o'): Counter({3: 3, 5: 12, 6: 2, 7: 7}),\n", " ('x', 'x', 'o', 'x', '.', 'x', 'o', '.', 'o'): Counter({4: 4, 7: 6}),\n", " ('x',\n", " '.',\n", " 'o',\n", " '.',\n", " '.',\n", " 'o',\n", " '.',\n", " 'x',\n", " '.'): Counter({1: 2, 3: 3, 4: 3, 6: 4, 8: 5}),\n", " ('x', 'x', 'o', 'o', '.', '.', 'o', '.', 'x'): Counter({4: 4, 5: 3, 7: 2}),\n", " ('x', 'x', '.', '.', 'x', 'o', '.', 'o', 'o'): Counter({2: 189, 3: 1, 6: 1}),\n", " ('o',\n", " 'x',\n", " '.',\n", " '.',\n", " 'o',\n", " 'x',\n", " '.',\n", " '.',\n", " '.'): Counter({2: 1, 3: 1, 6: 1, 7: 1, 8: 6}),\n", " ('x',\n", " 'o',\n", " '.',\n", " '.',\n", " 'x',\n", " '.',\n", " '.',\n", " 'o',\n", " '.'): Counter({2: 209, 3: 301, 5: 454, 6: 475, 8: 269}),\n", " ('x',\n", " '.',\n", " 'o',\n", " '.',\n", " '.',\n", " 'x',\n", " '.',\n", " 'o',\n", " '.'): Counter({1: 3, 3: 5, 4: 8, 6: 3, 8: 2}),\n", " ('x', 'o', 'x', 'o', 'x', 'o', 'o', 'x', '.'): Counter({8: 1277}),\n", " ('o', 'x', 'o', 'x', '.', '.', '.', 'x', 'o'): Counter({4: 5, 5: 2, 6: 1}),\n", " ('o',\n", " '.',\n", " '.',\n", " '.',\n", " '.',\n", " 'x',\n", " '.',\n", " '.',\n", " '.'): Counter({1: 8, 2: 23, 3: 7, 4: 4, 6: 1, 7: 2, 8: 1}),\n", " ('x',\n", " 'x',\n", " 'o',\n", " '.',\n", " '.',\n", " '.',\n", " '.',\n", " '.',\n", " 'o'): Counter({3: 2, 4: 1, 5: 3, 6: 3, 7: 3}),\n", " ('x', 'x', '.', 'o', '.', 'x', 'o', 'o', '.'): Counter({2: 3, 4: 4, 8: 3}),\n", " ('x',\n", " 'x',\n", " '.',\n", " '.',\n", " 'o',\n", " 'o',\n", " '.',\n", " '.',\n", " '.'): Counter({2: 6, 3: 6, 6: 5, 7: 1, 8: 5}),\n", " ('o',\n", " 'x',\n", " '.',\n", " '.',\n", " 'x',\n", " '.',\n", " '.',\n", " '.',\n", " 'o'): Counter({2: 36, 3: 89, 5: 77, 6: 166, 7: 89}),\n", " ('x',\n", " 'x',\n", " 'o',\n", " 'o',\n", " '.',\n", " 'x',\n", " '.',\n", " '.',\n", " '.'): Counter({4: 5, 6: 1, 7: 1, 8: 2}),\n", " ('o', 'x', 'o', 'x', 'o', 'x', '.', '.', '.'): Counter({6: 2, 7: 1, 8: 1}),\n", " ('x',\n", " 'o',\n", " '.',\n", " '.',\n", " 'x',\n", " 'o',\n", " '.',\n", " 'x',\n", " '.'): Counter({2: 1, 3: 1, 6: 1, 8: 3}),\n", " ('x', 'x', 'o', '.', 'x', '.', 'x', 'o', 'o'): Counter({3: 3, 5: 26}),\n", " ('x',\n", " '.',\n", " '.',\n", " '.',\n", " '.',\n", " 'o',\n", " '.',\n", " '.',\n", " '.'): Counter({1: 2, 2: 16, 3: 15, 4: 14, 6: 25, 7: 2, 8: 12}),\n", " ('o',\n", " 'x',\n", " '.',\n", " '.',\n", " 'x',\n", " '.',\n", " '.',\n", " '.',\n", " '.'): Counter({2: 1, 3: 1, 5: 1, 6: 1, 7: 1, 8: 1}),\n", " ('x', 'x', 'o', '.', 'o', 'x', '.', '.', 'o'): Counter({3: 1, 6: 7, 7: 2}),\n", " ('x',\n", " 'x',\n", " '.',\n", " 'o',\n", " 'x',\n", " '.',\n", " '.',\n", " '.',\n", " 'o'): Counter({2: 1, 5: 1, 6: 1, 7: 1}),\n", " ('x', 'o', '.', 'o', 'x', 'x', '.', '.', 'o'): Counter({2: 11, 6: 75, 7: 3}),\n", " ('x', 'x', '.', 'o', 'x', 'x', 'o', 'o', '.'): Counter({2: 1, 8: 22}),\n", " ('x',\n", " 'o',\n", " '.',\n", " '.',\n", " '.',\n", " '.',\n", " '.',\n", " 'x',\n", " 'o'): Counter({2: 4, 3: 4, 4: 3, 5: 3, 6: 4}),\n", " ('x', 'x', '.', 'o', 'o', 'x', 'x', 'o', 'o'): Counter({2: 27}),\n", " ('x', 'x', '.', '.', 'o', 'o', '.', 'x', 'o'): Counter({2: 11, 3: 2, 6: 1}),\n", " ('x',\n", " 'o',\n", " '.',\n", " 'o',\n", " 'x',\n", " 'x',\n", " '.',\n", " '.',\n", " '.'): Counter({2: 1, 6: 1, 7: 1, 8: 1}),\n", " ('x',\n", " 'x',\n", " '.',\n", " 'o',\n", " '.',\n", " '.',\n", " 'o',\n", " 'x',\n", " '.'): Counter({2: 4, 4: 1, 5: 2, 8: 1}),\n", " ('x', 'o', 'x', '.', 'x', '.', 'o', 'o', '.'): Counter({3: 1, 5: 1, 8: 110}),\n", " ('x', 'x', 'o', 'o', '.', 'x', 'x', 'o', '.'): Counter({4: 3, 8: 3}),\n", " ('x',\n", " 'o',\n", " 'o',\n", " '.',\n", " 'x',\n", " 'x',\n", " '.',\n", " '.',\n", " '.'): Counter({3: 1, 6: 1, 7: 1, 8: 1}),\n", " ('x',\n", " 'x',\n", " '.',\n", " 'o',\n", " 'o',\n", " '.',\n", " '.',\n", " 'x',\n", " '.'): Counter({2: 8, 5: 9, 6: 4, 8: 3}),\n", " ('x',\n", " 'o',\n", " '.',\n", " '.',\n", " '.',\n", " '.',\n", " '.',\n", " 'o',\n", " 'x'): Counter({2: 2, 3: 3, 4: 4, 5: 4, 6: 3}),\n", " ('x', 'o', 'x', 'o', '.', '.', 'o', '.', 'x'): Counter({4: 4, 5: 6, 7: 6}),\n", " ('x',\n", " 'x',\n", " '.',\n", " '.',\n", " 'o',\n", " 'x',\n", " '.',\n", " '.',\n", " 'o'): Counter({2: 4, 3: 1, 6: 2, 7: 1}),\n", " ('x', 'x', '.', '.', '.', 'o', 'x', 'o', 'o'): Counter({2: 5, 3: 5, 4: 3}),\n", " ('x',\n", " 'x',\n", " '.',\n", " '.',\n", " 'o',\n", " '.',\n", " '.',\n", " 'o',\n", " 'x'): Counter({2: 1, 3: 1, 5: 1, 6: 1}),\n", " ('x',\n", " 'x',\n", " 'o',\n", " 'o',\n", " '.',\n", " '.',\n", " '.',\n", " '.',\n", " '.'): Counter({4: 5, 5: 2, 6: 2, 7: 2, 8: 1}),\n", " ('x', 'x', 'o', 'x', '.', 'x', '.', 'o', 'o'): Counter({4: 1, 6: 9}),\n", " ('x', 'o', 'o', 'o', 'x', 'x', '.', 'x', '.'): Counter({6: 1, 8: 3}),\n", " ('x', 'x', 'o', '.', 'o', 'x', 'x', '.', 'o'): Counter({3: 3, 7: 1}),\n", " ('x',\n", " 'x',\n", " 'o',\n", " '.',\n", " '.',\n", " '.',\n", " 'o',\n", " 'x',\n", " '.'): Counter({3: 3, 4: 7, 5: 3, 8: 3}),\n", " ('x',\n", " '.',\n", " '.',\n", " '.',\n", " 'o',\n", " 'x',\n", " '.',\n", " '.',\n", " 'o'): Counter({1: 5, 2: 2, 3: 3, 6: 5, 7: 4}),\n", " ('x',\n", " 'o',\n", " 'x',\n", " 'o',\n", " 'x',\n", " '.',\n", " '.',\n", " '.',\n", " 'o'): Counter({5: 15, 6: 487, 7: 10}),\n", " ('o',\n", " 'x',\n", " '.',\n", " 'x',\n", " 'x',\n", " '.',\n", " '.',\n", " '.',\n", " 'o'): Counter({2: 1, 5: 1, 6: 1, 7: 1}),\n", " ('x',\n", " 'x',\n", " 'o',\n", " 'o',\n", " 'x',\n", " '.',\n", " '.',\n", " '.',\n", " 'o'): Counter({5: 14, 6: 1, 7: 439}),\n", " ('x', 'x', '.', '.', 'o', '.', 'o', 'x', 'o'): Counter({2: 10, 3: 1, 5: 1}),\n", " ('x', 'x', 'o', 'o', 'o', 'x', '.', 'o', 'x'): Counter({6: 3}),\n", " ('.',\n", " 'x',\n", " '.',\n", " 'o',\n", " 'x',\n", " '.',\n", " '.',\n", " 'o',\n", " '.'): Counter({0: 747, 2: 600, 5: 1, 6: 499, 8: 184}),\n", " ('.',\n", " '.',\n", " '.',\n", " '.',\n", " 'x',\n", " '.',\n", " '.',\n", " '.',\n", " '.'): Counter({0: 1, 1: 1, 2: 1, 3: 1, 5: 1, 6: 1, 7: 1, 8: 1}),\n", " ('x', 'x', 'o', '.', 'x', 'x', 'o', '.', 'o'): Counter({3: 1, 7: 18}),\n", " ('x',\n", " 'o',\n", " 'o',\n", " 'o',\n", " 'x',\n", " 'x',\n", " '.',\n", " '.',\n", " '.'): Counter({6: 11, 7: 11, 8: 681}),\n", " ('.',\n", " 'x',\n", " '.',\n", " '.',\n", " '.',\n", " '.',\n", " '.',\n", " 'o',\n", " '.'): Counter({0: 14, 2: 5, 3: 1, 4: 5, 5: 2, 6: 9, 8: 4}),\n", " ('x', 'x', '.', 'o', '.', '.', 'x', 'o', 'o'): Counter({2: 4, 4: 3, 5: 3}),\n", " ('x', 'x', 'o', 'o', '.', 'x', 'x', 'o', 'o'): Counter({4: 3}),\n", " ('x',\n", " 'o',\n", " '.',\n", " '.',\n", " '.',\n", " '.',\n", " 'x',\n", " 'o',\n", " '.'): Counter({2: 1, 3: 4, 4: 5, 5: 5, 8: 3}),\n", " ('.',\n", " 'x',\n", " '.',\n", " 'o',\n", " 'x',\n", " '.',\n", " '.',\n", " '.',\n", " '.'): Counter({0: 1, 2: 1, 5: 1, 6: 1, 7: 1, 8: 1}),\n", " ('o',\n", " 'x',\n", " '.',\n", " 'o',\n", " '.',\n", " '.',\n", " '.',\n", " 'x',\n", " '.'): Counter({2: 3, 4: 8, 5: 2, 6: 7, 8: 5}),\n", " ('x',\n", " 'x',\n", " 'o',\n", " 'o',\n", " 'x',\n", " 'o',\n", " '.',\n", " '.',\n", " '.'): Counter({6: 1, 7: 233, 8: 399}),\n", " ('x', 'x', 'o', '.', 'x', 'o', '.', 'o', '.'): Counter({3: 1, 6: 1, 8: 172}),\n", " ('x',\n", " 'x',\n", " 'o',\n", " '.',\n", " '.',\n", " 'x',\n", " 'o',\n", " '.',\n", " '.'): Counter({3: 3, 4: 3, 7: 2, 8: 8}),\n", " 'human?': False,\n", " ('x', 'x', 'o', '.', 'o', 'o', '.', 'x', 'x'): Counter({3: 11, 6: 14}),\n", " ('x',\n", " 'x',\n", " '.',\n", " 'o',\n", " 'x',\n", " 'o',\n", " '.',\n", " '.',\n", " '.'): Counter({2: 1, 6: 1, 7: 1, 8: 1}),\n", " ('x', 'x', 'o', 'x', 'x', 'o', 'o', 'o', '.'): Counter({8: 11}),\n", " ('x', 'x', '.', 'x', 'o', 'o', '.', '.', 'o'): Counter({2: 7, 6: 5, 7: 3}),\n", " ('x', 'o', 'x', 'o', '.', '.', '.', 'o', 'x'): Counter({4: 7, 5: 4, 6: 1}),\n", " ('x',\n", " 'o',\n", " 'o',\n", " '.',\n", " 'x',\n", " '.',\n", " '.',\n", " '.',\n", " '.'): Counter({3: 1268, 5: 788, 6: 687, 7: 14, 8: 1807}),\n", " ('x',\n", " 'x',\n", " '.',\n", " 'o',\n", " '.',\n", " '.',\n", " '.',\n", " '.',\n", " '.'): Counter({2: 1, 4: 1, 5: 2, 6: 1, 7: 1, 8: 1}),\n", " ('x',\n", " '.',\n", " '.',\n", " '.',\n", " '.',\n", " 'x',\n", " '.',\n", " 'o',\n", " '.'): Counter({1: 3, 2: 1, 3: 1, 4: 1, 6: 8, 8: 2}),\n", " ('x', 'x', 'o', '.', 'x', '.', '.', 'o', 'o'): Counter({3: 1, 5: 1, 6: 1}),\n", " ('x',\n", " 'o',\n", " '.',\n", " '.',\n", " '.',\n", " 'x',\n", " '.',\n", " 'o',\n", " '.'): Counter({2: 6, 3: 4, 4: 3, 6: 3, 8: 3}),\n", " ('x', 'o', '.', 'o', '.', 'x', '.', 'x', 'o'): Counter({2: 3, 4: 3, 6: 3}),\n", " ('x', 'x', 'o', 'o', 'o', 'x', 'x', 'o', 'x'): Counter(),\n", " ('x',\n", " 'x',\n", " 'o',\n", " '.',\n", " 'o',\n", " '.',\n", " 'x',\n", " '.',\n", " '.'): Counter({3: 25, 5: 1, 7: 1, 8: 2}),\n", " ('x',\n", " 'x',\n", " '.',\n", " '.',\n", " 'o',\n", " '.',\n", " 'x',\n", " 'o',\n", " '.'): Counter({2: 1, 3: 1, 5: 1, 8: 1}),\n", " ('x', 'x', 'o', 'o', 'x', '.', 'x', 'o', 'o'): Counter({5: 3}),\n", " ('x',\n", " 'o',\n", " '.',\n", " '.',\n", " '.',\n", " 'o',\n", " '.',\n", " '.',\n", " 'x'): Counter({2: 3, 3: 5, 4: 4, 6: 4, 7: 4}),\n", " ('x', 'x', 'o', '.', '.', 'o', 'x', 'o', 'x'): Counter({3: 1, 4: 1}),\n", " ('x',\n", " '.',\n", " 'o',\n", " '.',\n", " '.',\n", " '.',\n", " '.',\n", " '.',\n", " 'x'): Counter({1: 1, 3: 1, 4: 1, 5: 1, 6: 1, 7: 1}),\n", " ('x',\n", " '.',\n", " 'o',\n", " '.',\n", " 'o',\n", " '.',\n", " '.',\n", " '.',\n", " 'x'): Counter({1: 1, 3: 2, 5: 1, 6: 3, 7: 1}),\n", " ('x',\n", " '.',\n", " 'x',\n", " '.',\n", " 'o',\n", " '.',\n", " 'o',\n", " '.',\n", " '.'): Counter({1: 12, 3: 3, 5: 5, 7: 4, 8: 7}),\n", " ('x',\n", " 'x',\n", " '.',\n", " '.',\n", " 'x',\n", " '.',\n", " 'o',\n", " '.',\n", " 'o'): Counter({2: 1, 3: 1, 5: 1, 7: 20}),\n", " ('x', 'o', 'x', '.', 'x', '.', 'o', '.', 'o'): Counter({3: 1, 5: 1, 7: 3}),\n", " ('x',\n", " '.',\n", " 'o',\n", " '.',\n", " '.',\n", " 'x',\n", " '.',\n", " 'x',\n", " 'o'): Counter({1: 3, 3: 3, 4: 7, 6: 3}),\n", " ('x',\n", " '.',\n", " 'o',\n", " '.',\n", " 'x',\n", " '.',\n", " '.',\n", " 'o',\n", " '.'): Counter({1: 1, 3: 451, 5: 807, 6: 1025, 8: 1897}),\n", " ('x', 'o', 'o', 'o', 'x', 'x', 'o', 'x', '.'): Counter({8: 413}),\n", " ('x', 'x', 'o', '.', 'o', '.', 'x', 'o', '.'): Counter({3: 11, 5: 3, 8: 3}),\n", " ('x', 'x', 'o', 'o', 'x', 'x', '.', '.', 'o'): Counter({6: 1, 7: 3}),\n", " ('x', 'x', 'o', '.', '.', '.', 'x', 'o', 'o'): Counter({3: 9, 4: 2, 5: 3}),\n", " ('x',\n", " '.',\n", " 'x',\n", " '.',\n", " 'o',\n", " '.',\n", " 'o',\n", " 'x',\n", " '.'): Counter({1: 2, 3: 1, 5: 1, 8: 1}),\n", " ('o', 'x', '.', 'x', 'o', 'x', '.', 'o', '.'): Counter({2: 1, 6: 2, 8: 3}),\n", " ('x',\n", " '.',\n", " '.',\n", " '.',\n", " 'o',\n", " 'x',\n", " '.',\n", " 'o',\n", " '.'): Counter({1: 43, 2: 1, 3: 1, 6: 2, 8: 1}),\n", " ('x', 'x', 'o', 'o', 'x', 'x', 'o', 'o', '.'): Counter({8: 227}),\n", " ('x',\n", " 'o',\n", " '.',\n", " '.',\n", " '.',\n", " '.',\n", " '.',\n", " 'x',\n", " '.'): Counter({2: 1, 3: 1, 4: 1, 5: 1, 6: 1, 8: 1}),\n", " ('x', 'x', 'o', '.', 'o', '.', '.', 'x', 'o'): Counter({3: 1, 5: 1, 6: 1}),\n", " ('x',\n", " 'x',\n", " 'o',\n", " '.',\n", " '.',\n", " '.',\n", " '.',\n", " 'x',\n", " 'o'): Counter({3: 2, 4: 4, 5: 5, 6: 4}),\n", " ('x', 'x', 'o', 'o', 'x', 'x', '.', 'o', '.'): Counter({6: 1, 8: 3}),\n", " ('x',\n", " 'o',\n", " 'x',\n", " '.',\n", " 'x',\n", " '.',\n", " '.',\n", " 'o',\n", " '.'): Counter({3: 1, 5: 1, 6: 1, 8: 1}),\n", " ('x', 'x', '.', '.', 'o', 'o', 'x', '.', 'o'): Counter({2: 17, 3: 7, 7: 1}),\n", " ('x', 'x', 'o', 'o', 'o', '.', 'x', 'x', '.'): Counter({5: 19, 8: 3}),\n", " ('x', 'x', 'o', 'o', 'o', 'x', 'x', 'o', '.'): Counter({8: 3}),\n", " ('o',\n", " '.',\n", " '.',\n", " '.',\n", " 'x',\n", " '.',\n", " '.',\n", " '.',\n", " '.'): Counter({1: 442, 2: 5384, 3: 1790, 5: 7, 6: 14740, 7: 8, 8: 1}),\n", " ('x',\n", " '.',\n", " '.',\n", " '.',\n", " '.',\n", " 'x',\n", " '.',\n", " 'o',\n", " 'o'): Counter({1: 3, 2: 2, 3: 3, 4: 3, 6: 6}),\n", " ('x',\n", " 'x',\n", " '.',\n", " '.',\n", " 'o',\n", " '.',\n", " '.',\n", " '.',\n", " '.'): Counter({2: 106, 3: 2, 5: 2, 6: 1, 7: 1, 8: 1}),\n", " ('x',\n", " 'o',\n", " '.',\n", " '.',\n", " '.',\n", " '.',\n", " 'x',\n", " '.',\n", " 'o'): Counter({2: 3, 3: 7, 4: 3, 5: 3, 7: 3}),\n", " ('x', 'x', 'o', 'o', 'o', 'x', '.', 'x', '.'): Counter({6: 22, 8: 3}),\n", " ('x', 'o', 'x', 'o', 'o', '.', '.', 'x', '.'): Counter({5: 7, 6: 1, 8: 1}),\n", " ('x',\n", " 'o',\n", " 'o',\n", " '.',\n", " 'x',\n", " 'x',\n", " '.',\n", " '.',\n", " 'o'): Counter({3: 1237, 6: 20, 7: 3}),\n", " ('x',\n", " '.',\n", " '.',\n", " '.',\n", " 'o',\n", " 'x',\n", " '.',\n", " 'x',\n", " 'o'): Counter({1: 2, 2: 3, 3: 3, 6: 3}),\n", " ('.',\n", " 'x',\n", " '.',\n", " 'o',\n", " '.',\n", " '.',\n", " '.',\n", " 'x',\n", " '.'): Counter({0: 3, 2: 4, 4: 3, 5: 1, 6: 3, 8: 2}),\n", " ('x', 'o', 'o', 'o', '.', 'x', '.', 'x', '.'): Counter({4: 3, 6: 5, 8: 4}),\n", " ('x',\n", " 'x',\n", " 'o',\n", " 'x',\n", " '.',\n", " '.',\n", " '.',\n", " 'o',\n", " '.'): Counter({4: 3, 5: 1, 6: 8, 8: 1}),\n", " ('x', 'x', '.', 'o', 'o', 'x', 'o', 'x', 'o'): Counter({2: 20}),\n", " ('x',\n", " 'o',\n", " '.',\n", " '.',\n", " 'x',\n", " '.',\n", " 'x',\n", " '.',\n", " 'o'): Counter({2: 1, 3: 1, 5: 1, 7: 1}),\n", " ('x',\n", " '.',\n", " '.',\n", " '.',\n", " '.',\n", " '.',\n", " '.',\n", " '.',\n", " 'o'): Counter({1: 5, 2: 3, 3: 2, 4: 16, 5: 2, 6: 11, 7: 4}),\n", " ('x', 'x', 'o', 'o', 'o', '.', 'x', '.', '.'): Counter({5: 3, 7: 1, 8: 1}),\n", " ('x', 'x', 'o', 'x', '.', 'o', 'o', '.', '.'): Counter({4: 2, 7: 1, 8: 4}),\n", " ('x', 'x', '.', 'o', '.', 'x', '.', 'o', 'o'): Counter({2: 5, 4: 3, 6: 3}),\n", " ('x', 'o', '.', '.', 'o', 'o', 'x', '.', 'x'): Counter({2: 2, 3: 4, 7: 3}),\n", " ('x',\n", " 'x',\n", " 'o',\n", " '.',\n", " 'x',\n", " '.',\n", " 'o',\n", " '.',\n", " '.'): Counter({3: 1, 5: 1, 7: 1, 8: 1}),\n", " ('x',\n", " 'o',\n", " 'x',\n", " 'o',\n", " '.',\n", " '.',\n", " '.',\n", " 'x',\n", " '.'): Counter({4: 1, 5: 1, 6: 1, 8: 1}),\n", " ('x', 'x', 'o', '.', '.', '.', 'o', 'o', 'x'): Counter({3: 1, 4: 4, 5: 3}),\n", " ('o',\n", " 'x',\n", " 'o',\n", " 'x',\n", " 'x',\n", " '.',\n", " 'o',\n", " '.',\n", " '.'): Counter({5: 31, 7: 38, 8: 43}),\n", " ('x',\n", " 'o',\n", " '.',\n", " '.',\n", " 'x',\n", " '.',\n", " 'o',\n", " '.',\n", " '.'): Counter({2: 4, 3: 745, 5: 519, 7: 305, 8: 2804}),\n", " ('x', 'o', 'o', '.', '.', 'o', 'x', '.', 'x'): Counter({3: 3, 4: 4, 7: 5}),\n", " ('x',\n", " '.',\n", " 'x',\n", " '.',\n", " 'o',\n", " '.',\n", " 'x',\n", " '.',\n", " 'o'): Counter({1: 1, 3: 1, 5: 1, 7: 1}),\n", " ('x',\n", " 'o',\n", " '.',\n", " '.',\n", " 'x',\n", " 'o',\n", " 'x',\n", " 'o',\n", " '.'): Counter({2: 79, 3: 123, 8: 124}),\n", " ('x', 'x', 'o', 'o', 'o', 'x', 'x', '.', 'o'): Counter({7: 3}),\n", " ('x',\n", " 'x',\n", " 'o',\n", " 'o',\n", " '.',\n", " '.',\n", " 'x',\n", " '.',\n", " '.'): Counter({4: 4, 5: 9, 7: 1, 8: 5}),\n", " ('x', 'x', 'o', '.', '.', 'o', 'o', '.', 'x'): Counter({3: 3, 4: 5, 7: 3}),\n", " ('x',\n", " 'x',\n", " '.',\n", " 'o',\n", " 'x',\n", " 'o',\n", " '.',\n", " 'o',\n", " '.'): Counter({2: 295, 6: 110, 8: 303}),\n", " ('x',\n", " 'x',\n", " '.',\n", " 'o',\n", " 'x',\n", " '.',\n", " '.',\n", " 'o',\n", " '.'): Counter({2: 1, 5: 1, 6: 1, 8: 1}),\n", " ('o', 'x', 'o', 'x', '.', 'x', 'o', '.', '.'): Counter({4: 7, 7: 2, 8: 4}),\n", " ('x',\n", " 'x',\n", " '.',\n", " 'o',\n", " '.',\n", " 'o',\n", " '.',\n", " '.',\n", " 'x'): Counter({2: 4, 4: 14, 6: 3, 7: 2}),\n", " ('x', 'x', 'o', 'x', '.', 'o', '.', 'o', 'x'): Counter({4: 1, 6: 1}),\n", " ('x', 'o', '.', '.', '.', 'x', 'o', 'x', 'o'): Counter({2: 3, 3: 4, 4: 5}),\n", " ('x', 'x', 'o', 'o', '.', 'o', '.', 'x', 'x'): Counter({4: 7, 6: 3}),\n", " ('x',\n", " 'o',\n", " '.',\n", " '.',\n", " 'o',\n", " '.',\n", " 'x',\n", " '.',\n", " '.'): Counter({2: 2, 3: 20, 5: 2, 7: 11, 8: 1}),\n", " ('x',\n", " 'x',\n", " 'o',\n", " 'o',\n", " 'x',\n", " '.',\n", " '.',\n", " '.',\n", " '.'): Counter({5: 1, 6: 1, 7: 1, 8: 1}),\n", " ('x', 'x', 'o', 'o', '.', 'o', 'x', '.', 'x'): Counter({4: 24, 7: 1}),\n", " ('x',\n", " '.',\n", " 'x',\n", " '.',\n", " '.',\n", " '.',\n", " 'o',\n", " 'x',\n", " 'o'): Counter({1: 3, 3: 2, 4: 1, 5: 2}),\n", " ('x', 'x', '.', 'o', 'o', 'x', 'x', '.', 'o'): Counter({2: 3, 7: 1}),\n", " ('x', 'o', 'o', '.', 'o', 'x', 'x', '.', '.'): Counter({3: 15, 7: 7, 8: 1}),\n", " ('x', 'x', 'o', 'o', '.', 'x', '.', 'x', 'o'): Counter({4: 3, 6: 1}),\n", " ('x', 'x', 'o', '.', '.', 'x', 'o', '.', 'o'): Counter({3: 1, 4: 2, 7: 3}),\n", " ('o',\n", " 'x',\n", " '.',\n", " '.',\n", " '.',\n", " '.',\n", " '.',\n", " 'x',\n", " 'o'): Counter({2: 2, 3: 3, 4: 5, 5: 3, 6: 3}),\n", " ('x', 'x', 'o', 'o', '.', 'x', 'x', '.', 'o'): Counter({4: 3, 7: 3}),\n", " ('x', 'x', 'o', 'o', 'o', 'x', '.', 'x', 'o'): Counter({6: 3}),\n", " ('x',\n", " 'x',\n", " '.',\n", " '.',\n", " 'x',\n", " 'o',\n", " '.',\n", " 'o',\n", " '.'): Counter({2: 1, 3: 1, 6: 1, 8: 1}),\n", " ('x', 'x', 'o', 'o', '.', 'o', 'x', 'o', 'x'): Counter({4: 9}),\n", " ('x',\n", " 'x',\n", " '.',\n", " '.',\n", " 'o',\n", " '.',\n", " '.',\n", " 'o',\n", " '.'): Counter({2: 4, 3: 3, 5: 8, 6: 10, 8: 5}),\n", " ('x', 'x', '.', 'o', 'o', '.', '.', 'x', 'o'): Counter({2: 7, 5: 4, 6: 2}),\n", " ('x', 'x', '.', 'o', 'x', 'o', 'x', 'o', '.'): Counter({2: 1, 8: 1}),\n", " ('o',\n", " 'x',\n", " '.',\n", " 'o',\n", " 'x',\n", " '.',\n", " '.',\n", " '.',\n", " '.'): Counter({2: 1, 5: 1, 6: 729, 7: 1913, 8: 2}),\n", " ('x', 'x', 'o', 'o', '.', 'x', 'o', '.', 'x'): Counter({4: 14, 7: 1}),\n", " ('x', 'x', '.', 'o', 'x', 'x', 'o', '.', 'o'): Counter({2: 1, 7: 20}),\n", " ('x',\n", " 'x',\n", " '.',\n", " 'o',\n", " 'o',\n", " '.',\n", " '.',\n", " '.',\n", " '.'): Counter({2: 11, 5: 5, 6: 3, 7: 3, 8: 1}),\n", " ('x',\n", " '.',\n", " 'o',\n", " '.',\n", " 'o',\n", " '.',\n", " '.',\n", " 'x',\n", " '.'): Counter({1: 1, 3: 1, 5: 1, 6: 36, 8: 1}),\n", " ('x', 'x', '.', '.', 'o', 'o', 'o', '.', 'x'): Counter({2: 8, 3: 2, 7: 2}),\n", " ('o',\n", " 'x',\n", " '.',\n", " 'x',\n", " 'o',\n", " '.',\n", " '.',\n", " '.',\n", " '.'): Counter({2: 1, 5: 1, 6: 1, 7: 1, 8: 3}),\n", " ('.',\n", " 'x',\n", " '.',\n", " 'x',\n", " '.',\n", " 'o',\n", " '.',\n", " '.',\n", " '.'): Counter({0: 4, 2: 3, 4: 3, 6: 3, 7: 2, 8: 3}),\n", " ('x',\n", " 'x',\n", " 'o',\n", " '.',\n", " '.',\n", " '.',\n", " 'o',\n", " '.',\n", " 'x'): Counter({3: 2, 4: 23, 5: 1, 7: 2}),\n", " ('.',\n", " 'x',\n", " '.',\n", " '.',\n", " '.',\n", " '.',\n", " '.',\n", " '.',\n", " '.'): Counter({0: 1, 2: 1, 3: 1, 4: 68, 5: 2, 6: 2, 7: 1, 8: 8}),\n", " ('o', 'x', '.', '.', 'x', 'x', 'o', '.', 'o'): Counter({2: 1, 3: 13, 7: 19}),\n", " ('x',\n", " '.',\n", " 'o',\n", " '.',\n", " 'x',\n", " 'x',\n", " 'o',\n", " '.',\n", " '.'): Counter({1: 1, 3: 1, 7: 1, 8: 1}),\n", " ('x', 'x', 'o', 'x', 'o', 'o', '.', '.', '.'): Counter({6: 14, 7: 1, 8: 1}),\n", " ('x',\n", " 'o',\n", " 'x',\n", " '.',\n", " '.',\n", " '.',\n", " '.',\n", " 'o',\n", " '.'): Counter({3: 3, 4: 4, 5: 2, 6: 5, 8: 4}),\n", " ('x', 'o', '.', '.', 'x', 'o', '.', 'x', 'o'): Counter({2: 39, 3: 1, 6: 1}),\n", " ('x', 'x', '.', 'x', 'o', 'o', '.', 'o', 'x'): Counter({2: 1, 6: 1}),\n", " ('x', 'x', '.', 'o', '.', 'o', 'x', 'o', 'x'): Counter({2: 1, 4: 21}),\n", " ('.',\n", " 'x',\n", " '.',\n", " 'x',\n", " 'o',\n", " 'x',\n", " '.',\n", " 'o',\n", " '.'): Counter({0: 4, 2: 3, 6: 5, 8: 3}),\n", " ('x',\n", " '.',\n", " '.',\n", " '.',\n", " 'o',\n", " '.',\n", " '.',\n", " '.',\n", " '.'): Counter({1: 1, 2: 1, 3: 1, 5: 21, 6: 1, 7: 38, 8: 1}),\n", " ('x',\n", " '.',\n", " 'o',\n", " '.',\n", " 'o',\n", " 'x',\n", " '.',\n", " 'x',\n", " '.'): Counter({1: 5, 3: 4, 6: 6, 8: 5}),\n", " ('x', 'x', 'o', 'o', '.', 'x', 'o', 'x', 'o'): Counter({4: 15}),\n", " ('x',\n", " 'x',\n", " 'o',\n", " '.',\n", " '.',\n", " 'x',\n", " '.',\n", " '.',\n", " 'o'): Counter({3: 3, 4: 2, 6: 3, 7: 3}),\n", " ('x',\n", " 'o',\n", " 'o',\n", " '.',\n", " 'x',\n", " 'x',\n", " '.',\n", " 'o',\n", " '.'): Counter({3: 355, 6: 611, 8: 82}),\n", " ('x',\n", " 'o',\n", " 'x',\n", " '.',\n", " '.',\n", " '.',\n", " 'o',\n", " '.',\n", " '.'): Counter({3: 1, 4: 5, 5: 2, 7: 3, 8: 6}),\n", " ('x', 'x', '.', 'o', 'x', 'o', 'x', 'o', 'o'): Counter({2: 251}),\n", " ('x',\n", " 'o',\n", " '.',\n", " '.',\n", " 'o',\n", " 'x',\n", " '.',\n", " '.',\n", " '.'): Counter({2: 1, 3: 1, 6: 1, 7: 13, 8: 5}),\n", " ('o', 'x', 'o', 'x', 'o', '.', '.', 'x', '.'): Counter({5: 1, 6: 3, 8: 3}),\n", " ('x',\n", " 'x',\n", " 'o',\n", " '.',\n", " '.',\n", " '.',\n", " 'x',\n", " '.',\n", " 'o'): Counter({3: 5, 4: 2, 5: 19, 7: 2}),\n", " ('x',\n", " 'x',\n", " '.',\n", " '.',\n", " 'x',\n", " '.',\n", " 'o',\n", " 'o',\n", " '.'): Counter({2: 1, 3: 1, 5: 1, 8: 22}),\n", " ('o', 'x', '.', 'x', '.', 'x', '.', 'o', 'o'): Counter({2: 3, 4: 3, 6: 3}),\n", " ('o', 'x', '.', 'o', 'o', 'x', '.', 'x', '.'): Counter({2: 1, 6: 1, 8: 1}),\n", " ('x',\n", " 'o',\n", " 'o',\n", " '.',\n", " '.',\n", " 'x',\n", " 'x',\n", " '.',\n", " '.'): Counter({3: 1, 4: 1, 7: 1, 8: 1}),\n", " ('x',\n", " 'x',\n", " '.',\n", " '.',\n", " '.',\n", " 'x',\n", " '.',\n", " 'o',\n", " 'o'): Counter({2: 4, 3: 3, 4: 2, 6: 5}),\n", " ('x',\n", " 'x',\n", " 'o',\n", " '.',\n", " 'o',\n", " '.',\n", " '.',\n", " 'x',\n", " '.'): Counter({3: 11, 5: 10, 6: 11, 8: 9}),\n", " ('x', 'o', 'o', '.', 'o', 'x', '.', 'x', '.'): Counter({3: 2, 6: 9, 8: 3}),\n", " ('.',\n", " 'x',\n", " '.',\n", " 'x',\n", " 'x',\n", " 'o',\n", " '.',\n", " 'o',\n", " '.'): Counter({0: 3, 2: 3, 6: 4, 8: 5}),\n", " ('x',\n", " 'x',\n", " '.',\n", " '.',\n", " 'x',\n", " 'o',\n", " 'o',\n", " '.',\n", " 'o'): Counter({2: 95, 3: 1, 7: 141}),\n", " ('x', 'x', 'o', 'o', '.', 'x', 'o', 'o', 'x'): Counter({4: 7}),\n", " ('x',\n", " 'x',\n", " '.',\n", " 'o',\n", " 'x',\n", " 'o',\n", " '.',\n", " '.',\n", " 'o'): Counter({2: 357, 6: 1, 7: 42}),\n", " ('x', 'x', 'o', 'x', 'x', 'o', '.', 'o', '.'): Counter({6: 2, 8: 27}),\n", " ('x',\n", " 'x',\n", " 'o',\n", " '.',\n", " '.',\n", " '.',\n", " '.',\n", " 'o',\n", " 'x'): Counter({3: 1, 4: 2, 5: 1, 6: 1}),\n", " ('x', 'o', 'o', '.', '.', 'x', 'o', 'x', '.'): Counter({3: 2, 4: 4, 8: 3}),\n", " ('x',\n", " '.',\n", " 'o',\n", " '.',\n", " '.',\n", " '.',\n", " '.',\n", " '.',\n", " '.'): Counter({1: 3, 3: 4, 4: 49, 5: 14, 6: 9, 7: 5, 8: 2}),\n", " ('x',\n", " '.',\n", " 'o',\n", " '.',\n", " 'x',\n", " 'o',\n", " '.',\n", " '.',\n", " '.'): Counter({1: 1, 3: 1, 6: 1, 7: 1, 8: 4130}),\n", " ('x', 'o', 'x', 'o', 'x', 'o', '.', 'x', '.'): Counter({6: 1, 8: 1}),\n", " ('.',\n", " 'x',\n", " '.',\n", " 'x',\n", " '.',\n", " 'o',\n", " '.',\n", " 'o',\n", " '.'): Counter({0: 4, 2: 3, 4: 2, 6: 3, 8: 3}),\n", " ('x', 'x', '.', 'x', 'x', 'o', '.', 'o', 'o'): Counter({2: 11, 6: 3}),\n", " ('x', 'x', 'o', '.', 'o', 'o', 'x', '.', '.'): Counter({3: 12, 7: 3, 8: 1}),\n", " ('x',\n", " 'x',\n", " '.',\n", " '.',\n", " '.',\n", " 'x',\n", " 'o',\n", " '.',\n", " 'o'): Counter({2: 4, 3: 2, 4: 6, 7: 7}),\n", " ('o', 'x', 'o', 'x', 'o', 'x', '.', 'x', '.'): Counter({6: 5, 8: 7}),\n", " ('x', 'o', 'o', '.', 'x', 'x', 'x', '.', 'o'): Counter({3: 3, 7: 1}),\n", " ('x',\n", " '.',\n", " 'o',\n", " '.',\n", " 'x',\n", " 'o',\n", " '.',\n", " 'x',\n", " '.'): Counter({1: 2, 3: 1, 6: 1, 8: 17}),\n", " ('o', 'x', 'o', 'x', 'x', 'o', '.', '.', '.'): Counter({6: 1, 7: 154, 8: 6}),\n", " ('x',\n", " '.',\n", " 'o',\n", " '.',\n", " 'x',\n", " 'x',\n", " 'o',\n", " 'o',\n", " '.'): Counter({1: 1, 3: 410, 8: 275}),\n", " ('x',\n", " 'o',\n", " '.',\n", " '.',\n", " 'o',\n", " 'x',\n", " 'x',\n", " '.',\n", " '.'): Counter({2: 1, 3: 1, 7: 25, 8: 1}),\n", " ('x', 'o', '.', '.', 'o', 'x', 'o', 'x', '.'): Counter({2: 6, 3: 1, 8: 1}),\n", " ('x', 'x', '.', 'o', 'o', '.', 'x', '.', 'o'): Counter({2: 14, 5: 4, 7: 1}),\n", " ('x', 'x', '.', 'o', '.', 'o', 'o', 'x', '.'): Counter({2: 3, 4: 6, 8: 3}),\n", " ('x',\n", " 'o',\n", " 'x',\n", " 'o',\n", " 'x',\n", " '.',\n", " '.',\n", " 'o',\n", " '.'): Counter({5: 67, 6: 297, 8: 160}),\n", " ('x',\n", " 'o',\n", " '.',\n", " '.',\n", " 'x',\n", " '.',\n", " 'x',\n", " 'o',\n", " '.'): Counter({2: 1, 3: 1, 5: 1, 8: 1}),\n", " ('x',\n", " 'x',\n", " '.',\n", " '.',\n", " '.',\n", " 'o',\n", " '.',\n", " '.',\n", " '.'): Counter({2: 4, 3: 1, 4: 1, 6: 1, 7: 1, 8: 1}),\n", " ('x',\n", " '.',\n", " '.',\n", " '.',\n", " '.',\n", " '.',\n", " '.',\n", " '.',\n", " '.'): Counter({1: 1, 2: 1, 3: 1, 4: 1, 5: 1, 6: 1, 7: 1, 8: 1}),\n", " ('o', 'x', '.', 'o', 'x', 'x', '.', 'o', '.'): Counter({2: 1, 6: 4, 8: 1}),\n", " ('x',\n", " 'o',\n", " '.',\n", " '.',\n", " 'x',\n", " '.',\n", " 'o',\n", " 'x',\n", " 'o'): Counter({2: 3, 3: 151, 5: 104}),\n", " ('x',\n", " '.',\n", " 'o',\n", " '.',\n", " 'x',\n", " 'x',\n", " '.',\n", " '.',\n", " 'o'): Counter({1: 1, 3: 1, 6: 1, 7: 1}),\n", " ('x',\n", " 'o',\n", " 'x',\n", " 'o',\n", " '.',\n", " '.',\n", " 'x',\n", " '.',\n", " '.'): Counter({4: 15, 5: 1, 7: 2, 8: 1}),\n", " ('x', 'x', 'o', 'x', '.', '.', 'o', '.', 'o'): Counter({4: 3, 5: 2, 7: 2}),\n", " ('x', 'x', 'o', '.', '.', 'o', '.', 'o', 'x'): Counter({3: 6, 4: 7, 6: 3}),\n", " ('x', 'o', 'x', 'o', '.', 'o', 'x', '.', '.'): Counter({4: 7, 7: 1, 8: 3}),\n", " ('x', 'o', 'o', '.', '.', 'x', 'x', 'o', '.'): Counter({3: 4, 4: 5, 8: 4}),\n", " ('x', 'x', 'o', 'o', '.', 'o', 'x', '.', '.'): Counter({4: 3, 7: 1, 8: 1}),\n", " ('x', 'x', 'o', 'o', '.', 'o', '.', '.', 'x'): Counter({4: 3, 6: 1, 7: 1}),\n", " ('x',\n", " 'x',\n", " '.',\n", " 'x',\n", " 'o',\n", " '.',\n", " '.',\n", " '.',\n", " 'o'): Counter({2: 2, 5: 1, 6: 1, 7: 1}),\n", " ('x', 'x', 'o', 'o', 'x', 'x', 'o', '.', 'o'): Counter({7: 354}),\n", " ('x',\n", " 'x',\n", " '.',\n", " '.',\n", " '.',\n", " 'x',\n", " 'o',\n", " 'o',\n", " '.'): Counter({2: 4, 3: 2, 4: 1, 8: 11}),\n", " ('x',\n", " 'o',\n", " '.',\n", " 'o',\n", " '.',\n", " '.',\n", " '.',\n", " '.',\n", " 'x'): Counter({2: 3, 4: 5, 5: 3, 6: 3, 7: 7}),\n", " ('o',\n", " 'x',\n", " '.',\n", " '.',\n", " '.',\n", " 'o',\n", " '.',\n", " 'x',\n", " '.'): Counter({2: 5, 3: 4, 4: 6, 6: 3, 8: 3}),\n", " ('.',\n", " 'x',\n", " '.',\n", " 'o',\n", " 'x',\n", " 'o',\n", " '.',\n", " '.',\n", " '.'): Counter({0: 307, 2: 445, 6: 222, 7: 470, 8: 880}),\n", " ('x',\n", " 'o',\n", " '.',\n", " '.',\n", " '.',\n", " 'x',\n", " '.',\n", " 'x',\n", " 'o'): Counter({2: 2, 3: 3, 4: 2, 6: 2}),\n", " ('x', 'x', 'o', 'o', 'o', '.', '.', '.', 'x'): Counter({5: 1, 6: 1, 7: 1}),\n", " ('x', 'x', 'o', 'o', 'o', '.', 'x', 'x', 'o'): Counter({5: 3}),\n", " ('.',\n", " 'x',\n", " '.',\n", " '.',\n", " 'o',\n", " '.',\n", " '.',\n", " 'x',\n", " '.'): Counter({0: 3, 2: 7, 3: 10, 5: 6, 6: 2, 8: 4}),\n", " ('x', 'x', 'o', 'o', 'x', 'x', 'x', 'o', 'o'): Counter(),\n", " ('x', 'x', 'o', '.', 'o', 'x', '.', 'x', 'o'): Counter({3: 3, 6: 20}),\n", " ('x', 'x', 'o', '.', 'o', 'o', 'x', 'o', 'x'): Counter({3: 18}),\n", " ('x', 'o', 'o', '.', 'x', 'x', 'o', 'x', '.'): Counter({3: 1, 8: 1}),\n", " ('x', 'x', '.', '.', 'o', 'x', 'o', '.', 'o'): Counter({2: 9, 3: 1, 7: 4}),\n", " ('x', 'x', 'o', 'o', 'x', '.', 'x', '.', 'o'): Counter({5: 38, 7: 3}),\n", " ('o',\n", " 'x',\n", " '.',\n", " 'x',\n", " 'x',\n", " 'o',\n", " '.',\n", " '.',\n", " '.'): Counter({2: 1, 6: 1, 7: 1, 8: 1}),\n", " ('x',\n", " 'x',\n", " '.',\n", " '.',\n", " '.',\n", " '.',\n", " 'o',\n", " '.',\n", " '.'): Counter({2: 1, 3: 1, 4: 1, 5: 1, 7: 1, 8: 1}),\n", " ('x', '.', 'x', '.', 'o', '.', 'o', 'x', 'o'): Counter({1: 9, 3: 6, 5: 7}),\n", " ('x',\n", " '.',\n", " 'x',\n", " '.',\n", " '.',\n", " '.',\n", " 'o',\n", " '.',\n", " 'o'): Counter({1: 4, 3: 4, 4: 1, 5: 2, 7: 5}),\n", " ('x',\n", " 'x',\n", " 'o',\n", " 'o',\n", " '.',\n", " '.',\n", " '.',\n", " '.',\n", " 'x'): Counter({4: 9, 5: 1, 6: 1, 7: 2}),\n", " ('x',\n", " 'o',\n", " 'x',\n", " 'o',\n", " '.',\n", " '.',\n", " '.',\n", " '.',\n", " '.'): Counter({4: 4, 5: 2, 6: 4, 7: 3, 8: 5}),\n", " ('x', 'o', 'o', '.', '.', 'x', '.', 'x', 'o'): Counter({3: 7, 4: 3, 6: 3}),\n", " ('x',\n", " 'x',\n", " '.',\n", " 'o',\n", " '.',\n", " 'o',\n", " 'x',\n", " '.',\n", " '.'): Counter({2: 9, 4: 13, 7: 2, 8: 2}),\n", " ('x',\n", " 'o',\n", " 'x',\n", " '.',\n", " 'x',\n", " '.',\n", " 'o',\n", " '.',\n", " '.'): Counter({3: 1, 5: 1, 7: 1, 8: 19}),\n", " ('x',\n", " 'x',\n", " '.',\n", " '.',\n", " '.',\n", " 'o',\n", " '.',\n", " 'o',\n", " 'x'): Counter({2: 1, 3: 1, 4: 1, 6: 1}),\n", " ('x',\n", " 'x',\n", " 'o',\n", " 'o',\n", " 'x',\n", " '.',\n", " 'o',\n", " '.',\n", " '.'): Counter({5: 160, 7: 307, 8: 395}),\n", " ('x',\n", " 'x',\n", " '.',\n", " 'o',\n", " '.',\n", " '.',\n", " 'o',\n", " '.',\n", " '.'): Counter({2: 3, 4: 9, 5: 7, 7: 3, 8: 2}),\n", " ('x',\n", " 'o',\n", " 'o',\n", " '.',\n", " '.',\n", " '.',\n", " '.',\n", " 'x',\n", " '.'): Counter({3: 3, 4: 2, 5: 3, 6: 5, 8: 5}),\n", " ('.',\n", " 'o',\n", " '.',\n", " '.',\n", " 'x',\n", " '.',\n", " '.',\n", " '.',\n", " '.'): Counter({0: 2373,\n", " 2: 3710,\n", " 3: 3193,\n", " 5: 9975,\n", " 6: 2080,\n", " 7: 31,\n", " 8: 1687}),\n", " ('x', 'x', 'o', 'o', '.', 'x', '.', 'o', 'x'): Counter({4: 3, 6: 3}),\n", " ('x',\n", " '.',\n", " 'o',\n", " '.',\n", " 'x',\n", " 'x',\n", " '.',\n", " 'o',\n", " '.'): Counter({1: 1, 3: 1, 6: 1, 8: 1}),\n", " ('x', 'o', 'x', 'o', 'x', '.', '.', 'x', 'o'): Counter({5: 1, 6: 3}),\n", " ('x',\n", " 'o',\n", " '.',\n", " '.',\n", " '.',\n", " '.',\n", " 'o',\n", " 'x',\n", " '.'): Counter({2: 4, 3: 2, 4: 6, 5: 6, 8: 4}),\n", " ('x', 'o', 'x', 'o', '.', '.', 'o', 'x', '.'): Counter({4: 4, 5: 3, 8: 4}),\n", " ('o', 'x', 'o', 'x', '.', 'o', '.', 'x', '.'): Counter({4: 4, 6: 1, 8: 4}),\n", " ('x', 'o', '.', '.', 'x', 'o', 'o', 'x', '.'): Counter({2: 6, 3: 9, 8: 492}),\n", " ('x',\n", " 'x',\n", " '.',\n", " '.',\n", " 'o',\n", " 'x',\n", " 'o',\n", " '.',\n", " '.'): Counter({2: 10, 3: 4, 7: 3, 8: 2}),\n", " ('x',\n", " 'x',\n", " '.',\n", " '.',\n", " '.',\n", " 'o',\n", " '.',\n", " 'o',\n", " '.'): Counter({2: 6, 3: 4, 4: 2, 6: 2, 8: 8}),\n", " ('x', 'x', '.', 'o', 'o', 'x', 'o', 'x', '.'): Counter({2: 10, 8: 2}),\n", " ('x',\n", " '.',\n", " 'o',\n", " '.',\n", " 'x',\n", " '.',\n", " '.',\n", " 'x',\n", " 'o'): Counter({1: 3, 3: 1, 5: 18, 6: 2}),\n", " ('x', 'o', 'x', 'o', '.', '.', 'x', '.', 'o'): Counter({4: 4, 5: 3, 7: 3}),\n", " ('o',\n", " 'x',\n", " '.',\n", " '.',\n", " 'x',\n", " 'x',\n", " '.',\n", " '.',\n", " 'o'): Counter({2: 1, 3: 1, 6: 1, 7: 1}),\n", " ('x',\n", " 'o',\n", " '.',\n", " '.',\n", " '.',\n", " 'x',\n", " 'x',\n", " 'o',\n", " '.'): Counter({2: 2, 3: 2, 4: 14, 8: 1}),\n", " ('x', 'x', 'o', 'o', '.', 'o', '.', 'x', '.'): Counter({4: 3, 6: 3, 8: 1}),\n", " ('x', 'x', 'o', 'o', '.', '.', 'x', 'o', '.'): Counter({4: 5, 5: 3, 8: 3}),\n", " ('x', 'x', 'o', '.', 'o', '.', 'x', '.', 'o'): Counter({3: 14, 5: 4, 7: 1}),\n", " ('x',\n", " 'x',\n", " 'o',\n", " 'x',\n", " '.',\n", " '.',\n", " '.',\n", " '.',\n", " 'o'): Counter({4: 3, 5: 4, 6: 3, 7: 2}),\n", " ('x',\n", " 'x',\n", " 'o',\n", " '.',\n", " '.',\n", " '.',\n", " '.',\n", " 'o',\n", " '.'): Counter({3: 2, 4: 1, 5: 2, 6: 6, 8: 3}),\n", " ('x', 'x', 'o', 'x', 'o', 'x', '.', '.', 'o'): Counter({6: 10, 7: 1}),\n", " ('o',\n", " 'x',\n", " '.',\n", " 'o',\n", " 'x',\n", " 'x',\n", " '.',\n", " '.',\n", " '.'): Counter({2: 1, 6: 20, 7: 3, 8: 1}),\n", " ('x', 'x', '.', 'o', '.', '.', 'o', 'o', 'x'): Counter({2: 3, 4: 3, 5: 5}),\n", " ('x', 'x', '.', 'o', '.', 'o', 'o', '.', 'x'): Counter({2: 6, 4: 3, 7: 3}),\n", " ('x',\n", " 'x',\n", " '.',\n", " '.',\n", " 'x',\n", " '.',\n", " '.',\n", " 'o',\n", " 'o'): Counter({2: 10, 3: 1, 5: 1, 6: 17}),\n", " ('x', 'o', 'o', '.', 'o', '.', 'x', '.', 'x'): Counter({3: 8, 5: 1, 7: 5}),\n", " ('x', 'o', 'x', '.', 'x', '.', 'o', 'x', 'o'): Counter({3: 3, 5: 3}),\n", " ('x',\n", " 'o',\n", " 'x',\n", " '.',\n", " 'o',\n", " '.',\n", " '.',\n", " 'x',\n", " '.'): Counter({3: 1, 5: 3, 6: 1, 8: 1}),\n", " ('x', 'o', 'o', '.', 'x', 'x', 'x', 'o', '.'): Counter({3: 1, 8: 1}),\n", " ('x',\n", " 'x',\n", " '.',\n", " '.',\n", " 'o',\n", " '.',\n", " 'o',\n", " '.',\n", " '.'): Counter({2: 8, 3: 4, 5: 3, 7: 1, 8: 7}),\n", " ('x',\n", " 'o',\n", " '.',\n", " '.',\n", " '.',\n", " 'x',\n", " '.',\n", " '.',\n", " '.'): Counter({2: 1, 3: 1, 4: 4, 6: 1, 7: 1, 8: 1}),\n", " ('x', 'x', 'o', '.', 'o', '.', '.', 'o', 'x'): Counter({3: 1, 5: 1, 6: 8}),\n", " ('x', 'o', 'x', 'o', 'x', '.', 'o', 'x', 'o'): Counter({5: 3}),\n", " ('x', 'x', '.', 'o', 'x', '.', 'x', 'o', 'o'): Counter({2: 3, 5: 1}),\n", " ('x',\n", " 'x',\n", " 'o',\n", " '.',\n", " '.',\n", " 'o',\n", " '.',\n", " 'x',\n", " '.'): Counter({3: 1, 4: 4, 6: 2, 8: 4}),\n", " ('o',\n", " 'x',\n", " '.',\n", " '.',\n", " 'x',\n", " 'o',\n", " '.',\n", " '.',\n", " '.'): Counter({2: 646, 3: 101, 6: 314, 7: 1527, 8: 56}),\n", " ('x', 'x', '.', 'x', 'o', 'x', '.', 'o', 'o'): Counter({2: 2, 6: 9}),\n", " ('x',\n", " '.',\n", " 'o',\n", " '.',\n", " '.',\n", " 'x',\n", " 'o',\n", " 'x',\n", " '.'): Counter({1: 4, 3: 2, 4: 4, 8: 3}),\n", " ('x', 'x', '.', 'o', 'o', 'x', 'o', '.', 'x'): Counter({2: 21, 7: 1}),\n", " ('.',\n", " 'x',\n", " '.',\n", " 'o',\n", " '.',\n", " 'o',\n", " '.',\n", " 'x',\n", " '.'): Counter({0: 2, 2: 3, 4: 4, 6: 2, 8: 4}),\n", " ('x', 'x', 'o', '.', '.', '.', 'o', 'x', 'o'): Counter({3: 1, 4: 4, 5: 4}),\n", " ('x',\n", " '.',\n", " 'x',\n", " '.',\n", " 'x',\n", " '.',\n", " 'o',\n", " '.',\n", " 'o'): Counter({1: 6, 3: 1, 5: 1, 7: 12}),\n", " ('x',\n", " 'x',\n", " 'o',\n", " 'x',\n", " 'o',\n", " '.',\n", " '.',\n", " '.',\n", " '.'): Counter({5: 3, 6: 31, 7: 2, 8: 2}),\n", " ('x', 'o', 'x', 'o', '.', '.', '.', 'x', 'o'): Counter({4: 4, 5: 3, 6: 4}),\n", " ('.',\n", " 'x',\n", " '.',\n", " '.',\n", " 'x',\n", " '.',\n", " '.',\n", " 'o',\n", " '.'): Counter({0: 1, 2: 1, 3: 1, 5: 1, 6: 5, 8: 4}),\n", " ('x',\n", " 'x',\n", " '.',\n", " 'o',\n", " 'x',\n", " '.',\n", " 'o',\n", " '.',\n", " '.'): Counter({2: 1, 5: 1, 7: 1, 8: 1}),\n", " ('x',\n", " 'x',\n", " '.',\n", " '.',\n", " '.',\n", " 'o',\n", " 'x',\n", " 'o',\n", " '.'): Counter({2: 1, 3: 1, 4: 1, 8: 1}),\n", " ('x', 'o', 'x', '.', 'o', '.', 'x', '.', 'o'): Counter({3: 9, 5: 1, 7: 3}),\n", " ('x',\n", " 'o',\n", " '.',\n", " '.',\n", " '.',\n", " 'o',\n", " 'x',\n", " '.',\n", " 'x'): Counter({2: 1, 3: 1, 4: 1, 7: 1}),\n", " ('o',\n", " 'o',\n", " '.',\n", " '.',\n", " 'x',\n", " '.',\n", " '.',\n", " 'x',\n", " '.'): Counter({2: 18, 3: 1, 5: 1, 6: 1, 8: 1}),\n", " ('x',\n", " 'o',\n", " '.',\n", " '.',\n", " 'o',\n", " '.',\n", " '.',\n", " 'x',\n", " '.'): Counter({2: 1, 3: 4, 5: 3, 6: 6, 8: 12}),\n", " ('x', 'x', '.', 'o', '.', 'o', '.', 'x', 'o'): Counter({2: 5, 4: 4, 6: 2}),\n", " ('x', 'x', 'o', 'x', 'o', '.', '.', 'x', 'o'): Counter({5: 10, 6: 6}),\n", " ('o',\n", " 'x',\n", " 'o',\n", " '.',\n", " 'x',\n", " '.',\n", " '.',\n", " '.',\n", " '.'): Counter({3: 95, 5: 26, 6: 46, 7: 206, 8: 35}),\n", " ('x', 'x', 'o', 'x', 'x', '.', '.', 'o', 'o'): Counter({5: 11, 6: 13}),\n", " ('x',\n", " 'o',\n", " '.',\n", " '.',\n", " 'x',\n", " 'x',\n", " '.',\n", " 'o',\n", " '.'): Counter({2: 1, 3: 1, 6: 1, 8: 1}),\n", " ('x', 'x', '.', '.', 'o', 'o', '.', 'o', 'x'): Counter({2: 9, 3: 12, 6: 2}),\n", " ('x', 'x', '.', '.', 'o', '.', 'x', 'o', 'o'): Counter({2: 5, 3: 18, 5: 4}),\n", " ('x',\n", " 'o',\n", " '.',\n", " '.',\n", " 'x',\n", " 'o',\n", " '.',\n", " '.',\n", " '.'): Counter({2: 158, 3: 293, 6: 560, 7: 99, 8: 535}),\n", " ('x',\n", " '.',\n", " '.',\n", " '.',\n", " 'x',\n", " 'o',\n", " '.',\n", " '.',\n", " '.'): Counter({1: 1, 2: 1, 3: 1, 6: 1, 7: 1, 8: 1}),\n", " ('x',\n", " '.',\n", " 'o',\n", " '.',\n", " '.',\n", " '.',\n", " 'o',\n", " '.',\n", " 'x'): Counter({1: 3, 3: 3, 4: 3, 5: 3, 7: 3}),\n", " ('x',\n", " 'x',\n", " '.',\n", " '.',\n", " 'o',\n", " 'o',\n", " '.',\n", " 'x',\n", " '.'): Counter({2: 5, 3: 13, 6: 1, 8: 4}),\n", " ('x', 'x', 'o', '.', 'o', 'x', '.', 'o', '.'): Counter({3: 1, 6: 15, 8: 1}),\n", " ('x',\n", " 'x',\n", " '.',\n", " 'o',\n", " 'x',\n", " '.',\n", " 'o',\n", " 'o',\n", " '.'): Counter({2: 263, 5: 1, 8: 384}),\n", " ('x',\n", " 'x',\n", " '.',\n", " '.',\n", " '.',\n", " '.',\n", " 'o',\n", " 'o',\n", " '.'): Counter({2: 11, 3: 2, 4: 3, 5: 2, 8: 7}),\n", " ('x',\n", " 'x',\n", " '.',\n", " '.',\n", " '.',\n", " '.',\n", " '.',\n", " '.',\n", " 'o'): Counter({2: 4, 3: 1, 4: 1, 5: 3, 6: 1, 7: 3}),\n", " ('x',\n", " '.',\n", " 'o',\n", " '.',\n", " '.',\n", " '.',\n", " '.',\n", " 'x',\n", " '.'): Counter({1: 1, 3: 1, 4: 5, 5: 2, 6: 1, 8: 13}),\n", " ('o',\n", " 'x',\n", " '.',\n", " '.',\n", " 'o',\n", " 'x',\n", " '.',\n", " 'x',\n", " '.'): Counter({2: 4, 3: 4, 6: 5, 8: 10}),\n", " ('x', 'x', '.', 'x', '.', 'o', '.', 'o', 'o'): Counter({2: 8, 4: 3, 6: 4}),\n", " ('.',\n", " '.',\n", " '.',\n", " '.',\n", " '.',\n", " '.',\n", " '.',\n", " '.',\n", " '.'): Counter({0: 25,\n", " 1: 13,\n", " 2: 89,\n", " 3: 1,\n", " 4: 45379,\n", " 5: 1,\n", " 6: 5,\n", " 7: 25,\n", " 8: 65}),\n", " ('x', 'x', '.', 'o', 'x', 'x', '.', 'o', 'o'): Counter({2: 3, 6: 24}),\n", " ('x',\n", " 'x',\n", " '.',\n", " 'o',\n", " '.',\n", " 'x',\n", " '.',\n", " '.',\n", " 'o'): Counter({2: 2, 4: 1, 6: 1, 7: 1}),\n", " ('o',\n", " 'x',\n", " 'o',\n", " 'x',\n", " 'x',\n", " '.',\n", " '.',\n", " 'o',\n", " '.'): Counter({5: 141, 6: 10, 8: 8}),\n", " ('o',\n", " 'x',\n", " '.',\n", " '.',\n", " 'x',\n", " 'x',\n", " 'o',\n", " '.',\n", " '.'): Counter({2: 1, 3: 11, 7: 3, 8: 3}),\n", " ('x',\n", " 'x',\n", " 'o',\n", " '.',\n", " '.',\n", " 'o',\n", " '.',\n", " '.',\n", " '.'): Counter({3: 4, 4: 3, 6: 4, 7: 1, 8: 4}),\n", " ('x', 'o', 'x', 'o', 'o', '.', 'x', '.', 'x'): Counter({5: 5, 7: 22}),\n", " ('x', 'x', 'o', 'o', 'o', '.', 'x', '.', 'x'): Counter({5: 32, 7: 3}),\n", " ('x',\n", " '.',\n", " '.',\n", " '.',\n", " 'x',\n", " 'o',\n", " '.',\n", " '.',\n", " 'o'): Counter({1: 1, 2: 622, 3: 1, 6: 1, 7: 1}),\n", " ('o',\n", " 'x',\n", " '.',\n", " '.',\n", " 'x',\n", " 'x',\n", " '.',\n", " 'o',\n", " '.'): Counter({2: 1, 3: 1, 6: 1, 8: 1}),\n", " ('x',\n", " '.',\n", " '.',\n", " '.',\n", " 'o',\n", " '.',\n", " '.',\n", " '.',\n", " 'x'): Counter({1: 1, 2: 1, 3: 1, 5: 1, 6: 1, 7: 1}),\n", " ('x',\n", " 'x',\n", " '.',\n", " 'o',\n", " '.',\n", " '.',\n", " '.',\n", " 'o',\n", " 'x'): Counter({2: 1, 4: 1, 5: 1, 6: 1}),\n", " ('x',\n", " '.',\n", " 'x',\n", " '.',\n", " 'x',\n", " '.',\n", " 'o',\n", " 'o',\n", " '.'): Counter({1: 1, 3: 1, 5: 1, 8: 28}),\n", " ('x',\n", " 'o',\n", " '.',\n", " '.',\n", " 'x',\n", " 'x',\n", " '.',\n", " 'o',\n", " 'o'): Counter({2: 1, 3: 128, 6: 306}),\n", " ('x',\n", " 'x',\n", " '.',\n", " '.',\n", " '.',\n", " '.',\n", " '.',\n", " 'o',\n", " '.'): Counter({2: 2, 3: 1, 4: 1, 5: 1, 6: 1, 8: 1}),\n", " ('x',\n", " 'x',\n", " 'o',\n", " '.',\n", " '.',\n", " '.',\n", " 'o',\n", " '.',\n", " '.'): Counter({3: 3, 4: 6, 5: 2, 7: 3, 8: 4}),\n", " ('x', 'o', 'x', 'o', '.', 'o', 'x', 'o', 'x'): Counter({4: 3}),\n", " ('o',\n", " 'x',\n", " '.',\n", " '.',\n", " 'x',\n", " '.',\n", " '.',\n", " 'o',\n", " '.'): Counter({2: 1, 3: 160, 5: 8, 6: 123, 8: 5}),\n", " ('x', 'o', '.', 'o', 'o', 'x', '.', 'x', '.'): Counter({2: 4, 6: 4, 8: 7}),\n", " ('o',\n", " 'x',\n", " '.',\n", " '.',\n", " '.',\n", " '.',\n", " '.',\n", " '.',\n", " '.'): Counter({2: 1, 3: 1, 4: 49, 5: 2, 6: 7, 7: 8, 8: 3}),\n", " ('x',\n", " 'o',\n", " 'x',\n", " '.',\n", " 'o',\n", " '.',\n", " 'x',\n", " '.',\n", " '.'): Counter({3: 32, 5: 1, 7: 21, 8: 1}),\n", " ('x', 'o', '.', '.', 'o', 'x', '.', 'x', 'o'): Counter({2: 3, 3: 5, 6: 5}),\n", " ('x',\n", " 'x',\n", " '.',\n", " '.',\n", " '.',\n", " 'o',\n", " 'o',\n", " 'x',\n", " '.'): Counter({2: 2, 3: 2, 4: 2, 8: 3}),\n", " ('x',\n", " 'o',\n", " '.',\n", " 'o',\n", " '.',\n", " 'x',\n", " '.',\n", " 'x',\n", " '.'): Counter({2: 2, 4: 1, 6: 1, 8: 3}),\n", " ('x', 'x', '.', 'o', 'o', 'x', '.', '.', 'o'): Counter({2: 4, 6: 3, 7: 5}),\n", " ('x',\n", " 'x',\n", " '.',\n", " 'o',\n", " '.',\n", " '.',\n", " 'o',\n", " '.',\n", " 'x'): Counter({2: 2, 4: 1, 5: 1, 7: 1}),\n", " ('x',\n", " '.',\n", " 'o',\n", " '.',\n", " 'o',\n", " 'x',\n", " '.',\n", " '.',\n", " '.'): Counter({1: 1, 3: 1, 6: 32, 7: 1, 8: 1}),\n", " ('x', 'x', 'o', 'o', '.', 'x', '.', 'o', '.'): Counter({4: 3, 6: 3, 8: 3}),\n", " ('x', 'x', 'o', 'o', '.', '.', 'o', 'x', '.'): Counter({4: 9, 5: 2, 8: 1}),\n", " ('x',\n", " '.',\n", " '.',\n", " '.',\n", " 'x',\n", " 'o',\n", " '.',\n", " 'o',\n", " '.'): Counter({1: 28, 2: 37, 3: 44, 6: 213, 8: 343}),\n", " ('x',\n", " 'x',\n", " '.',\n", " 'o',\n", " '.',\n", " '.',\n", " '.',\n", " 'o',\n", " '.'): Counter({2: 3, 4: 4, 5: 4, 6: 3, 8: 6}),\n", " ('x',\n", " '.',\n", " 'o',\n", " '.',\n", " '.',\n", " '.',\n", " '.',\n", " 'x',\n", " 'o'): Counter({1: 1, 3: 1, 4: 2, 5: 4, 6: 2}),\n", " ('x',\n", " 'o',\n", " '.',\n", " '.',\n", " 'x',\n", " 'x',\n", " 'o',\n", " 'o',\n", " '.'): Counter({2: 2, 3: 291, 8: 543}),\n", " ('x', 'x', '.', 'o', '.', 'x', 'o', 'x', 'o'): Counter({2: 2, 4: 1}),\n", " ('x',\n", " '.',\n", " 'o',\n", " '.',\n", " 'x',\n", " 'x',\n", " '.',\n", " 'o',\n", " 'o'): Counter({1: 1, 3: 1196, 6: 8}),\n", " ('x',\n", " 'x',\n", " '.',\n", " '.',\n", " '.',\n", " '.',\n", " '.',\n", " 'o',\n", " 'o'): Counter({2: 6, 3: 6, 4: 1, 5: 1, 6: 8}),\n", " ('x', 'x', '.', 'o', '.', '.', 'o', 'x', 'o'): Counter({2: 4, 4: 5, 5: 4}),\n", " ('x', 'x', '.', 'o', 'o', 'x', '.', 'o', '.'): Counter({2: 13, 6: 5, 8: 6}),\n", " ('o', 'x', 'o', 'x', '.', 'x', 'o', 'x', 'o'): Counter({4: 3}),\n", " ('x',\n", " 'o',\n", " 'x',\n", " 'o',\n", " 'x',\n", " '.',\n", " 'o',\n", " '.',\n", " '.'): Counter({5: 17, 7: 11, 8: 487}),\n", " ('x',\n", " 'x',\n", " 'o',\n", " 'x',\n", " '.',\n", " 'o',\n", " '.',\n", " '.',\n", " '.'): Counter({4: 1, 6: 7, 7: 2, 8: 4}),\n", " ('x',\n", " 'x',\n", " 'o',\n", " '.',\n", " 'o',\n", " '.',\n", " '.',\n", " '.',\n", " '.'): Counter({3: 1, 5: 1, 6: 1, 7: 1, 8: 1}),\n", " ('x', 'x', '.', '.', 'o', 'o', 'x', 'o', 'x'): Counter({2: 1, 3: 24}),\n", " ('x',\n", " 'x',\n", " '.',\n", " '.',\n", " 'o',\n", " '.',\n", " '.',\n", " '.',\n", " 'o'): Counter({2: 7, 3: 6, 5: 1, 6: 3, 7: 5}),\n", " ('x',\n", " 'x',\n", " '.',\n", " 'o',\n", " '.',\n", " '.',\n", " '.',\n", " 'x',\n", " 'o'): Counter({2: 3, 4: 3, 5: 3, 6: 2}),\n", " ('x', 'x', 'o', 'x', 'x', 'o', 'o', '.', '.'): Counter({7: 1, 8: 20}),\n", " ('o',\n", " 'x',\n", " 'o',\n", " 'x',\n", " '.',\n", " 'x',\n", " '.',\n", " '.',\n", " '.'): Counter({4: 3, 6: 3, 7: 2, 8: 3}),\n", " ('x', 'x', '.', 'o', '.', 'x', 'o', '.', 'o'): Counter({2: 4, 4: 3, 7: 4}),\n", " ('x',\n", " 'o',\n", " '.',\n", " '.',\n", " '.',\n", " 'x',\n", " 'o',\n", " '.',\n", " '.'): Counter({2: 4, 3: 1, 4: 4, 7: 2, 8: 6}),\n", " ('x', 'o', 'x', 'o', 'o', '.', 'x', '.', '.'): Counter({5: 1, 7: 1, 8: 1}),\n", " ('x',\n", " 'x',\n", " 'o',\n", " '.',\n", " '.',\n", " 'o',\n", " 'x',\n", " '.',\n", " '.'): Counter({3: 7, 4: 3, 7: 2, 8: 9}),\n", " ('x', 'x', '.', '.', 'o', '.', 'o', 'o', 'x'): Counter({2: 10, 3: 1, 5: 3}),\n", " ('x',\n", " 'x',\n", " '.',\n", " '.',\n", " '.',\n", " 'o',\n", " '.',\n", " 'x',\n", " 'o'): Counter({2: 7, 3: 4, 4: 1, 6: 1}),\n", " ('x',\n", " 'o',\n", " 'o',\n", " '.',\n", " 'x',\n", " '.',\n", " 'o',\n", " 'x',\n", " '.'): Counter({3: 151, 5: 103, 8: 306}),\n", " ('o',\n", " '.',\n", " '.',\n", " '.',\n", " '.',\n", " 'x',\n", " '.',\n", " 'x',\n", " '.'): Counter({1: 3, 2: 2, 3: 5, 4: 3, 6: 7, 8: 1}),\n", " ('x', 'x', 'o', '.', 'o', '.', 'x', 'o', 'x'): Counter({3: 3, 5: 1}),\n", " ('x', 'x', '.', 'o', 'x', 'o', 'x', '.', 'o'): Counter({2: 24, 7: 1}),\n", " ('x',\n", " 'x',\n", " '.',\n", " 'o',\n", " 'o',\n", " 'x',\n", " '.',\n", " '.',\n", " '.'): Counter({2: 6, 6: 1, 7: 1, 8: 1}),\n", " ('x',\n", " 'o',\n", " '.',\n", " '.',\n", " 'x',\n", " '.',\n", " '.',\n", " 'x',\n", " 'o'): Counter({2: 1, 3: 1, 5: 5, 6: 1}),\n", " ('x',\n", " 'o',\n", " 'x',\n", " '.',\n", " '.',\n", " '.',\n", " 'x',\n", " '.',\n", " 'o'): Counter({3: 1, 4: 1, 5: 1, 7: 1}),\n", " ('x', 'x', 'o', 'o', 'o', 'x', '.', '.', '.'): Counter({6: 3, 7: 2, 8: 2}),\n", " ('x',\n", " 'o',\n", " '.',\n", " '.',\n", " 'o',\n", " '.',\n", " '.',\n", " '.',\n", " 'x'): Counter({2: 1, 3: 1, 5: 1, 6: 1, 7: 9}),\n", " ('x',\n", " 'x',\n", " '.',\n", " '.',\n", " 'o',\n", " 'o',\n", " 'x',\n", " '.',\n", " '.'): Counter({2: 1, 3: 26, 7: 2, 8: 1}),\n", " ('x', 'x', 'o', 'x', 'x', '.', 'o', '.', 'o'): Counter({5: 11, 7: 3}),\n", " ('x', 'x', 'o', 'o', '.', 'x', '.', '.', 'o'): Counter({4: 3, 6: 3, 7: 4}),\n", " ('x',\n", " 'o',\n", " 'o',\n", " '.',\n", " '.',\n", " 'x',\n", " '.',\n", " 'x',\n", " '.'): Counter({3: 1, 4: 1, 6: 1, 8: 1}),\n", " ('x', 'x', 'o', '.', 'o', 'o', '.', 'x', '.'): Counter({3: 1, 6: 1, 8: 1}),\n", " ('o',\n", " 'x',\n", " '.',\n", " '.',\n", " '.',\n", " '.',\n", " 'o',\n", " 'x',\n", " '.'): Counter({2: 2, 3: 4, 4: 11, 5: 1, 8: 1}),\n", " ('o',\n", " 'x',\n", " '.',\n", " '.',\n", " '.',\n", " 'x',\n", " '.',\n", " '.',\n", " '.'): Counter({2: 2, 3: 4, 4: 12, 6: 3, 7: 2, 8: 1}),\n", " ('x',\n", " 'o',\n", " 'x',\n", " 'o',\n", " 'x',\n", " 'o',\n", " '.',\n", " '.',\n", " '.'): Counter({6: 69, 7: 176, 8: 75}),\n", " ('x', 'o', 'x', 'o', 'x', '.', 'o', 'x', '.'): Counter({5: 1, 8: 3}),\n", " ('x',\n", " 'x',\n", " '.',\n", " '.',\n", " 'o',\n", " '.',\n", " 'o',\n", " '.',\n", " 'x'): Counter({2: 22, 3: 1, 5: 1, 7: 1}),\n", " ('o', 'x', '.', 'x', 'x', 'o', '.', '.', 'o'): Counter({2: 63, 6: 2, 7: 63}),\n", " ('x',\n", " 'x',\n", " '.',\n", " '.',\n", " '.',\n", " '.',\n", " 'o',\n", " '.',\n", " 'o'): Counter({2: 8, 3: 1, 4: 2, 5: 1, 7: 2}),\n", " ('x', 'x', 'o', 'x', '.', 'o', 'o', '.', 'x'): Counter({4: 17, 7: 1}),\n", " ('x',\n", " 'o',\n", " '.',\n", " '.',\n", " 'x',\n", " '.',\n", " '.',\n", " '.',\n", " '.'): Counter({2: 1, 3: 1, 5: 1, 6: 1, 7: 1, 8: 1}),\n", " ('x', 'o', 'o', '.', 'x', 'x', 'o', 'x', 'o'): Counter({3: 1272}),\n", " ('x', 'x', 'o', 'x', 'o', 'o', '.', 'x', '.'): Counter({6: 8, 8: 7}),\n", " ('x',\n", " 'o',\n", " '.',\n", " '.',\n", " '.',\n", " 'x',\n", " '.',\n", " '.',\n", " 'o'): Counter({2: 2, 3: 4, 4: 4, 6: 4, 7: 5}),\n", " ('x', 'x', '.', 'o', 'o', 'x', '.', 'o', 'x'): Counter({2: 3, 6: 1}),\n", " ('x',\n", " 'x',\n", " 'o',\n", " 'o',\n", " 'x',\n", " '.',\n", " '.',\n", " 'o',\n", " '.'): Counter({5: 10, 6: 11, 8: 586}),\n", " ('o', 'o', '.', 'o', 'x', 'x', '.', 'x', '.'): Counter({2: 1, 6: 1, 8: 1}),\n", " ('x', 'x', 'o', 'o', '.', 'o', 'x', 'x', '.'): Counter({4: 6, 8: 13}),\n", " ('x',\n", " '.',\n", " '.',\n", " '.',\n", " 'x',\n", " 'x',\n", " '.',\n", " 'o',\n", " 'o'): Counter({1: 1, 2: 2, 3: 4, 6: 19}),\n", " ('x', 'x', 'o', 'x', 'o', '.', '.', 'o', '.'): Counter({5: 1, 6: 7, 8: 2}),\n", " ('x',\n", " '.',\n", " 'o',\n", " '.',\n", " 'x',\n", " '.',\n", " '.',\n", " '.',\n", " '.'): Counter({1: 1, 3: 1, 5: 1, 6: 1, 7: 1, 8: 1}),\n", " ('x',\n", " 'o',\n", " 'x',\n", " 'o',\n", " '.',\n", " '.',\n", " '.',\n", " '.',\n", " 'x'): Counter({4: 1, 5: 1, 6: 1, 7: 1}),\n", " ('x', 'x', 'o', 'x', 'o', 'o', '.', 'o', 'x'): Counter({6: 31}),\n", " ('x',\n", " 'x',\n", " 'o',\n", " '.',\n", " 'o',\n", " '.',\n", " '.',\n", " '.',\n", " 'x'): Counter({3: 10, 5: 8, 6: 30, 7: 7}),\n", " ('x',\n", " 'o',\n", " '.',\n", " '.',\n", " '.',\n", " 'x',\n", " 'o',\n", " 'x',\n", " '.'): Counter({2: 1, 3: 1, 4: 1, 8: 2}),\n", " ('x', 'x', 'o', 'o', 'x', '.', 'x', 'o', '.'): Counter({5: 1, 8: 3}),\n", " ('x', 'o', 'o', '.', '.', 'x', 'x', '.', 'o'): Counter({3: 3, 4: 5, 7: 4}),\n", " ('o',\n", " 'x',\n", " '.',\n", " 'x',\n", " 'o',\n", " 'x',\n", " '.',\n", " '.',\n", " '.'): Counter({2: 11, 6: 6, 7: 4, 8: 4}),\n", " ('x',\n", " 'o',\n", " '.',\n", " '.',\n", " 'x',\n", " 'o',\n", " 'x',\n", " '.',\n", " 'o'): Counter({2: 174, 3: 455, 7: 1}),\n", " ('x', 'o', 'x', 'o', '.', 'o', 'x', '.', 'x'): Counter({4: 14, 7: 1}),\n", " ('x',\n", " 'x',\n", " 'o',\n", " '.',\n", " 'x',\n", " '.',\n", " '.',\n", " 'o',\n", " '.'): Counter({3: 1, 5: 1, 6: 1, 8: 15}),\n", " ('x', 'o', 'o', '.', 'x', '.', 'x', '.', 'o'): Counter({3: 726, 5: 5, 7: 1}),\n", " ('o',\n", " 'x',\n", " '.',\n", " 'x',\n", " '.',\n", " 'x',\n", " '.',\n", " 'o',\n", " '.'): Counter({2: 3, 4: 4, 6: 4, 8: 2}),\n", " ('x',\n", " 'o',\n", " '.',\n", " '.',\n", " 'x',\n", " '.',\n", " 'o',\n", " 'x',\n", " '.'): Counter({2: 1, 3: 1, 5: 1, 8: 1}),\n", " ('x',\n", " 'o',\n", " '.',\n", " '.',\n", " '.',\n", " '.',\n", " 'o',\n", " '.',\n", " 'x'): Counter({2: 3, 3: 2, 4: 8, 5: 4, 7: 4}),\n", " ('x', 'x', '.', '.', 'o', 'o', 'x', 'o', '.'): Counter({2: 7, 3: 6, 8: 2}),\n", " ('x',\n", " 'x',\n", " '.',\n", " 'o',\n", " '.',\n", " 'x',\n", " 'o',\n", " '.',\n", " '.'): Counter({2: 5, 4: 1, 7: 1, 8: 1}),\n", " ('x', 'x', 'o', 'o', 'x', 'o', 'x', '.', '.'): Counter({7: 1, 8: 22}),\n", " ('x', 'x', 'o', 'x', '.', 'x', 'o', 'o', '.'): Counter({4: 3, 8: 10}),\n", " ('x', 'x', 'o', 'o', '.', '.', '.', 'o', 'x'): Counter({4: 5, 5: 4, 6: 3}),\n", " ('o', 'x', 'o', 'x', '.', 'x', 'o', 'x', '.'): Counter({4: 5, 8: 3}),\n", " ('x', 'x', '.', 'o', 'o', '.', '.', 'o', 'x'): Counter({2: 11, 5: 5, 6: 2}),\n", " ('x', 'x', 'o', 'o', '.', '.', 'x', 'o', 'x'): Counter({4: 3, 5: 1}),\n", " ('o',\n", " 'x',\n", " '.',\n", " '.',\n", " '.',\n", " '.',\n", " '.',\n", " 'x',\n", " '.'): Counter({2: 1, 3: 1, 4: 8, 5: 3, 6: 5, 8: 2}),\n", " ('x',\n", " 'x',\n", " '.',\n", " '.',\n", " 'x',\n", " 'o',\n", " '.',\n", " '.',\n", " 'o'): Counter({2: 23, 3: 1, 6: 1, 7: 2}),\n", " ('o', 'x', '.', 'o', 'x', 'x', '.', '.', 'o'): Counter({2: 1, 6: 20, 7: 26}),\n", " ('x',\n", " 'x',\n", " 'o',\n", " '.',\n", " 'x',\n", " 'o',\n", " 'o',\n", " '.',\n", " '.'): Counter({3: 1, 7: 182, 8: 177}),\n", " ('x', 'x', '.', 'o', '.', 'o', '.', 'o', 'x'): Counter({2: 6, 4: 6, 6: 3}),\n", " ('x',\n", " 'o',\n", " '.',\n", " '.',\n", " '.',\n", " '.',\n", " '.',\n", " '.',\n", " 'x'): Counter({2: 1, 3: 1, 4: 1, 5: 1, 6: 1, 7: 1}),\n", " ('x',\n", " 'o',\n", " '.',\n", " 'o',\n", " '.',\n", " 'x',\n", " '.',\n", " '.',\n", " '.'): Counter({2: 4, 4: 3, 6: 3, 7: 5, 8: 5}),\n", " ('x', 'x', 'o', 'x', 'o', 'o', '.', '.', 'x'): Counter({6: 18, 7: 1}),\n", " ('x',\n", " 'x',\n", " 'o',\n", " '.',\n", " '.',\n", " 'o',\n", " '.',\n", " '.',\n", " 'x'): Counter({3: 1, 4: 13, 6: 1, 7: 1}),\n", " ('o',\n", " 'x',\n", " '.',\n", " 'x',\n", " '.',\n", " 'x',\n", " '.',\n", " '.',\n", " 'o'): Counter({2: 2, 4: 3, 6: 4, 7: 2}),\n", " ('.',\n", " 'x',\n", " '.',\n", " 'x',\n", " 'o',\n", " '.',\n", " '.',\n", " '.',\n", " '.'): Counter({0: 15, 2: 6, 5: 1, 6: 1, 7: 1, 8: 7}),\n", " ('o', 'x', '.', '.', 'x', 'x', 'o', 'o', '.'): Counter({2: 1, 3: 22, 8: 1}),\n", " ('x', 'x', 'o', 'x', 'o', '.', '.', 'o', 'x'): Counter({5: 1, 6: 25}),\n", " ('x', 'x', 'o', 'o', 'x', 'x', 'o', '.', '.'): Counter({7: 1, 8: 1}),\n", " ('x',\n", " '.',\n", " 'o',\n", " '.',\n", " '.',\n", " 'x',\n", " '.',\n", " '.',\n", " 'o'): Counter({1: 3, 3: 4, 4: 5, 6: 4, 7: 3}),\n", " ('x', 'o', '.', 'o', 'x', 'x', '.', 'x', 'o'): Counter({2: 3, 6: 3}),\n", " ('x',\n", " 'x',\n", " 'o',\n", " 'o',\n", " '.',\n", " '.',\n", " '.',\n", " 'x',\n", " '.'): Counter({4: 7, 5: 4, 6: 2, 8: 1}),\n", " ('x',\n", " 'x',\n", " 'o',\n", " '.',\n", " 'x',\n", " 'o',\n", " '.',\n", " '.',\n", " '.'): Counter({3: 1, 6: 1, 7: 2, 8: 20}),\n", " ('x', 'o', 'x', 'o', '.', 'o', '.', 'x', '.'): Counter({4: 3, 6: 3, 8: 2}),\n", " ('x', 'o', 'o', '.', 'x', '.', '.', 'x', 'o'): Counter({3: 1, 5: 11, 6: 1}),\n", " ('x',\n", " 'x',\n", " '.',\n", " '.',\n", " 'o',\n", " '.',\n", " '.',\n", " 'x',\n", " 'o'): Counter({2: 6, 3: 1, 5: 3, 6: 2}),\n", " ('x', 'o', 'x', '.', 'o', '.', 'o', 'x', '.'): Counter({3: 3, 5: 5, 8: 4}),\n", " ('x',\n", " '.',\n", " 'o',\n", " '.',\n", " '.',\n", " 'x',\n", " 'o',\n", " '.',\n", " '.'): Counter({1: 3, 3: 3, 4: 4, 7: 5, 8: 3}),\n", " ('x', 'x', '.', 'o', 'o', '.', 'x', 'o', '.'): Counter({2: 9, 5: 3, 8: 1}),\n", " ('x', 'x', 'o', '.', 'x', 'o', 'x', 'o', '.'): Counter({3: 1, 8: 24}),\n", " ('x', 'x', '.', 'o', 'x', '.', '.', 'o', 'o'): Counter({2: 419, 5: 1, 6: 5}),\n", " ('o', 'x', 'o', 'x', 'x', '.', '.', '.', 'o'): Counter({5: 47, 6: 1, 7: 80}),\n", " ('x',\n", " 'x',\n", " '.',\n", " 'o',\n", " '.',\n", " 'o',\n", " '.',\n", " '.',\n", " '.'): Counter({2: 9, 4: 4, 6: 2, 7: 2, 8: 3}),\n", " ('x',\n", " 'o',\n", " '.',\n", " '.',\n", " 'x',\n", " 'x',\n", " 'o',\n", " '.',\n", " '.'): Counter({2: 1, 3: 1, 7: 1, 8: 1}),\n", " ('x', 'x', 'o', '.', 'x', 'x', 'o', 'o', '.'): Counter({3: 1, 8: 24}),\n", " ('o',\n", " 'x',\n", " '.',\n", " 'x',\n", " '.',\n", " 'o',\n", " '.',\n", " '.',\n", " '.'): Counter({2: 4, 4: 3, 6: 3, 7: 3, 8: 3}),\n", " ('x', 'x', '.', 'o', 'o', '.', 'o', '.', 'x'): Counter({2: 9, 5: 2, 7: 1}),\n", " ('x', 'o', 'x', '.', '.', '.', 'x', 'o', 'o'): Counter({3: 5, 4: 5, 5: 3}),\n", " ('x',\n", " 'x',\n", " '.',\n", " 'o',\n", " '.',\n", " '.',\n", " '.',\n", " '.',\n", " 'o'): Counter({2: 8, 4: 4, 5: 3, 6: 4, 7: 2}),\n", " ('x', 'x', 'o', '.', '.', 'x', 'o', 'o', '.'): Counter({3: 1, 4: 2, 8: 1}),\n", " ('x',\n", " 'x',\n", " '.',\n", " '.',\n", " 'x',\n", " 'o',\n", " 'o',\n", " '.',\n", " '.'): Counter({2: 1, 3: 1, 7: 1, 8: 1}),\n", " ('x', 'x', '.', '.', 'o', 'x', '.', 'o', 'o'): Counter({2: 16, 3: 1, 6: 11}),\n", " ('x', 'x', 'o', 'o', '.', 'x', 'o', 'x', '.'): Counter({4: 9, 8: 1}),\n", " ('x', 'x', 'o', '.', 'x', '.', 'o', 'o', '.'): Counter({3: 1, 5: 1, 8: 125}),\n", " ('o',\n", " 'x',\n", " '.',\n", " '.',\n", " 'o',\n", " '.',\n", " '.',\n", " 'x',\n", " '.'): Counter({2: 1, 3: 1, 5: 1, 6: 2, 8: 1}),\n", " ('x', 'x', '.', 'o', 'o', '.', 'o', 'x', '.'): Counter({2: 10, 5: 4, 8: 1}),\n", " ('x',\n", " 'x',\n", " '.',\n", " 'o',\n", " '.',\n", " '.',\n", " 'x',\n", " '.',\n", " 'o'): Counter({2: 18, 4: 1, 5: 2, 7: 1}),\n", " ('x',\n", " 'o',\n", " 'o',\n", " '.',\n", " '.',\n", " 'x',\n", " '.',\n", " '.',\n", " '.'): Counter({3: 5, 4: 6, 6: 4, 7: 4, 8: 2}),\n", " ('x',\n", " 'x',\n", " 'o',\n", " '.',\n", " '.',\n", " '.',\n", " '.',\n", " '.',\n", " '.'): Counter({3: 2, 4: 4, 5: 3, 6: 5, 7: 2, 8: 3}),\n", " ('x', 'x', '.', 'o', 'o', 'x', 'o', 'o', 'x'): Counter({2: 12}),\n", " ('x', 'x', 'o', 'o', '.', '.', '.', 'x', 'o'): Counter({4: 3, 5: 3, 6: 1}),\n", " ('x', 'o', 'o', '.', 'x', 'x', 'x', 'o', 'o'): Counter({3: 504}),\n", " ('x', 'x', 'o', 'o', 'o', '.', 'x', 'o', 'x'): Counter({5: 3}),\n", " ('x',\n", " '.',\n", " 'x',\n", " '.',\n", " '.',\n", " '.',\n", " '.',\n", " 'o',\n", " '.'): Counter({1: 1, 3: 1, 4: 1, 5: 1, 6: 1, 8: 1}),\n", " ('x',\n", " '.',\n", " '.',\n", " '.',\n", " 'o',\n", " 'x',\n", " '.',\n", " '.',\n", " '.'): Counter({1: 12, 2: 11, 3: 2, 6: 1, 7: 33, 8: 2}),\n", " ('x',\n", " 'x',\n", " '.',\n", " 'o',\n", " '.',\n", " 'x',\n", " '.',\n", " 'o',\n", " '.'): Counter({2: 2, 4: 1, 6: 1, 8: 2}),\n", " ('x',\n", " 'o',\n", " '.',\n", " '.',\n", " 'x',\n", " 'x',\n", " 'o',\n", " '.',\n", " 'o'): Counter({2: 1, 3: 452, 7: 12}),\n", " ('x',\n", " '.',\n", " 'o',\n", " '.',\n", " 'x',\n", " 'x',\n", " 'o',\n", " '.',\n", " 'o'): Counter({1: 1, 3: 606, 7: 692}),\n", " ('o',\n", " 'x',\n", " '.',\n", " 'o',\n", " '.',\n", " 'x',\n", " '.',\n", " 'x',\n", " '.'): Counter({2: 3, 4: 3, 6: 3, 8: 3}),\n", " ('o',\n", " 'x',\n", " 'o',\n", " 'x',\n", " '.',\n", " '.',\n", " '.',\n", " 'x',\n", " '.'): Counter({4: 3, 5: 2, 6: 4, 8: 2}),\n", " ('o',\n", " 'x',\n", " '.',\n", " '.',\n", " '.',\n", " 'x',\n", " '.',\n", " '.',\n", " 'o'): Counter({2: 2, 3: 1, 4: 5, 6: 4, 7: 4}),\n", " ('x', 'x', 'o', 'o', 'o', '.', '.', 'x', 'x'): Counter({5: 10, 6: 14}),\n", " ('x',\n", " '.',\n", " '.',\n", " '.',\n", " 'x',\n", " '.',\n", " '.',\n", " '.',\n", " 'o'): Counter({1: 1, 2: 1, 3: 1, 5: 1, 6: 1, 7: 1}),\n", " ('x',\n", " 'x',\n", " '.',\n", " '.',\n", " 'o',\n", " 'x',\n", " '.',\n", " 'o',\n", " '.'): Counter({2: 4, 3: 1, 6: 4, 8: 1}),\n", " ('x',\n", " 'o',\n", " '.',\n", " '.',\n", " 'o',\n", " '.',\n", " 'x',\n", " '.',\n", " 'x'): Counter({2: 1, 3: 1, 5: 1, 7: 36}),\n", " ('o', 'x', '.', 'x', 'x', 'o', '.', 'o', '.'): Counter({2: 14, 6: 8, 8: 3}),\n", " ('x',\n", " 'x',\n", " '.',\n", " 'x',\n", " '.',\n", " 'o',\n", " '.',\n", " 'o',\n", " '.'): Counter({2: 1, 4: 1, 6: 2, 8: 2}),\n", " ('x',\n", " '.',\n", " 'x',\n", " '.',\n", " '.',\n", " '.',\n", " 'o',\n", " 'o',\n", " '.'): Counter({1: 12, 3: 1, 4: 1, 5: 2, 8: 9}),\n", " ('x', 'x', 'o', 'o', '.', 'o', 'o', 'x', 'x'): Counter({4: 7}),\n", " ('x', 'x', 'o', 'x', 'o', '.', '.', '.', 'o'): Counter({5: 1, 6: 13, 7: 1}),\n", " ('x', 'x', 'o', 'x', 'o', 'x', '.', 'o', '.'): Counter({6: 9, 8: 1}),\n", " ('o',\n", " 'x',\n", " '.',\n", " 'o',\n", " '.',\n", " 'x',\n", " '.',\n", " '.',\n", " '.'): Counter({2: 3, 4: 1, 6: 4, 7: 4, 8: 3}),\n", " ('x', 'x', 'o', '.', 'o', 'o', 'x', 'x', '.'): Counter({3: 3, 8: 11}),\n", " ('x', 'x', 'o', 'x', 'o', 'x', '.', 'o', 'o'): Counter({6: 10}),\n", " ('x', 'x', '.', 'o', '.', 'o', 'x', 'o', '.'): Counter({2: 3, 4: 4, 8: 3}),\n", " ('x', 'x', '.', '.', 'o', 'o', 'o', 'x', '.'): Counter({2: 6, 3: 1, 8: 1}),\n", " ('x',\n", " 'x',\n", " 'o',\n", " '.',\n", " '.',\n", " 'x',\n", " '.',\n", " 'o',\n", " '.'): Counter({3: 3, 4: 4, 6: 3, 8: 4}),\n", " ('x',\n", " 'o',\n", " 'x',\n", " '.',\n", " 'o',\n", " '.',\n", " '.',\n", " '.',\n", " '.'): Counter({3: 1, 5: 1, 6: 1, 7: 2, 8: 1}),\n", " ('x', 'x', 'o', 'o', 'o', 'x', '.', '.', 'x'): Counter({6: 28, 7: 3}),\n", " ('x',\n", " 'o',\n", " 'o',\n", " '.',\n", " 'x',\n", " '.',\n", " 'x',\n", " '.',\n", " '.'): Counter({3: 1, 5: 1, 7: 1, 8: 1}),\n", " ('x', 'x', '.', 'o', 'o', '.', 'x', 'o', 'x'): Counter({2: 3, 5: 49}),\n", " ('x', 'x', 'o', 'o', '.', 'x', 'o', '.', '.'): Counter({4: 6, 7: 3, 8: 2}),\n", " ('x',\n", " 'o',\n", " 'o',\n", " '.',\n", " '.',\n", " '.',\n", " 'x',\n", " '.',\n", " 'x'): Counter({3: 1, 4: 1, 5: 1, 7: 1}),\n", " ('x',\n", " 'x',\n", " '.',\n", " 'o',\n", " '.',\n", " 'o',\n", " '.',\n", " 'x',\n", " '.'): Counter({2: 1, 4: 10, 6: 1, 8: 1}),\n", " ('x', '.', 'o', '.', '.', 'x', 'o', 'x', 'o'): Counter({1: 4, 3: 4, 4: 3}),\n", " ('x',\n", " 'x',\n", " '.',\n", " 'x',\n", " '.',\n", " 'o',\n", " '.',\n", " '.',\n", " 'o'): Counter({2: 10, 4: 3, 6: 7, 7: 1}),\n", " ('x', 'x', 'o', 'o', '.', '.', 'o', 'x', 'x'): Counter({4: 14, 5: 1}),\n", " ('x', 'x', 'o', '.', '.', 'x', '.', 'o', 'o'): Counter({3: 2, 4: 3, 6: 4}),\n", " ('x', 'x', 'o', 'o', 'o', 'x', 'x', 'x', 'o'): Counter(),\n", " ('x',\n", " 'x',\n", " '.',\n", " '.',\n", " 'x',\n", " 'o',\n", " 'o',\n", " 'o',\n", " '.'): Counter({2: 163, 3: 1, 8: 254}),\n", " ('x',\n", " 'x',\n", " '.',\n", " 'o',\n", " 'x',\n", " 'o',\n", " 'o',\n", " '.',\n", " '.'): Counter({2: 371, 7: 385, 8: 140}),\n", " ('o',\n", " '.',\n", " '.',\n", " '.',\n", " 'x',\n", " 'x',\n", " '.',\n", " '.',\n", " '.'): Counter({1: 1, 2: 1, 3: 16, 6: 4, 7: 1, 8: 1}),\n", " ('o',\n", " 'x',\n", " 'o',\n", " 'x',\n", " '.',\n", " '.',\n", " '.',\n", " '.',\n", " '.'): Counter({4: 7, 5: 3, 6: 3, 7: 2, 8: 3}),\n", " ('x',\n", " 'o',\n", " 'x',\n", " '.',\n", " '.',\n", " '.',\n", " 'x',\n", " 'o',\n", " '.'): Counter({3: 1, 4: 33, 5: 1, 8: 1}),\n", " ('o',\n", " 'x',\n", " '.',\n", " 'x',\n", " '.',\n", " '.',\n", " '.',\n", " '.',\n", " 'o'): Counter({2: 3, 4: 3, 5: 3, 6: 3, 7: 3}),\n", " ('x', 'x', 'o', '.', '.', 'o', 'o', 'x', '.'): Counter({3: 2, 4: 4, 8: 5}),\n", " ('.',\n", " 'x',\n", " '.',\n", " 'o',\n", " 'o',\n", " '.',\n", " '.',\n", " 'x',\n", " '.'): Counter({0: 3, 2: 2, 5: 1, 6: 1, 8: 1}),\n", " ('x',\n", " 'x',\n", " '.',\n", " '.',\n", " '.',\n", " 'o',\n", " 'o',\n", " '.',\n", " 'x'): Counter({2: 1, 3: 1, 4: 1, 7: 1}),\n", " ('x',\n", " 'o',\n", " 'o',\n", " '.',\n", " 'x',\n", " 'o',\n", " 'x',\n", " '.',\n", " '.'): Counter({3: 230, 7: 1, 8: 300}),\n", " ('x',\n", " 'x',\n", " '.',\n", " '.',\n", " '.',\n", " 'o',\n", " '.',\n", " '.',\n", " 'o'): Counter({2: 3, 3: 2, 4: 1, 6: 2, 7: 1}),\n", " ('o',\n", " 'x',\n", " '.',\n", " '.',\n", " 'x',\n", " '.',\n", " 'o',\n", " '.',\n", " '.'): Counter({2: 1, 3: 155, 5: 1, 7: 244, 8: 1}),\n", " ('x',\n", " 'o',\n", " 'o',\n", " '.',\n", " '.',\n", " '.',\n", " 'x',\n", " '.',\n", " '.'): Counter({3: 8, 4: 8, 5: 4, 7: 3, 8: 4}),\n", " ('x',\n", " 'x',\n", " '.',\n", " '.',\n", " '.',\n", " '.',\n", " 'x',\n", " 'o',\n", " 'o'): Counter({2: 1, 3: 1, 4: 1, 5: 1}),\n", " ('x', 'x', 'o', '.', 'o', '.', 'x', 'x', 'o'): Counter({3: 3, 5: 10}),\n", " ('x', 'x', 'o', '.', '.', 'x', 'x', 'o', 'o'): Counter({3: 3, 4: 1}),\n", " ('x', 'x', 'o', '.', 'x', '.', 'o', '.', 'o'): Counter({3: 1, 5: 1, 7: 112}),\n", " ('o',\n", " 'o',\n", " '.',\n", " '.',\n", " 'x',\n", " 'x',\n", " '.',\n", " 'x',\n", " '.'): Counter({2: 13, 3: 5, 6: 1, 8: 2}),\n", " ('x', 'x', '.', 'o', 'o', 'x', 'x', 'o', '.'): Counter({2: 3, 8: 1}),\n", " ('x', 'x', 'o', 'o', '.', '.', 'x', 'x', 'o'): Counter({4: 3, 5: 13}),\n", " ('x',\n", " 'o',\n", " 'o',\n", " '.',\n", " 'x',\n", " 'x',\n", " 'o',\n", " '.',\n", " '.'): Counter({3: 427, 7: 696, 8: 139}),\n", " ('x', 'x', 'o', 'x', '.', 'o', '.', 'o', '.'): Counter({4: 3, 6: 3, 8: 6}),\n", " ('.',\n", " 'x',\n", " '.',\n", " '.',\n", " 'o',\n", " '.',\n", " '.',\n", " '.',\n", " '.'): Counter({0: 1, 2: 1, 3: 1, 5: 1, 6: 1, 7: 1, 8: 10}),\n", " ('x',\n", " 'o',\n", " '.',\n", " '.',\n", " 'x',\n", " 'o',\n", " 'x',\n", " '.',\n", " '.'): Counter({2: 1, 3: 1, 7: 1, 8: 1}),\n", " ('x', 'x', 'o', 'o', 'x', 'x', '.', 'o', 'o'): Counter({6: 3}),\n", " ('x',\n", " 'x',\n", " '.',\n", " '.',\n", " '.',\n", " 'o',\n", " 'o',\n", " '.',\n", " '.'): Counter({2: 8, 3: 3, 4: 5, 7: 3, 8: 4}),\n", " ('x',\n", " 'o',\n", " '.',\n", " '.',\n", " '.',\n", " '.',\n", " 'x',\n", " '.',\n", " '.'): Counter({2: 1, 3: 1, 4: 1, 5: 1, 7: 1, 8: 1}),\n", " ('x',\n", " 'o',\n", " '.',\n", " 'o',\n", " 'x',\n", " 'x',\n", " '.',\n", " 'o',\n", " '.'): Counter({2: 213, 6: 423, 8: 58}),\n", " ('x', 'x', 'o', '.', '.', 'x', 'o', 'x', 'o'): Counter({3: 2, 4: 6}),\n", " ('x', 'x', 'o', 'x', '.', 'o', 'o', 'o', 'x'): Counter({4: 7}),\n", " ('x',\n", " 'o',\n", " 'x',\n", " '.',\n", " '.',\n", " '.',\n", " 'o',\n", " 'x',\n", " '.'): Counter({3: 1, 4: 1, 5: 1, 8: 3}),\n", " ('x', 'x', '.', 'x', 'o', 'o', '.', 'o', '.'): Counter({2: 6, 6: 3, 8: 4}),\n", " ('x', 'x', '.', '.', '.', 'o', 'o', 'o', 'x'): Counter({2: 4, 3: 3, 4: 8}),\n", " ('x', 'x', 'o', 'o', 'x', 'o', 'x', 'o', '.'): Counter({8: 218}),\n", " ('x', 'o', 'x', 'o', 'o', '.', '.', '.', 'x'): Counter({5: 14, 6: 1, 7: 1}),\n", " ('x', 'x', '.', '.', 'o', 'x', 'x', 'o', 'o'): Counter({2: 1, 3: 1}),\n", " ('x',\n", " 'o',\n", " 'o',\n", " '.',\n", " 'x',\n", " '.',\n", " '.',\n", " 'x',\n", " '.'): Counter({3: 1, 5: 1, 6: 1, 8: 3}),\n", " ('x',\n", " 'x',\n", " '.',\n", " '.',\n", " 'o',\n", " 'o',\n", " '.',\n", " '.',\n", " 'x'): Counter({2: 7, 3: 11, 6: 2, 7: 1}),\n", " ('x',\n", " 'o',\n", " 'o',\n", " 'o',\n", " 'x',\n", " '.',\n", " '.',\n", " 'x',\n", " '.'): Counter({5: 5, 6: 21, 8: 574}),\n", " ('x',\n", " 'x',\n", " 'o',\n", " '.',\n", " '.',\n", " '.',\n", " 'x',\n", " 'o',\n", " '.'): Counter({3: 1, 4: 1, 5: 1, 8: 1}),\n", " ('x',\n", " '.',\n", " 'o',\n", " '.',\n", " 'x',\n", " '.',\n", " 'o',\n", " '.',\n", " '.'): Counter({1: 281, 3: 123, 5: 761, 7: 647, 8: 1751}),\n", " ('o',\n", " 'x',\n", " '.',\n", " '.',\n", " '.',\n", " 'x',\n", " '.',\n", " 'o',\n", " '.'): Counter({2: 2, 3: 4, 4: 3, 6: 1, 8: 5}),\n", " ('o',\n", " 'o',\n", " '.',\n", " '.',\n", " 'x',\n", " 'x',\n", " '.',\n", " '.',\n", " '.'): Counter({2: 277, 3: 1980, 6: 1, 7: 1, 8: 1}),\n", " ('x',\n", " '.',\n", " 'x',\n", " '.',\n", " '.',\n", " '.',\n", " 'o',\n", " '.',\n", " '.'): Counter({1: 1, 3: 1, 4: 1, 5: 1, 7: 1, 8: 1}),\n", " ('.',\n", " 'x',\n", " '.',\n", " 'o',\n", " '.',\n", " '.',\n", " '.',\n", " '.',\n", " '.'): Counter({0: 7, 2: 9, 4: 22, 5: 1, 6: 13, 7: 6, 8: 1}),\n", " ('x',\n", " 'x',\n", " '.',\n", " '.',\n", " 'o',\n", " '.',\n", " 'o',\n", " 'x',\n", " '.'): Counter({2: 9, 3: 3, 5: 1, 8: 4}),\n", " ('x',\n", " 'o',\n", " '.',\n", " '.',\n", " 'x',\n", " '.',\n", " '.',\n", " '.',\n", " 'o'): Counter({2: 1, 3: 426, 5: 70, 6: 482, 7: 6}),\n", " ('o',\n", " '.',\n", " '.',\n", " '.',\n", " 'o',\n", " 'x',\n", " '.',\n", " 'x',\n", " '.'): Counter({1: 1, 2: 2, 3: 2, 6: 2, 8: 5}),\n", " ('o',\n", " 'o',\n", " '.',\n", " '.',\n", " '.',\n", " 'x',\n", " '.',\n", " 'x',\n", " '.'): Counter({2: 2, 3: 1, 4: 1, 6: 1, 8: 1}),\n", " ('x', 'o', '.', '.', 'x', 'x', 'o', 'x', 'o'): Counter({2: 1, 3: 3}),\n", " ('x',\n", " 'o',\n", " '.',\n", " 'o',\n", " 'x',\n", " '.',\n", " '.',\n", " '.',\n", " '.'): Counter({2: 412, 5: 64, 6: 205, 7: 141, 8: 176}),\n", " ('x', '.', 'o', '.', 'x', 'x', 'o', 'x', 'o'): Counter({1: 1, 3: 1}),\n", " ('x',\n", " 'x',\n", " '.',\n", " 'o',\n", " 'o',\n", " '.',\n", " 'x',\n", " '.',\n", " '.'): Counter({2: 3, 5: 38, 7: 1, 8: 1}),\n", " ('x',\n", " 'o',\n", " '.',\n", " '.',\n", " '.',\n", " 'x',\n", " 'x',\n", " '.',\n", " 'o'): Counter({2: 1, 3: 3, 4: 3, 7: 1}),\n", " ('x', 'x', 'o', '.', 'o', 'x', 'x', 'o', '.'): Counter({3: 3, 8: 1}),\n", " ('x', 'x', 'o', 'o', '.', '.', 'x', '.', 'o'): Counter({4: 3, 5: 3, 7: 2}),\n", " ('x', 'x', 'o', 'o', 'o', 'x', 'x', '.', '.'): Counter({7: 3, 8: 3}),\n", " ('x',\n", " '.',\n", " 'o',\n", " '.',\n", " 'x',\n", " '.',\n", " '.',\n", " '.',\n", " 'o'): Counter({1: 1, 3: 2, 5: 2811, 6: 2, 7: 1}),\n", " ('x', 'x', '.', '.', 'x', 'o', 'x', 'o', 'o'): Counter({2: 21, 3: 1}),\n", " ('x',\n", " 'o',\n", " 'o',\n", " '.',\n", " '.',\n", " '.',\n", " '.',\n", " '.',\n", " 'x'): Counter({3: 2, 4: 4, 5: 5, 6: 4, 7: 4}),\n", " ('x', 'x', 'o', '.', 'x', 'x', '.', 'o', 'o'): Counter({3: 3, 6: 16}),\n", " ('x', 'o', 'x', '.', '.', '.', 'o', 'x', 'o'): Counter({3: 3, 4: 3, 5: 3}),\n", " ('x',\n", " '.',\n", " '.',\n", " '.',\n", " '.',\n", " 'x',\n", " '.',\n", " '.',\n", " 'o'): Counter({1: 1, 2: 2, 3: 2, 4: 2, 6: 9, 7: 2}),\n", " ('x', 'o', 'o', 'o', 'x', 'x', '.', 'x', 'o'): Counter({6: 3}),\n", " ('x', 'x', 'o', '.', 'o', 'x', 'x', 'o', 'o'): Counter({3: 43}),\n", " ('x',\n", " 'x',\n", " '.',\n", " 'o',\n", " 'o',\n", " '.',\n", " '.',\n", " '.',\n", " 'x'): Counter({2: 6, 5: 16, 6: 1, 7: 2}),\n", " ('x',\n", " '.',\n", " 'x',\n", " '.',\n", " 'o',\n", " '.',\n", " '.',\n", " 'o',\n", " '.'): Counter({1: 17, 3: 1, 5: 1, 6: 3, 8: 2}),\n", " ('x',\n", " 'o',\n", " 'o',\n", " '.',\n", " 'x',\n", " '.',\n", " 'x',\n", " 'o',\n", " '.'): Counter({3: 460, 5: 110, 8: 403}),\n", " ('x', 'x', 'o', '.', 'o', 'o', 'x', '.', 'x'): Counter({3: 22, 7: 1}),\n", " ('x', 'x', '.', 'o', '.', 'o', 'x', '.', 'o'): Counter({2: 5, 4: 4, 7: 3}),\n", " ('o', 'x', '.', '.', 'o', 'x', 'o', 'x', '.'): Counter({2: 1, 3: 1, 8: 1}),\n", " ('x',\n", " 'x',\n", " '.',\n", " '.',\n", " 'o',\n", " '.',\n", " 'x',\n", " '.',\n", " 'o'): Counter({2: 1, 3: 1, 5: 1, 7: 1}),\n", " ('o', 'x', 'o', 'x', '.', 'x', '.', 'o', '.'): Counter({4: 6, 6: 3, 8: 3}),\n", " ('x',\n", " 'o',\n", " 'x',\n", " '.',\n", " '.',\n", " '.',\n", " '.',\n", " '.',\n", " '.'): Counter({3: 1, 4: 3, 5: 1, 6: 1, 7: 1, 8: 1}),\n", " ('x',\n", " 'x',\n", " 'o',\n", " 'x',\n", " '.',\n", " '.',\n", " 'o',\n", " '.',\n", " '.'): Counter({4: 5, 5: 3, 7: 4, 8: 3}),\n", " ('o',\n", " 'x',\n", " '.',\n", " '.',\n", " '.',\n", " 'x',\n", " 'o',\n", " 'x',\n", " '.'): Counter({2: 2, 3: 5, 4: 4, 8: 3}),\n", " ('x', 'x', '.', 'o', 'o', 'x', 'o', '.', '.'): Counter({2: 9, 7: 3, 8: 2}),\n", " ('x',\n", " 'x',\n", " '.',\n", " 'o',\n", " 'x',\n", " '.',\n", " 'o',\n", " '.',\n", " 'o'): Counter({2: 46, 5: 1, 7: 501}),\n", " ('x',\n", " '.',\n", " 'x',\n", " '.',\n", " 'o',\n", " '.',\n", " '.',\n", " '.',\n", " '.'): Counter({1: 39, 3: 1, 5: 1, 6: 1, 7: 1, 8: 1}),\n", " ('o',\n", " 'x',\n", " 'o',\n", " 'x',\n", " 'x',\n", " '.',\n", " '.',\n", " '.',\n", " '.'): Counter({5: 1, 6: 1, 7: 1, 8: 1}),\n", " ('x',\n", " 'x',\n", " '.',\n", " 'x',\n", " 'o',\n", " 'o',\n", " '.',\n", " '.',\n", " '.'): Counter({2: 1, 6: 1, 7: 1, 8: 1}),\n", " ('x', 'x', 'o', 'o', 'o', '.', '.', 'x', '.'): Counter({5: 2, 6: 2, 8: 1}),\n", " ('x', 'x', '.', '.', '.', 'o', 'o', 'x', 'o'): Counter({2: 3, 3: 1, 4: 6}),\n", " ('x', 'x', 'o', '.', 'o', 'o', '.', '.', 'x'): Counter({3: 1, 6: 5, 7: 1}),\n", " ('x', 'x', 'o', 'x', '.', '.', '.', 'o', 'o'): Counter({4: 2, 5: 3, 6: 3}),\n", " ('o',\n", " 'x',\n", " '.',\n", " '.',\n", " '.',\n", " 'x',\n", " 'o',\n", " '.',\n", " '.'): Counter({2: 3, 3: 5, 4: 7, 7: 3, 8: 4}),\n", " ('x',\n", " '.',\n", " 'o',\n", " '.',\n", " '.',\n", " 'x',\n", " '.',\n", " '.',\n", " '.'): Counter({1: 1, 3: 1, 4: 3, 6: 5, 7: 4, 8: 2}),\n", " ('x',\n", " 'x',\n", " '.',\n", " '.',\n", " '.',\n", " 'o',\n", " 'x',\n", " '.',\n", " 'o'): Counter({2: 6, 3: 5, 4: 2, 7: 1}),\n", " ('x', 'o', '.', '.', 'o', 'x', 'x', '.', 'o'): Counter({2: 1, 3: 14, 7: 4}),\n", " ('x',\n", " 'o',\n", " '.',\n", " '.',\n", " '.',\n", " 'o',\n", " '.',\n", " 'x',\n", " '.'): Counter({2: 3, 3: 3, 4: 5, 6: 4, 8: 4}),\n", " ('x', 'x', 'o', '.', '.', 'o', 'x', 'o', '.'): Counter({3: 4, 4: 1, 8: 6})},\n", " {('x', '.', 'o', '.', 'o', 'x', '.', 'x', 'o'): Counter({1: 1, 3: 1, 6: 4}),\n", " ('o',\n", " 'x',\n", " 'o',\n", " '.',\n", " '.',\n", " '.',\n", " '.',\n", " 'x',\n", " '.'): Counter({3: 3, 4: 3, 5: 3, 6: 5, 8: 3}),\n", " ('x', 'x', '.', 'o', '.', 'x', 'o', 'o', 'x'): Counter({2: 1, 4: 3}),\n", " ('o',\n", " '.',\n", " '.',\n", " '.',\n", " 'x',\n", " 'x',\n", " '.',\n", " 'o',\n", " '.'): Counter({1: 17, 2: 29, 3: 36, 6: 25, 8: 12}),\n", " ('x',\n", " 'o',\n", " '.',\n", " '.',\n", " 'x',\n", " 'x',\n", " '.',\n", " '.',\n", " 'o'): Counter({2: 1, 3: 1, 6: 1, 7: 1}),\n", " ('x',\n", " 'o',\n", " '.',\n", " '.',\n", " '.',\n", " 'o',\n", " 'x',\n", " '.',\n", " '.'): Counter({2: 20, 3: 532, 4: 78, 7: 130, 8: 261}),\n", " ('x', 'x', '.', '.', 'o', 'x', 'o', 'x', 'o'): Counter({2: 12, 3: 1}),\n", " ('x',\n", " 'x',\n", " '.',\n", " 'o',\n", " '.',\n", " '.',\n", " 'x',\n", " 'o',\n", " '.'): Counter({2: 2, 4: 4, 5: 3, 8: 3}),\n", " ('x',\n", " 'x',\n", " '.',\n", " '.',\n", " '.',\n", " '.',\n", " 'o',\n", " 'x',\n", " 'o'): Counter({2: 2, 3: 2, 4: 2, 5: 4}),\n", " ('x',\n", " 'o',\n", " '.',\n", " '.',\n", " '.',\n", " '.',\n", " '.',\n", " '.',\n", " '.'): Counter({2: 23, 3: 165, 4: 4422, 5: 56, 6: 432, 7: 203, 8: 34}),\n", " ('x',\n", " 'o',\n", " 'x',\n", " 'o',\n", " 'x',\n", " '.',\n", " '.',\n", " '.',\n", " '.'): Counter({5: 1, 6: 1, 7: 1, 8: 1}),\n", " ('x', 'o', 'o', '.', 'x', 'x', '.', 'x', 'o'): Counter({3: 3, 6: 1}),\n", " ('x',\n", " 'x',\n", " '.',\n", " '.',\n", " '.',\n", " '.',\n", " 'o',\n", " 'o',\n", " 'x'): Counter({2: 1, 3: 2, 4: 1, 5: 1}),\n", " ('x',\n", " 'x',\n", " 'o',\n", " '.',\n", " 'o',\n", " 'x',\n", " '.',\n", " '.',\n", " '.'): Counter({3: 3, 6: 38, 7: 2, 8: 3}),\n", " ('x', 'o', 'o', '.', 'x', 'o', '.', 'x', '.'): Counter({3: 1, 6: 1, 8: 47}),\n", " ('x', 'x', '.', 'o', '.', 'x', 'x', 'o', 'o'): Counter({2: 3, 4: 1}),\n", " ('x',\n", " 'o',\n", " '.',\n", " '.',\n", " 'o',\n", " 'x',\n", " '.',\n", " 'x',\n", " '.'): Counter({2: 1, 3: 1, 6: 4, 8: 1}),\n", " ('x', 'x', '.', '.', 'o', 'x', 'o', 'o', '.'): Counter({2: 9, 3: 1, 8: 1}),\n", " ('.',\n", " 'x',\n", " '.',\n", " 'x',\n", " 'o',\n", " 'o',\n", " '.',\n", " '.',\n", " '.'): Counter({0: 7, 2: 3, 6: 6, 7: 1, 8: 4}),\n", " ('o',\n", " 'x',\n", " '.',\n", " 'x',\n", " '.',\n", " '.',\n", " '.',\n", " '.',\n", " '.'): Counter({2: 3, 4: 5, 5: 3, 6: 4, 7: 3, 8: 3}),\n", " ('x', 'x', '.', 'o', 'o', 'x', '.', 'x', 'o'): Counter({2: 3, 6: 1}),\n", " ('o',\n", " '.',\n", " 'o',\n", " '.',\n", " 'x',\n", " '.',\n", " '.',\n", " 'x',\n", " '.'): Counter({1: 8, 3: 3, 5: 1, 6: 1, 8: 3}),\n", " ('x',\n", " 'x',\n", " 'o',\n", " '.',\n", " 'x',\n", " '.',\n", " '.',\n", " '.',\n", " 'o'): Counter({3: 1, 5: 9, 6: 1, 7: 15}),\n", " ('x', 'x', 'o', 'x', '.', 'x', 'o', '.', 'o'): Counter({4: 9, 7: 5}),\n", " ('x',\n", " '.',\n", " 'o',\n", " '.',\n", " '.',\n", " 'o',\n", " '.',\n", " 'x',\n", " '.'): Counter({1: 4, 3: 1, 4: 1, 6: 4, 8: 2}),\n", " ('x', 'x', 'o', 'o', '.', '.', 'o', '.', 'x'): Counter({4: 21, 5: 1, 7: 1}),\n", " ('x', 'x', '.', '.', 'x', 'o', '.', 'o', 'o'): Counter({2: 69, 3: 1, 6: 1}),\n", " ('o',\n", " 'x',\n", " '.',\n", " '.',\n", " 'o',\n", " 'x',\n", " '.',\n", " '.',\n", " '.'): Counter({2: 1, 3: 1, 6: 1, 7: 1, 8: 7}),\n", " ('x',\n", " 'o',\n", " '.',\n", " '.',\n", " 'x',\n", " '.',\n", " '.',\n", " 'o',\n", " '.'): Counter({2: 333, 3: 489, 5: 380, 6: 1023, 8: 837}),\n", " ('x',\n", " '.',\n", " 'o',\n", " '.',\n", " '.',\n", " 'x',\n", " '.',\n", " 'o',\n", " '.'): Counter({1: 3, 3: 3, 4: 5, 6: 3, 8: 2}),\n", " ('x', 'o', 'x', 'o', 'x', 'o', 'o', 'x', '.'): Counter({8: 785}),\n", " ('o', 'x', 'o', 'x', '.', '.', '.', 'x', 'o'): Counter({4: 5, 5: 2, 6: 3}),\n", " ('o',\n", " '.',\n", " '.',\n", " '.',\n", " '.',\n", " 'x',\n", " '.',\n", " '.',\n", " '.'): Counter({1: 1, 2: 18, 3: 3, 4: 2, 6: 3, 7: 1, 8: 3}),\n", " ('x',\n", " 'x',\n", " 'o',\n", " '.',\n", " '.',\n", " '.',\n", " '.',\n", " '.',\n", " 'o'): Counter({3: 2, 4: 2, 5: 4, 6: 3, 7: 3}),\n", " ('x', 'x', '.', 'o', '.', 'x', 'o', 'o', '.'): Counter({2: 4, 4: 2, 8: 8}),\n", " ('x',\n", " 'x',\n", " '.',\n", " '.',\n", " 'o',\n", " 'o',\n", " '.',\n", " '.',\n", " '.'): Counter({2: 14, 3: 13, 6: 2, 7: 1, 8: 2}),\n", " ('o',\n", " 'x',\n", " '.',\n", " '.',\n", " 'x',\n", " '.',\n", " '.',\n", " '.',\n", " 'o'): Counter({2: 103, 3: 56, 5: 276, 6: 90, 7: 784}),\n", " ('x',\n", " 'x',\n", " 'o',\n", " 'o',\n", " '.',\n", " 'x',\n", " '.',\n", " '.',\n", " '.'): Counter({4: 5, 6: 2, 7: 3, 8: 3}),\n", " ('o', 'x', 'o', 'x', 'o', 'x', '.', '.', '.'): Counter({6: 1, 7: 1, 8: 1}),\n", " ('x',\n", " 'o',\n", " '.',\n", " '.',\n", " 'x',\n", " 'o',\n", " '.',\n", " 'x',\n", " '.'): Counter({2: 1, 3: 1, 6: 1, 8: 1}),\n", " ('x', 'x', 'o', '.', 'x', '.', 'x', 'o', 'o'): Counter({3: 3, 5: 29}),\n", " ('x',\n", " '.',\n", " '.',\n", " '.',\n", " '.',\n", " 'o',\n", " '.',\n", " '.',\n", " '.'): Counter({1: 39, 2: 2317, 3: 58, 4: 1404, 6: 1572, 7: 7, 8: 22}),\n", " ('o',\n", " 'x',\n", " '.',\n", " '.',\n", " 'x',\n", " '.',\n", " '.',\n", " '.',\n", " '.'): Counter({2: 1, 3: 1, 5: 1, 6: 1, 7: 1, 8: 1}),\n", " ('x', 'x', 'o', '.', 'o', 'x', '.', '.', 'o'): Counter({3: 1, 6: 5, 7: 1}),\n", " ('x',\n", " 'x',\n", " '.',\n", " 'o',\n", " 'x',\n", " '.',\n", " '.',\n", " '.',\n", " 'o'): Counter({2: 1, 5: 1, 6: 1, 7: 1}),\n", " ('x', 'o', '.', 'o', 'x', 'x', '.', '.', 'o'): Counter({2: 17, 6: 22, 7: 3}),\n", " ('x', 'x', '.', 'o', 'x', 'x', 'o', 'o', '.'): Counter({2: 1, 8: 22}),\n", " ('x',\n", " 'o',\n", " '.',\n", " '.',\n", " '.',\n", " '.',\n", " '.',\n", " 'x',\n", " 'o'): Counter({2: 6, 3: 9, 4: 1, 5: 5, 6: 24}),\n", " ('x', 'x', '.', 'o', 'o', 'x', 'x', 'o', 'o'): Counter({2: 92}),\n", " ('x', 'x', '.', '.', 'o', 'o', '.', 'x', 'o'): Counter({2: 6, 3: 3, 6: 2}),\n", " ('x',\n", " 'o',\n", " '.',\n", " 'o',\n", " 'x',\n", " 'x',\n", " '.',\n", " '.',\n", " '.'): Counter({2: 1, 6: 1, 7: 1, 8: 1}),\n", " ('x',\n", " 'x',\n", " '.',\n", " 'o',\n", " '.',\n", " '.',\n", " 'o',\n", " 'x',\n", " '.'): Counter({2: 2, 4: 1, 5: 3, 8: 1}),\n", " ('x', 'o', 'x', '.', 'x', '.', 'o', 'o', '.'): Counter({3: 1, 5: 1, 8: 321}),\n", " ('x', 'x', 'o', 'o', '.', 'x', 'x', 'o', '.'): Counter({4: 3, 8: 3}),\n", " ('x',\n", " 'o',\n", " 'o',\n", " '.',\n", " 'x',\n", " 'x',\n", " '.',\n", " '.',\n", " '.'): Counter({3: 1, 6: 1, 7: 1, 8: 1}),\n", " ('x',\n", " 'x',\n", " '.',\n", " 'o',\n", " 'o',\n", " '.',\n", " '.',\n", " 'x',\n", " '.'): Counter({2: 4, 5: 7, 6: 3, 8: 2}),\n", " ('x',\n", " 'o',\n", " '.',\n", " '.',\n", " '.',\n", " '.',\n", " '.',\n", " 'o',\n", " 'x'): Counter({2: 1, 3: 1, 4: 21, 5: 1, 6: 1}),\n", " ('x',\n", " 'o',\n", " 'x',\n", " 'o',\n", " '.',\n", " '.',\n", " 'o',\n", " '.',\n", " 'x'): Counter({4: 272, 5: 75, 7: 140}),\n", " ('x',\n", " 'x',\n", " '.',\n", " '.',\n", " 'o',\n", " 'x',\n", " '.',\n", " '.',\n", " 'o'): Counter({2: 4, 3: 1, 6: 1, 7: 3}),\n", " ('x', 'x', '.', '.', '.', 'o', 'x', 'o', 'o'): Counter({2: 29, 3: 53, 4: 1}),\n", " ('x',\n", " 'x',\n", " '.',\n", " '.',\n", " 'o',\n", " '.',\n", " '.',\n", " 'o',\n", " 'x'): Counter({2: 3, 3: 1, 5: 1, 6: 2}),\n", " ('x',\n", " 'x',\n", " 'o',\n", " 'o',\n", " '.',\n", " '.',\n", " '.',\n", " '.',\n", " '.'): Counter({4: 26, 5: 2, 6: 1, 7: 1, 8: 3}),\n", " ('x', 'x', 'o', 'x', '.', 'x', '.', 'o', 'o'): Counter({4: 2, 6: 10}),\n", " ('x', 'o', 'o', 'o', 'x', 'x', '.', 'x', '.'): Counter({6: 1, 8: 3}),\n", " ('x', 'x', 'o', '.', 'o', 'x', 'x', '.', 'o'): Counter({3: 3, 7: 1}),\n", " ('x',\n", " 'x',\n", " 'o',\n", " '.',\n", " '.',\n", " '.',\n", " 'o',\n", " 'x',\n", " '.'): Counter({3: 3, 4: 5, 5: 2, 8: 3}),\n", " ('x',\n", " '.',\n", " '.',\n", " '.',\n", " 'o',\n", " 'x',\n", " '.',\n", " '.',\n", " 'o'): Counter({1: 4, 2: 3, 3: 3, 6: 3, 7: 4}),\n", " ('x', 'o', 'x', 'o', 'x', '.', '.', '.', 'o'): Counter({5: 7, 6: 703, 7: 6}),\n", " ('o',\n", " 'x',\n", " '.',\n", " 'x',\n", " 'x',\n", " '.',\n", " '.',\n", " '.',\n", " 'o'): Counter({2: 1, 5: 1, 6: 1, 7: 1}),\n", " ('x',\n", " 'x',\n", " 'o',\n", " 'o',\n", " 'x',\n", " '.',\n", " '.',\n", " '.',\n", " 'o'): Counter({5: 10, 6: 1, 7: 310}),\n", " ('x', 'x', '.', '.', 'o', '.', 'o', 'x', 'o'): Counter({2: 4, 3: 3, 5: 2}),\n", " ('x', 'x', 'o', 'o', 'o', 'x', '.', 'o', 'x'): Counter({6: 3}),\n", " ('.',\n", " 'x',\n", " '.',\n", " 'o',\n", " 'x',\n", " '.',\n", " '.',\n", " 'o',\n", " '.'): Counter({0: 28, 2: 18, 5: 1, 6: 26, 8: 19}),\n", " ('.',\n", " '.',\n", " '.',\n", " '.',\n", " 'x',\n", " '.',\n", " '.',\n", " '.',\n", " '.'): Counter({0: 1, 1: 1, 2: 1, 3: 1, 5: 1, 6: 1, 7: 1, 8: 1}),\n", " ('x', 'x', 'o', '.', 'x', 'x', 'o', '.', 'o'): Counter({3: 1, 7: 20}),\n", " ('x',\n", " 'o',\n", " 'o',\n", " 'o',\n", " 'x',\n", " 'x',\n", " '.',\n", " '.',\n", " '.'): Counter({6: 16, 7: 14, 8: 521}),\n", " ('.',\n", " 'x',\n", " '.',\n", " '.',\n", " '.',\n", " '.',\n", " '.',\n", " 'o',\n", " '.'): Counter({0: 6, 2: 9, 3: 3, 4: 3, 5: 4, 6: 4, 8: 15}),\n", " ('x', 'x', '.', 'o', '.', '.', 'x', 'o', 'o'): Counter({2: 88, 4: 4, 5: 5}),\n", " ('x', 'x', 'o', 'o', '.', 'x', 'x', 'o', 'o'): Counter({4: 3}),\n", " ('x',\n", " 'o',\n", " '.',\n", " '.',\n", " '.',\n", " '.',\n", " 'x',\n", " 'o',\n", " '.'): Counter({2: 1, 3: 367, 4: 125, 5: 1, 8: 1}),\n", " ('.',\n", " 'x',\n", " '.',\n", " 'o',\n", " 'x',\n", " '.',\n", " '.',\n", " '.',\n", " '.'): Counter({0: 1, 2: 1, 5: 1, 6: 1, 7: 1, 8: 1}),\n", " ('o',\n", " 'x',\n", " '.',\n", " 'o',\n", " '.',\n", " '.',\n", " '.',\n", " 'x',\n", " '.'): Counter({2: 5, 4: 5, 5: 3, 6: 3, 8: 1}),\n", " ('x',\n", " 'x',\n", " 'o',\n", " 'o',\n", " 'x',\n", " 'o',\n", " '.',\n", " '.',\n", " '.'): Counter({6: 1, 7: 219, 8: 115}),\n", " ('x', 'x', 'o', '.', 'x', 'o', '.', 'o', '.'): Counter({3: 1, 6: 1, 8: 63}),\n", " ('x',\n", " 'x',\n", " 'o',\n", " '.',\n", " '.',\n", " 'x',\n", " 'o',\n", " '.',\n", " '.'): Counter({3: 2, 4: 5, 7: 4, 8: 2}),\n", " 'human?': False,\n", " ('x', 'x', 'o', '.', 'o', 'o', '.', 'x', 'x'): Counter({3: 10, 6: 10}),\n", " ('x',\n", " 'x',\n", " '.',\n", " 'o',\n", " 'x',\n", " 'o',\n", " '.',\n", " '.',\n", " '.'): Counter({2: 1, 6: 1, 7: 1, 8: 1}),\n", " ('x', 'x', 'o', 'x', 'x', 'o', 'o', 'o', '.'): Counter({8: 6}),\n", " ('x', 'x', '.', 'x', 'o', 'o', '.', '.', 'o'): Counter({2: 11, 6: 5, 7: 2}),\n", " ('x', 'o', 'x', 'o', '.', '.', '.', 'o', 'x'): Counter({4: 88, 5: 49, 6: 1}),\n", " ('x',\n", " 'o',\n", " 'o',\n", " '.',\n", " 'x',\n", " '.',\n", " '.',\n", " '.',\n", " '.'): Counter({3: 859, 5: 437, 6: 368, 7: 16, 8: 706}),\n", " ('x',\n", " 'x',\n", " '.',\n", " 'o',\n", " '.',\n", " '.',\n", " '.',\n", " '.',\n", " '.'): Counter({2: 4, 4: 3, 5: 1, 6: 1, 7: 2, 8: 1}),\n", " ('x',\n", " '.',\n", " '.',\n", " '.',\n", " '.',\n", " 'x',\n", " '.',\n", " 'o',\n", " '.'): Counter({1: 2, 2: 3, 3: 3, 4: 9, 6: 1, 8: 3}),\n", " ('x', 'x', 'o', '.', 'x', '.', '.', 'o', 'o'): Counter({3: 1, 5: 1, 6: 1}),\n", " ('x',\n", " 'o',\n", " '.',\n", " '.',\n", " '.',\n", " 'x',\n", " '.',\n", " 'o',\n", " '.'): Counter({2: 1, 3: 2, 4: 18, 6: 1, 8: 1}),\n", " ('x', 'o', '.', 'o', '.', 'x', '.', 'x', 'o'): Counter({2: 3, 4: 3, 6: 3}),\n", " ('x', 'x', 'o', 'o', 'o', 'x', 'x', 'o', 'x'): Counter(),\n", " ('x',\n", " 'x',\n", " 'o',\n", " '.',\n", " 'o',\n", " '.',\n", " 'x',\n", " '.',\n", " '.'): Counter({3: 25, 5: 1, 7: 1, 8: 1}),\n", " ('x',\n", " 'x',\n", " '.',\n", " '.',\n", " 'o',\n", " '.',\n", " 'x',\n", " 'o',\n", " '.'): Counter({2: 1, 3: 1, 5: 1, 8: 1}),\n", " ('x', 'x', 'o', 'o', 'x', '.', 'x', 'o', 'o'): Counter({5: 3}),\n", " ('x',\n", " 'o',\n", " '.',\n", " '.',\n", " '.',\n", " 'o',\n", " '.',\n", " '.',\n", " 'x'): Counter({2: 2, 3: 4, 4: 4, 6: 4, 7: 8}),\n", " ('x', 'x', 'o', '.', '.', 'o', 'x', 'o', 'x'): Counter({3: 1, 4: 1}),\n", " ('x',\n", " '.',\n", " 'o',\n", " '.',\n", " '.',\n", " '.',\n", " '.',\n", " '.',\n", " 'x'): Counter({1: 2, 3: 2, 4: 5, 5: 3, 6: 3, 7: 4}),\n", " ('x',\n", " '.',\n", " 'o',\n", " '.',\n", " 'o',\n", " '.',\n", " '.',\n", " '.',\n", " 'x'): Counter({1: 1, 3: 1, 5: 1, 6: 1029, 7: 1}),\n", " ('x',\n", " '.',\n", " 'x',\n", " '.',\n", " 'o',\n", " '.',\n", " 'o',\n", " '.',\n", " '.'): Counter({1: 626, 3: 1, 5: 38, 7: 36, 8: 109}),\n", " ('x',\n", " 'x',\n", " '.',\n", " '.',\n", " 'x',\n", " '.',\n", " 'o',\n", " '.',\n", " 'o'): Counter({2: 2, 3: 1, 5: 1, 7: 16}),\n", " ('x', 'o', 'x', '.', 'x', '.', 'o', '.', 'o'): Counter({3: 1, 5: 1, 7: 3}),\n", " ('x',\n", " '.',\n", " 'o',\n", " '.',\n", " '.',\n", " 'x',\n", " '.',\n", " 'x',\n", " 'o'): Counter({1: 1, 3: 3, 4: 5, 6: 2}),\n", " ('x',\n", " '.',\n", " 'o',\n", " '.',\n", " 'x',\n", " '.',\n", " '.',\n", " 'o',\n", " '.'): Counter({1: 1, 3: 1435, 5: 279, 6: 358, 8: 516}),\n", " ('x', 'o', 'o', 'o', 'x', 'x', 'o', 'x', '.'): Counter({8: 189}),\n", " ('x', 'x', 'o', '.', 'o', '.', 'x', 'o', '.'): Counter({3: 60, 5: 3, 8: 7}),\n", " ('x', 'x', 'o', 'o', 'x', 'x', '.', '.', 'o'): Counter({6: 1, 7: 3}),\n", " ('x', 'x', 'o', '.', '.', '.', 'x', 'o', 'o'): Counter({3: 47, 4: 1, 5: 8}),\n", " ('x',\n", " '.',\n", " 'x',\n", " '.',\n", " 'o',\n", " '.',\n", " 'o',\n", " 'x',\n", " '.'): Counter({1: 1, 3: 1, 5: 1, 8: 1}),\n", " ('o', 'x', '.', 'x', 'o', 'x', '.', 'o', '.'): Counter({2: 3, 6: 1, 8: 3}),\n", " ('x',\n", " '.',\n", " '.',\n", " '.',\n", " 'o',\n", " 'x',\n", " '.',\n", " 'o',\n", " '.'): Counter({1: 1, 2: 1, 3: 2, 6: 1, 8: 1}),\n", " ('x', 'x', 'o', 'o', 'x', 'x', 'o', 'o', '.'): Counter({8: 285}),\n", " ('x',\n", " 'o',\n", " '.',\n", " '.',\n", " '.',\n", " '.',\n", " '.',\n", " 'x',\n", " '.'): Counter({2: 1, 3: 1, 4: 3, 5: 1, 6: 1, 8: 1}),\n", " ('x', 'x', 'o', '.', 'o', '.', '.', 'x', 'o'): Counter({3: 1, 5: 1, 6: 1}),\n", " ('x',\n", " 'x',\n", " 'o',\n", " '.',\n", " '.',\n", " '.',\n", " '.',\n", " 'x',\n", " 'o'): Counter({3: 4, 4: 5, 5: 5, 6: 4}),\n", " ('x', 'x', 'o', 'o', 'x', 'x', '.', 'o', '.'): Counter({6: 1, 8: 3}),\n", " ('x',\n", " 'o',\n", " 'x',\n", " '.',\n", " 'x',\n", " '.',\n", " '.',\n", " 'o',\n", " '.'): Counter({3: 1, 5: 1, 6: 1, 8: 1}),\n", " ('x', 'x', '.', '.', 'o', 'o', 'x', '.', 'o'): Counter({2: 23, 3: 5, 7: 1}),\n", " ('x', 'x', 'o', 'o', 'o', '.', 'x', 'x', '.'): Counter({5: 20, 8: 3}),\n", " ('x', 'x', 'o', 'o', 'o', 'x', 'x', 'o', '.'): Counter({8: 3}),\n", " ('o',\n", " '.',\n", " '.',\n", " '.',\n", " 'x',\n", " '.',\n", " '.',\n", " '.',\n", " '.'): Counter({1: 3913, 2: 1396, 3: 3356, 5: 1, 6: 2434, 7: 12, 8: 188}),\n", " ('x',\n", " '.',\n", " '.',\n", " '.',\n", " '.',\n", " 'x',\n", " '.',\n", " 'o',\n", " 'o'): Counter({1: 2, 2: 1, 3: 7, 4: 1, 6: 9}),\n", " ('x',\n", " 'x',\n", " '.',\n", " '.',\n", " 'o',\n", " '.',\n", " '.',\n", " '.',\n", " '.'): Counter({2: 103, 3: 1, 5: 1, 6: 1, 7: 1, 8: 1}),\n", " ('x',\n", " 'o',\n", " '.',\n", " '.',\n", " '.',\n", " '.',\n", " 'x',\n", " '.',\n", " 'o'): Counter({2: 127, 3: 309, 4: 732, 5: 9, 7: 78}),\n", " ('x', 'x', 'o', 'o', 'o', 'x', '.', 'x', '.'): Counter({6: 8, 8: 3}),\n", " ('x', 'o', 'x', 'o', 'o', '.', '.', 'x', '.'): Counter({5: 24, 6: 1, 8: 1}),\n", " ('x',\n", " 'o',\n", " 'o',\n", " '.',\n", " 'x',\n", " 'x',\n", " '.',\n", " '.',\n", " 'o'): Counter({3: 730, 6: 22, 7: 4}),\n", " ('x',\n", " '.',\n", " '.',\n", " '.',\n", " 'o',\n", " 'x',\n", " '.',\n", " 'x',\n", " 'o'): Counter({1: 1, 2: 2, 3: 3, 6: 5}),\n", " ('.',\n", " 'x',\n", " '.',\n", " 'o',\n", " '.',\n", " '.',\n", " '.',\n", " 'x',\n", " '.'): Counter({0: 1, 2: 2, 4: 7, 5: 3, 6: 2, 8: 1}),\n", " ('x', 'o', 'o', 'o', '.', 'x', '.', 'x', '.'): Counter({4: 6, 6: 4, 8: 10}),\n", " ('x',\n", " 'x',\n", " 'o',\n", " 'x',\n", " '.',\n", " '.',\n", " '.',\n", " 'o',\n", " '.'): Counter({4: 4, 5: 3, 6: 4, 8: 3}),\n", " ('x', 'x', '.', 'o', 'o', 'x', 'o', 'x', 'o'): Counter({2: 14}),\n", " ('x',\n", " 'o',\n", " '.',\n", " '.',\n", " 'x',\n", " '.',\n", " 'x',\n", " '.',\n", " 'o'): Counter({2: 1, 3: 1, 5: 1, 7: 1}),\n", " ('x',\n", " '.',\n", " '.',\n", " '.',\n", " '.',\n", " '.',\n", " '.',\n", " '.',\n", " 'o'): Counter({1: 3, 2: 1036, 3: 13, 4: 342, 5: 6, 6: 1250, 7: 1}),\n", " ('x', 'x', 'o', 'o', 'o', '.', 'x', '.', '.'): Counter({5: 3, 7: 1, 8: 1}),\n", " ('x', 'x', 'o', 'x', '.', 'o', 'o', '.', '.'): Counter({4: 1, 7: 1, 8: 1}),\n", " ('x', 'x', '.', 'o', '.', 'x', '.', 'o', 'o'): Counter({2: 8, 4: 1, 6: 5}),\n", " ('x', 'o', '.', '.', 'o', 'o', 'x', '.', 'x'): Counter({2: 1, 3: 50, 7: 29}),\n", " ('x',\n", " 'x',\n", " 'o',\n", " '.',\n", " 'x',\n", " '.',\n", " 'o',\n", " '.',\n", " '.'): Counter({3: 1, 5: 1, 7: 1, 8: 1}),\n", " ('x',\n", " 'o',\n", " 'x',\n", " 'o',\n", " '.',\n", " '.',\n", " '.',\n", " 'x',\n", " '.'): Counter({4: 3, 5: 4, 6: 3, 8: 2}),\n", " ('x', 'x', 'o', '.', '.', '.', 'o', 'o', 'x'): Counter({3: 1, 4: 23, 5: 1}),\n", " ('o',\n", " 'x',\n", " 'o',\n", " 'x',\n", " 'x',\n", " '.',\n", " 'o',\n", " '.',\n", " '.'): Counter({5: 54, 7: 52, 8: 137}),\n", " ('x',\n", " 'o',\n", " '.',\n", " '.',\n", " 'x',\n", " '.',\n", " 'o',\n", " '.',\n", " '.'): Counter({2: 7, 3: 25, 5: 183, 7: 112, 8: 1989}),\n", " ('x',\n", " 'o',\n", " 'o',\n", " '.',\n", " '.',\n", " 'o',\n", " 'x',\n", " '.',\n", " 'x'): Counter({3: 215, 4: 38, 7: 56}),\n", " ('x',\n", " '.',\n", " 'x',\n", " '.',\n", " 'o',\n", " '.',\n", " 'x',\n", " '.',\n", " 'o'): Counter({1: 5, 3: 1, 5: 2, 7: 1}),\n", " ('x',\n", " 'o',\n", " '.',\n", " '.',\n", " 'x',\n", " 'o',\n", " 'x',\n", " 'o',\n", " '.'): Counter({2: 228, 3: 248, 8: 194}),\n", " ('x', 'x', 'o', 'o', 'o', 'x', 'x', '.', 'o'): Counter({7: 3}),\n", " ('x',\n", " 'x',\n", " 'o',\n", " 'o',\n", " '.',\n", " '.',\n", " 'x',\n", " '.',\n", " '.'): Counter({4: 3, 5: 7, 7: 3, 8: 3}),\n", " ('x', 'x', 'o', '.', '.', 'o', 'o', '.', 'x'): Counter({3: 1, 4: 32, 7: 1}),\n", " ('x',\n", " 'x',\n", " '.',\n", " 'o',\n", " 'x',\n", " 'o',\n", " '.',\n", " 'o',\n", " '.'): Counter({2: 48, 6: 163, 8: 84}),\n", " ('x',\n", " 'x',\n", " '.',\n", " 'o',\n", " 'x',\n", " '.',\n", " '.',\n", " 'o',\n", " '.'): Counter({2: 1, 5: 1, 6: 1, 8: 1}),\n", " ('o', 'x', 'o', 'x', '.', 'x', 'o', '.', '.'): Counter({4: 4, 7: 2, 8: 3}),\n", " ('x',\n", " 'x',\n", " '.',\n", " 'o',\n", " '.',\n", " 'o',\n", " '.',\n", " '.',\n", " 'x'): Counter({2: 3, 4: 4, 6: 2, 7: 2}),\n", " ('x', 'x', 'o', 'x', '.', 'o', '.', 'o', 'x'): Counter({4: 1, 6: 1}),\n", " ('x', 'o', '.', '.', '.', 'x', 'o', 'x', 'o'): Counter({2: 3, 3: 3, 4: 5}),\n", " ('x', 'x', 'o', 'o', '.', 'o', '.', 'x', 'x'): Counter({4: 8, 6: 2}),\n", " ('x',\n", " 'o',\n", " '.',\n", " '.',\n", " 'o',\n", " '.',\n", " 'x',\n", " '.',\n", " '.'): Counter({2: 2, 3: 404, 5: 1, 7: 93, 8: 1}),\n", " ('x',\n", " 'x',\n", " 'o',\n", " 'o',\n", " 'x',\n", " '.',\n", " '.',\n", " '.',\n", " '.'): Counter({5: 1, 6: 1, 7: 1, 8: 1}),\n", " ('x', 'x', 'o', 'o', '.', 'o', 'x', '.', 'x'): Counter({4: 9, 7: 1}),\n", " ('x',\n", " '.',\n", " 'x',\n", " '.',\n", " '.',\n", " '.',\n", " 'o',\n", " 'x',\n", " 'o'): Counter({1: 3, 3: 2, 4: 2, 5: 2}),\n", " ('x', 'x', '.', 'o', 'o', 'x', 'x', '.', 'o'): Counter({2: 3, 7: 1}),\n", " ('x', 'o', 'o', '.', 'o', 'x', 'x', '.', '.'): Counter({3: 61, 7: 35, 8: 1}),\n", " ('x', 'x', 'o', 'o', '.', 'x', '.', 'x', 'o'): Counter({4: 3, 6: 1}),\n", " ('x', 'x', 'o', '.', '.', 'x', 'o', '.', 'o'): Counter({3: 1, 4: 2, 7: 1}),\n", " ('o',\n", " 'x',\n", " '.',\n", " '.',\n", " '.',\n", " '.',\n", " '.',\n", " 'x',\n", " 'o'): Counter({2: 3, 3: 3, 4: 4, 5: 3, 6: 3}),\n", " ('x', 'x', 'o', 'o', '.', 'x', 'x', '.', 'o'): Counter({4: 3, 7: 3}),\n", " ('x', 'x', 'o', 'o', 'o', 'x', '.', 'x', 'o'): Counter({6: 3}),\n", " ('x',\n", " 'x',\n", " '.',\n", " '.',\n", " 'x',\n", " 'o',\n", " '.',\n", " 'o',\n", " '.'): Counter({2: 1, 3: 1, 6: 1, 8: 1}),\n", " ('x', 'x', 'o', 'o', '.', 'o', 'x', 'o', 'x'): Counter({4: 173}),\n", " ('x',\n", " 'x',\n", " '.',\n", " '.',\n", " 'o',\n", " '.',\n", " '.',\n", " 'o',\n", " '.'): Counter({2: 22, 3: 4, 5: 8, 6: 6, 8: 5}),\n", " ('x', 'x', '.', 'o', 'o', '.', '.', 'x', 'o'): Counter({2: 5, 5: 4, 6: 2}),\n", " ('x', 'x', '.', 'o', 'x', 'o', 'x', 'o', '.'): Counter({2: 1, 8: 1}),\n", " ('o',\n", " 'x',\n", " '.',\n", " 'o',\n", " 'x',\n", " '.',\n", " '.',\n", " '.',\n", " '.'): Counter({2: 2, 5: 1, 6: 821, 7: 559, 8: 1}),\n", " ('x', 'x', 'o', 'o', '.', 'x', 'o', '.', 'x'): Counter({4: 7, 7: 2}),\n", " ('x', 'x', '.', 'o', 'x', 'x', 'o', '.', 'o'): Counter({2: 1, 7: 23}),\n", " ('x',\n", " 'x',\n", " '.',\n", " 'o',\n", " 'o',\n", " '.',\n", " '.',\n", " '.',\n", " '.'): Counter({2: 40, 5: 6, 6: 2, 7: 1, 8: 1}),\n", " ('x',\n", " '.',\n", " 'o',\n", " '.',\n", " 'o',\n", " '.',\n", " '.',\n", " 'x',\n", " '.'): Counter({1: 1, 3: 2, 5: 1, 6: 8, 8: 3}),\n", " ('x', 'x', '.', '.', 'o', 'o', 'o', '.', 'x'): Counter({2: 31, 3: 1, 7: 1}),\n", " ('o',\n", " 'x',\n", " '.',\n", " 'x',\n", " 'o',\n", " '.',\n", " '.',\n", " '.',\n", " '.'): Counter({2: 1, 5: 1, 6: 1, 7: 2, 8: 3}),\n", " ('.',\n", " 'x',\n", " '.',\n", " 'x',\n", " '.',\n", " 'o',\n", " '.',\n", " '.',\n", " '.'): Counter({0: 2, 2: 5, 4: 2, 6: 4, 7: 3, 8: 9}),\n", " ('x',\n", " 'x',\n", " 'o',\n", " '.',\n", " '.',\n", " '.',\n", " 'o',\n", " '.',\n", " 'x'): Counter({3: 3, 4: 3, 5: 2, 7: 3}),\n", " ('.',\n", " 'x',\n", " '.',\n", " '.',\n", " '.',\n", " '.',\n", " '.',\n", " '.',\n", " '.'): Counter({0: 1, 2: 1, 3: 1, 4: 109, 5: 1, 6: 1, 7: 1, 8: 1}),\n", " ('o', 'x', '.', '.', 'x', 'x', 'o', '.', 'o'): Counter({2: 1, 3: 43, 7: 38}),\n", " ('x',\n", " '.',\n", " 'o',\n", " '.',\n", " 'x',\n", " 'x',\n", " 'o',\n", " '.',\n", " '.'): Counter({1: 1, 3: 1, 7: 1, 8: 1}),\n", " ('x', 'x', 'o', 'x', 'o', 'o', '.', '.', '.'): Counter({6: 13, 7: 1, 8: 3}),\n", " ('x',\n", " 'o',\n", " 'x',\n", " '.',\n", " '.',\n", " '.',\n", " '.',\n", " 'o',\n", " '.'): Counter({3: 1, 4: 249, 5: 1, 6: 1, 8: 1}),\n", " ('x', 'o', '.', '.', 'x', 'o', '.', 'x', 'o'): Counter({2: 16, 3: 1, 6: 1}),\n", " ('x', 'x', '.', 'x', 'o', 'o', '.', 'o', 'x'): Counter({2: 1, 6: 1}),\n", " ('x', 'x', '.', 'o', '.', 'o', 'x', 'o', 'x'): Counter({2: 3, 4: 6}),\n", " ('.',\n", " 'x',\n", " '.',\n", " 'x',\n", " 'o',\n", " 'x',\n", " '.',\n", " 'o',\n", " '.'): Counter({0: 4, 2: 3, 6: 4, 8: 6}),\n", " ('x',\n", " '.',\n", " '.',\n", " '.',\n", " 'o',\n", " '.',\n", " '.',\n", " '.',\n", " '.'): Counter({1: 1, 2: 1, 3: 1, 5: 1, 6: 12, 7: 1, 8: 2418}),\n", " ('x',\n", " '.',\n", " 'o',\n", " '.',\n", " 'o',\n", " 'x',\n", " '.',\n", " 'x',\n", " '.'): Counter({1: 2, 3: 2, 6: 17, 8: 8}),\n", " ('x', 'x', 'o', 'o', '.', 'x', 'o', 'x', 'o'): Counter({4: 11}),\n", " ('x',\n", " 'x',\n", " 'o',\n", " '.',\n", " '.',\n", " 'x',\n", " '.',\n", " '.',\n", " 'o'): Counter({3: 3, 4: 3, 6: 3, 7: 3}),\n", " ('x',\n", " 'o',\n", " 'o',\n", " '.',\n", " 'x',\n", " 'x',\n", " '.',\n", " 'o',\n", " '.'): Counter({3: 145, 6: 240, 8: 200}),\n", " ('x',\n", " 'o',\n", " 'x',\n", " '.',\n", " '.',\n", " '.',\n", " 'o',\n", " '.',\n", " '.'): Counter({3: 1, 4: 4, 5: 8, 7: 14, 8: 736}),\n", " ('x', 'x', '.', 'o', 'x', 'o', 'x', 'o', 'o'): Counter({2: 287}),\n", " ('x',\n", " 'o',\n", " '.',\n", " '.',\n", " 'o',\n", " 'x',\n", " '.',\n", " '.',\n", " '.'): Counter({2: 1, 3: 1, 6: 1, 7: 8, 8: 1}),\n", " ('o', 'x', 'o', 'x', 'o', '.', '.', 'x', '.'): Counter({5: 1, 6: 3, 8: 1}),\n", " ('x',\n", " 'x',\n", " 'o',\n", " '.',\n", " '.',\n", " '.',\n", " 'x',\n", " '.',\n", " 'o'): Counter({3: 3, 4: 3, 5: 6, 7: 1}),\n", " ('x',\n", " 'x',\n", " '.',\n", " '.',\n", " 'x',\n", " '.',\n", " 'o',\n", " 'o',\n", " '.'): Counter({2: 1, 3: 1, 5: 1, 8: 23}),\n", " ('o', 'x', '.', 'x', '.', 'x', '.', 'o', 'o'): Counter({2: 3, 4: 3, 6: 5}),\n", " ('o', 'x', '.', 'o', 'o', 'x', '.', 'x', '.'): Counter({2: 2, 6: 3, 8: 1}),\n", " ('x',\n", " 'o',\n", " 'o',\n", " '.',\n", " '.',\n", " 'x',\n", " 'x',\n", " '.',\n", " '.'): Counter({3: 2, 4: 1, 7: 2, 8: 2}),\n", " ('x',\n", " 'x',\n", " '.',\n", " '.',\n", " '.',\n", " 'x',\n", " '.',\n", " 'o',\n", " 'o'): Counter({2: 3, 3: 3, 4: 3, 6: 5}),\n", " ('x',\n", " 'x',\n", " 'o',\n", " '.',\n", " 'o',\n", " '.',\n", " '.',\n", " 'x',\n", " '.'): Counter({3: 5, 5: 16, 6: 26, 8: 8}),\n", " ('x', 'o', 'o', '.', 'o', 'x', '.', 'x', '.'): Counter({3: 1, 6: 10, 8: 1}),\n", " ('.',\n", " 'x',\n", " '.',\n", " 'x',\n", " 'x',\n", " 'o',\n", " '.',\n", " 'o',\n", " '.'): Counter({0: 2, 2: 5, 6: 3, 8: 5}),\n", " ('x',\n", " 'x',\n", " '.',\n", " '.',\n", " 'x',\n", " 'o',\n", " 'o',\n", " '.',\n", " 'o'): Counter({2: 178, 3: 1, 7: 198}),\n", " ('x', 'x', 'o', 'o', '.', 'x', 'o', 'o', 'x'): Counter({4: 8}),\n", " ('x',\n", " 'x',\n", " '.',\n", " 'o',\n", " 'x',\n", " 'o',\n", " '.',\n", " '.',\n", " 'o'): Counter({2: 215, 6: 1, 7: 112}),\n", " ('x', 'x', 'o', 'x', 'x', 'o', '.', 'o', '.'): Counter({6: 1, 8: 16}),\n", " ('x',\n", " 'x',\n", " 'o',\n", " '.',\n", " '.',\n", " '.',\n", " '.',\n", " 'o',\n", " 'x'): Counter({3: 2, 4: 1, 5: 1, 6: 6}),\n", " ('x', 'o', 'o', '.', '.', 'x', 'o', 'x', '.'): Counter({3: 1, 4: 9, 8: 3}),\n", " ('x',\n", " '.',\n", " 'o',\n", " '.',\n", " '.',\n", " '.',\n", " '.',\n", " '.',\n", " '.'): Counter({1: 2, 3: 30, 4: 2244, 5: 3, 6: 2399, 7: 1, 8: 542}),\n", " ('x',\n", " '.',\n", " 'o',\n", " '.',\n", " 'x',\n", " 'o',\n", " '.',\n", " '.',\n", " '.'): Counter({1: 1, 3: 1, 6: 1, 7: 1, 8: 2655}),\n", " ('x', 'o', 'x', 'o', 'x', 'o', '.', 'x', '.'): Counter({6: 1, 8: 1}),\n", " ('.',\n", " 'x',\n", " '.',\n", " 'x',\n", " '.',\n", " 'o',\n", " '.',\n", " 'o',\n", " '.'): Counter({0: 3, 2: 4, 4: 3, 6: 3, 8: 3}),\n", " ('x', 'x', '.', 'x', 'x', 'o', '.', 'o', 'o'): Counter({2: 10, 6: 6}),\n", " ('x', 'x', 'o', '.', 'o', 'o', 'x', '.', '.'): Counter({3: 19, 7: 1, 8: 1}),\n", " ('x',\n", " 'x',\n", " '.',\n", " '.',\n", " '.',\n", " 'x',\n", " 'o',\n", " '.',\n", " 'o'): Counter({2: 7, 3: 2, 4: 2, 7: 6}),\n", " ('o', 'x', 'o', 'x', 'o', 'x', '.', 'x', '.'): Counter({6: 4, 8: 11}),\n", " ('x', 'o', 'o', '.', 'x', 'x', 'x', '.', 'o'): Counter({3: 3, 7: 1}),\n", " ('x',\n", " '.',\n", " 'o',\n", " '.',\n", " 'x',\n", " 'o',\n", " '.',\n", " 'x',\n", " '.'): Counter({1: 3, 3: 1, 6: 1, 8: 21}),\n", " ('o', 'x', 'o', 'x', 'x', 'o', '.', '.', '.'): Counter({6: 1, 7: 321, 8: 9}),\n", " ('x',\n", " '.',\n", " 'o',\n", " '.',\n", " 'x',\n", " 'x',\n", " 'o',\n", " 'o',\n", " '.'): Counter({1: 1, 3: 107, 8: 162}),\n", " ('x',\n", " 'o',\n", " '.',\n", " '.',\n", " 'o',\n", " 'x',\n", " 'x',\n", " '.',\n", " '.'): Counter({2: 1, 3: 2, 7: 19, 8: 4}),\n", " ('x', 'o', '.', '.', 'o', 'x', 'o', 'x', '.'): Counter({2: 8, 3: 1, 8: 1}),\n", " ('x', 'x', '.', 'o', 'o', '.', 'x', '.', 'o'): Counter({2: 21, 5: 4, 7: 2}),\n", " ('x', 'x', '.', 'o', '.', 'o', 'o', 'x', '.'): Counter({2: 5, 4: 6, 8: 3}),\n", " ('x',\n", " 'o',\n", " 'x',\n", " 'o',\n", " 'x',\n", " '.',\n", " '.',\n", " 'o',\n", " '.'): Counter({5: 257, 6: 278, 8: 317}),\n", " ('x',\n", " 'o',\n", " '.',\n", " '.',\n", " 'x',\n", " '.',\n", " 'x',\n", " 'o',\n", " '.'): Counter({2: 1, 3: 1, 5: 1, 8: 1}),\n", " ('x',\n", " 'x',\n", " '.',\n", " '.',\n", " '.',\n", " 'o',\n", " '.',\n", " '.',\n", " '.'): Counter({2: 2, 3: 1, 4: 1, 6: 1, 7: 1, 8: 8}),\n", " ('x',\n", " '.',\n", " '.',\n", " '.',\n", " '.',\n", " '.',\n", " '.',\n", " '.',\n", " '.'): Counter({1: 1, 2: 1, 3: 1, 4: 44, 5: 1, 6: 1, 7: 1, 8: 1}),\n", " ('o', 'x', '.', 'o', 'x', 'x', '.', 'o', '.'): Counter({2: 1, 6: 24, 8: 1}),\n", " ('x',\n", " 'o',\n", " '.',\n", " '.',\n", " 'x',\n", " '.',\n", " 'o',\n", " 'x',\n", " 'o'): Counter({2: 3, 3: 22, 5: 140}),\n", " ('x',\n", " '.',\n", " 'o',\n", " '.',\n", " 'x',\n", " 'x',\n", " '.',\n", " '.',\n", " 'o'): Counter({1: 1, 3: 1, 6: 1, 7: 1}),\n", " ('x',\n", " 'o',\n", " 'x',\n", " 'o',\n", " '.',\n", " '.',\n", " 'x',\n", " '.',\n", " '.'): Counter({4: 4, 5: 2, 7: 3, 8: 2}),\n", " ('x', 'x', 'o', 'x', '.', '.', 'o', '.', 'o'): Counter({4: 3, 5: 3, 7: 3}),\n", " ('x', 'x', 'o', '.', '.', 'o', '.', 'o', 'x'): Counter({3: 8, 4: 6, 6: 11}),\n", " ('x', 'o', 'x', 'o', '.', 'o', 'x', '.', '.'): Counter({4: 27, 7: 1, 8: 2}),\n", " ('x', 'o', 'o', '.', '.', 'x', 'x', 'o', '.'): Counter({3: 42, 4: 51, 8: 1}),\n", " ('x', 'x', 'o', 'o', '.', 'o', 'x', '.', '.'): Counter({4: 1, 7: 1, 8: 1}),\n", " ('x', 'x', 'o', 'o', '.', 'o', '.', '.', 'x'): Counter({4: 12, 6: 1, 7: 1}),\n", " ('x',\n", " 'x',\n", " '.',\n", " 'x',\n", " 'o',\n", " '.',\n", " '.',\n", " '.',\n", " 'o'): Counter({2: 3, 5: 2, 6: 1, 7: 1}),\n", " ('x', 'x', 'o', 'o', 'x', 'x', 'o', '.', 'o'): Counter({7: 268}),\n", " ('x',\n", " 'x',\n", " '.',\n", " '.',\n", " '.',\n", " 'x',\n", " 'o',\n", " 'o',\n", " '.'): Counter({2: 5, 3: 3, 4: 4, 8: 3}),\n", " ('x',\n", " 'o',\n", " '.',\n", " 'o',\n", " '.',\n", " '.',\n", " '.',\n", " '.',\n", " 'x'): Counter({2: 3, 4: 6, 5: 5, 6: 5, 7: 6}),\n", " ('o',\n", " 'x',\n", " '.',\n", " '.',\n", " '.',\n", " 'o',\n", " '.',\n", " 'x',\n", " '.'): Counter({2: 3, 3: 3, 4: 3, 6: 3, 8: 3}),\n", " ('.',\n", " 'x',\n", " '.',\n", " 'o',\n", " 'x',\n", " 'o',\n", " '.',\n", " '.',\n", " '.'): Counter({0: 12, 2: 27, 6: 33, 7: 18, 8: 17}),\n", " ('x',\n", " 'o',\n", " '.',\n", " '.',\n", " '.',\n", " 'x',\n", " '.',\n", " 'x',\n", " 'o'): Counter({2: 3, 3: 3, 4: 3, 6: 1}),\n", " ('x', 'x', 'o', 'o', 'o', '.', '.', '.', 'x'): Counter({5: 1, 6: 1, 7: 1}),\n", " ('x', 'x', 'o', 'o', 'o', '.', 'x', 'x', 'o'): Counter({5: 3}),\n", " ('.',\n", " 'x',\n", " '.',\n", " '.',\n", " 'o',\n", " '.',\n", " '.',\n", " 'x',\n", " '.'): Counter({0: 9, 2: 10, 3: 8, 5: 4, 6: 5, 8: 2}),\n", " ('x', 'x', 'o', 'o', 'x', 'x', 'x', 'o', 'o'): Counter(),\n", " ('x', 'x', 'o', '.', 'o', 'x', '.', 'x', 'o'): Counter({3: 3, 6: 20}),\n", " ('x', 'x', 'o', '.', 'o', 'o', 'x', 'o', 'x'): Counter({3: 344}),\n", " ('x', 'o', 'o', '.', 'x', 'x', 'o', 'x', '.'): Counter({3: 1, 8: 1}),\n", " ('x', 'x', '.', '.', 'o', 'x', 'o', '.', 'o'): Counter({2: 6, 3: 1, 7: 2}),\n", " ('x', 'x', 'o', 'o', 'x', '.', 'x', '.', 'o'): Counter({5: 25, 7: 3}),\n", " ('o',\n", " 'x',\n", " '.',\n", " 'x',\n", " 'x',\n", " 'o',\n", " '.',\n", " '.',\n", " '.'): Counter({2: 1, 6: 1, 7: 1, 8: 1}),\n", " ('x',\n", " 'x',\n", " '.',\n", " '.',\n", " '.',\n", " '.',\n", " 'o',\n", " '.',\n", " '.'): Counter({2: 2, 3: 1, 4: 1, 5: 1, 7: 1, 8: 1}),\n", " ('x', '.', 'x', '.', 'o', '.', 'o', 'x', 'o'): Counter({1: 17, 3: 3, 5: 5}),\n", " ('x',\n", " '.',\n", " 'x',\n", " '.',\n", " '.',\n", " '.',\n", " 'o',\n", " '.',\n", " 'o'): Counter({1: 802, 3: 1, 4: 1, 5: 1, 7: 6}),\n", " ('x',\n", " 'x',\n", " 'o',\n", " 'o',\n", " '.',\n", " '.',\n", " '.',\n", " '.',\n", " 'x'): Counter({4: 5, 5: 7, 6: 2, 7: 3}),\n", " ('x',\n", " 'o',\n", " 'x',\n", " 'o',\n", " '.',\n", " '.',\n", " '.',\n", " '.',\n", " '.'): Counter({4: 223, 5: 180, 6: 2, 7: 22, 8: 14}),\n", " ('x', 'o', 'o', '.', '.', 'x', '.', 'x', 'o'): Counter({3: 4, 4: 5, 6: 3}),\n", " ('x',\n", " 'x',\n", " '.',\n", " 'o',\n", " '.',\n", " 'o',\n", " 'x',\n", " '.',\n", " '.'): Counter({2: 4, 4: 3, 7: 2, 8: 2}),\n", " ('x',\n", " 'o',\n", " 'x',\n", " '.',\n", " 'x',\n", " '.',\n", " 'o',\n", " '.',\n", " '.'): Counter({3: 1, 5: 1, 7: 2, 8: 10}),\n", " ('x',\n", " 'x',\n", " '.',\n", " '.',\n", " '.',\n", " 'o',\n", " '.',\n", " 'o',\n", " 'x'): Counter({2: 1, 3: 1, 4: 1, 6: 1}),\n", " ('x',\n", " 'x',\n", " 'o',\n", " 'o',\n", " 'x',\n", " '.',\n", " 'o',\n", " '.',\n", " '.'): Counter({5: 270, 7: 87, 8: 141}),\n", " ('x',\n", " 'x',\n", " '.',\n", " 'o',\n", " '.',\n", " '.',\n", " 'o',\n", " '.',\n", " '.'): Counter({2: 10, 4: 17, 5: 6, 7: 6, 8: 20}),\n", " ('x',\n", " 'o',\n", " 'o',\n", " '.',\n", " '.',\n", " '.',\n", " '.',\n", " 'x',\n", " '.'): Counter({3: 5, 4: 6, 5: 7, 6: 27, 8: 17}),\n", " ('.',\n", " 'o',\n", " '.',\n", " '.',\n", " 'x',\n", " '.',\n", " '.',\n", " '.',\n", " '.'): Counter({0: 2137, 2: 1316, 3: 221, 5: 292, 6: 2347, 7: 12, 8: 5714}),\n", " ('x', 'x', 'o', 'o', '.', 'x', '.', 'o', 'x'): Counter({4: 3, 6: 2}),\n", " ('x',\n", " '.',\n", " 'o',\n", " '.',\n", " 'x',\n", " 'x',\n", " '.',\n", " 'o',\n", " '.'): Counter({1: 1, 3: 1, 6: 1, 8: 1}),\n", " ('x', 'o', 'x', 'o', 'x', '.', '.', 'x', 'o'): Counter({5: 1, 6: 3}),\n", " ('x',\n", " 'o',\n", " '.',\n", " '.',\n", " '.',\n", " '.',\n", " 'o',\n", " 'x',\n", " '.'): Counter({2: 6, 3: 10, 4: 6, 5: 6, 8: 9}),\n", " ('x', 'o', 'x', 'o', '.', '.', 'o', 'x', '.'): Counter({4: 9, 5: 11, 8: 90}),\n", " ('o', 'x', 'o', 'x', '.', 'o', '.', 'x', '.'): Counter({4: 5, 6: 1, 8: 3}),\n", " ('x', 'o', '.', '.', 'x', 'o', 'o', 'x', '.'): Counter({2: 8, 3: 9, 8: 334}),\n", " ('x',\n", " 'x',\n", " '.',\n", " '.',\n", " 'o',\n", " 'x',\n", " 'o',\n", " '.',\n", " '.'): Counter({2: 15, 3: 2, 7: 2, 8: 1}),\n", " ('x',\n", " 'x',\n", " '.',\n", " '.',\n", " '.',\n", " 'o',\n", " '.',\n", " 'o',\n", " '.'): Counter({2: 5, 3: 10, 4: 6, 6: 7, 8: 5}),\n", " ('x', 'x', '.', 'o', 'o', 'x', 'o', 'x', '.'): Counter({2: 8, 8: 1}),\n", " ('x',\n", " '.',\n", " 'o',\n", " '.',\n", " 'x',\n", " '.',\n", " '.',\n", " 'x',\n", " 'o'): Counter({1: 4, 3: 1, 5: 20, 6: 1}),\n", " ('x', 'o', 'x', 'o', '.', '.', 'x', '.', 'o'): Counter({4: 222, 5: 8, 7: 8}),\n", " ('o',\n", " 'x',\n", " '.',\n", " '.',\n", " 'x',\n", " 'x',\n", " '.',\n", " '.',\n", " 'o'): Counter({2: 1, 3: 1, 6: 1, 7: 1}),\n", " ('x',\n", " 'o',\n", " '.',\n", " '.',\n", " '.',\n", " 'x',\n", " 'x',\n", " 'o',\n", " '.'): Counter({2: 2, 3: 3, 4: 3, 8: 2}),\n", " ('x', 'x', 'o', 'o', '.', 'o', '.', 'x', '.'): Counter({4: 9, 6: 1, 8: 3}),\n", " ('x', 'x', 'o', 'o', '.', '.', 'x', 'o', '.'): Counter({4: 18, 5: 3, 8: 17}),\n", " ('x', 'x', 'o', '.', 'o', '.', 'x', '.', 'o'): Counter({3: 9, 5: 7, 7: 1}),\n", " ('x',\n", " 'x',\n", " 'o',\n", " 'x',\n", " '.',\n", " '.',\n", " '.',\n", " '.',\n", " 'o'): Counter({4: 4, 5: 4, 6: 5, 7: 4}),\n", " ('x',\n", " 'x',\n", " 'o',\n", " '.',\n", " '.',\n", " '.',\n", " '.',\n", " 'o',\n", " '.'): Counter({3: 3, 4: 2, 5: 1, 6: 10, 8: 8}),\n", " ('x', 'x', 'o', 'x', 'o', 'x', '.', '.', 'o'): Counter({6: 18, 7: 1}),\n", " ('o',\n", " 'x',\n", " '.',\n", " 'o',\n", " 'x',\n", " 'x',\n", " '.',\n", " '.',\n", " '.'): Counter({2: 1, 6: 14, 7: 5, 8: 1}),\n", " ('x', 'x', '.', 'o', '.', '.', 'o', 'o', 'x'): Counter({2: 9, 4: 26, 5: 4}),\n", " ('x', 'x', '.', 'o', '.', 'o', 'o', '.', 'x'): Counter({2: 13, 4: 19, 7: 1}),\n", " ('x',\n", " 'x',\n", " '.',\n", " '.',\n", " 'x',\n", " '.',\n", " '.',\n", " 'o',\n", " 'o'): Counter({2: 10, 3: 1, 5: 3, 6: 14}),\n", " ('x',\n", " 'o',\n", " 'o',\n", " '.',\n", " 'o',\n", " '.',\n", " 'x',\n", " '.',\n", " 'x'): Counter({3: 383, 5: 1, 7: 451}),\n", " ('x', 'o', 'x', '.', 'x', '.', 'o', 'x', 'o'): Counter({3: 3, 5: 3}),\n", " ('x',\n", " 'o',\n", " 'x',\n", " '.',\n", " 'o',\n", " '.',\n", " '.',\n", " 'x',\n", " '.'): Counter({3: 12, 5: 2, 6: 3, 8: 2}),\n", " ('x', 'o', 'o', '.', 'x', 'x', 'x', 'o', '.'): Counter({3: 1, 8: 1}),\n", " ('x',\n", " 'x',\n", " '.',\n", " '.',\n", " 'o',\n", " '.',\n", " 'o',\n", " '.',\n", " '.'): Counter({2: 19, 3: 2, 5: 2, 7: 2, 8: 2}),\n", " ('x',\n", " 'o',\n", " '.',\n", " '.',\n", " '.',\n", " 'x',\n", " '.',\n", " '.',\n", " '.'): Counter({2: 1, 3: 1, 4: 1, 6: 2, 7: 1, 8: 1}),\n", " ('x', 'x', 'o', '.', 'o', '.', '.', 'o', 'x'): Counter({3: 1, 5: 1, 6: 158}),\n", " ('x', 'o', 'x', 'o', 'x', '.', 'o', 'x', 'o'): Counter({5: 3}),\n", " ('x', 'x', '.', 'o', 'x', '.', 'x', 'o', 'o'): Counter({2: 3, 5: 1}),\n", " ('x',\n", " 'x',\n", " 'o',\n", " '.',\n", " '.',\n", " 'o',\n", " '.',\n", " 'x',\n", " '.'): Counter({3: 3, 4: 5, 6: 3, 8: 4}),\n", " ('o',\n", " 'x',\n", " '.',\n", " '.',\n", " 'x',\n", " 'o',\n", " '.',\n", " '.',\n", " '.'): Counter({2: 576, 3: 241, 6: 222, 7: 171, 8: 94}),\n", " ('x', 'x', '.', 'x', 'o', 'x', '.', 'o', 'o'): Counter({2: 1, 6: 18}),\n", " ('x',\n", " '.',\n", " 'o',\n", " '.',\n", " '.',\n", " 'x',\n", " 'o',\n", " 'x',\n", " '.'): Counter({1: 1, 3: 3, 4: 3, 8: 2}),\n", " ('x', 'x', '.', 'o', 'o', 'x', 'o', '.', 'x'): Counter({2: 11, 7: 1}),\n", " ('.',\n", " 'x',\n", " '.',\n", " 'o',\n", " '.',\n", " 'o',\n", " '.',\n", " 'x',\n", " '.'): Counter({0: 4, 2: 3, 4: 3, 6: 3, 8: 4}),\n", " ('x', 'x', 'o', '.', '.', '.', 'o', 'x', 'o'): Counter({3: 2, 4: 3, 5: 3}),\n", " ('x',\n", " '.',\n", " 'x',\n", " '.',\n", " 'x',\n", " '.',\n", " 'o',\n", " '.',\n", " 'o'): Counter({1: 6, 3: 1, 5: 1, 7: 13}),\n", " ('x',\n", " 'x',\n", " 'o',\n", " 'x',\n", " 'o',\n", " '.',\n", " '.',\n", " '.',\n", " '.'): Counter({5: 1, 6: 28, 7: 1, 8: 1}),\n", " ('x', 'o', 'x', 'o', '.', '.', '.', 'x', 'o'): Counter({4: 5, 5: 3, 6: 8}),\n", " ('.',\n", " 'x',\n", " '.',\n", " '.',\n", " 'x',\n", " '.',\n", " '.',\n", " 'o',\n", " '.'): Counter({0: 1, 2: 1, 3: 1, 5: 1, 6: 3, 8: 2}),\n", " ('x',\n", " 'x',\n", " '.',\n", " 'o',\n", " 'x',\n", " '.',\n", " 'o',\n", " '.',\n", " '.'): Counter({2: 1, 5: 1, 7: 1, 8: 1}),\n", " ('x',\n", " 'x',\n", " '.',\n", " '.',\n", " '.',\n", " 'o',\n", " 'x',\n", " 'o',\n", " '.'): Counter({2: 3, 3: 3, 4: 3, 8: 3}),\n", " ('x',\n", " 'o',\n", " 'x',\n", " '.',\n", " 'o',\n", " '.',\n", " 'x',\n", " '.',\n", " 'o'): Counter({3: 717, 5: 1, 7: 30}),\n", " ('x',\n", " 'o',\n", " '.',\n", " '.',\n", " '.',\n", " 'o',\n", " 'x',\n", " '.',\n", " 'x'): Counter({2: 2, 3: 4, 4: 3, 7: 2}),\n", " ('o',\n", " 'o',\n", " '.',\n", " '.',\n", " 'x',\n", " '.',\n", " '.',\n", " 'x',\n", " '.'): Counter({2: 10, 3: 2, 5: 1, 6: 1, 8: 1}),\n", " ('x',\n", " 'o',\n", " '.',\n", " '.',\n", " 'o',\n", " '.',\n", " '.',\n", " 'x',\n", " '.'): Counter({2: 6, 3: 4, 5: 2, 6: 23, 8: 20}),\n", " ('x', 'x', '.', 'o', '.', 'o', '.', 'x', 'o'): Counter({2: 3, 4: 5, 6: 2}),\n", " ('x', 'x', 'o', 'x', 'o', '.', '.', 'x', 'o'): Counter({5: 14, 6: 6}),\n", " ('o',\n", " 'x',\n", " 'o',\n", " '.',\n", " 'x',\n", " '.',\n", " '.',\n", " '.',\n", " '.'): Counter({3: 177, 5: 188, 6: 103, 7: 553, 8: 263}),\n", " ('x', 'x', 'o', 'x', 'x', '.', '.', 'o', 'o'): Counter({5: 11, 6: 11}),\n", " ('x',\n", " 'o',\n", " '.',\n", " '.',\n", " 'x',\n", " 'x',\n", " '.',\n", " 'o',\n", " '.'): Counter({2: 1, 3: 1, 6: 1, 8: 1}),\n", " ('x',\n", " 'x',\n", " '.',\n", " '.',\n", " 'o',\n", " 'o',\n", " '.',\n", " 'o',\n", " 'x'): Counter({2: 339, 3: 164, 6: 1}),\n", " ('x',\n", " 'x',\n", " '.',\n", " '.',\n", " 'o',\n", " '.',\n", " 'x',\n", " 'o',\n", " 'o'): Counter({2: 31, 3: 39, 5: 29}),\n", " ('x',\n", " 'o',\n", " '.',\n", " '.',\n", " 'x',\n", " 'o',\n", " '.',\n", " '.',\n", " '.'): Counter({2: 341, 3: 147, 6: 703, 7: 96, 8: 1591}),\n", " ('x',\n", " '.',\n", " '.',\n", " '.',\n", " 'x',\n", " 'o',\n", " '.',\n", " '.',\n", " '.'): Counter({1: 1, 2: 1, 3: 1, 6: 1, 7: 1, 8: 1}),\n", " ('x',\n", " '.',\n", " 'o',\n", " '.',\n", " '.',\n", " '.',\n", " 'o',\n", " '.',\n", " 'x'): Counter({1: 1, 3: 2, 4: 90, 5: 1, 7: 1}),\n", " ('x',\n", " 'x',\n", " '.',\n", " '.',\n", " 'o',\n", " 'o',\n", " '.',\n", " 'x',\n", " '.'): Counter({2: 19, 3: 8, 6: 5, 8: 2}),\n", " ('x', 'x', 'o', '.', 'o', 'x', '.', 'o', '.'): Counter({3: 1, 6: 6, 8: 1}),\n", " ('x',\n", " 'x',\n", " '.',\n", " 'o',\n", " 'x',\n", " '.',\n", " 'o',\n", " 'o',\n", " '.'): Counter({2: 272, 5: 1, 8: 52}),\n", " ('x',\n", " 'x',\n", " '.',\n", " '.',\n", " '.',\n", " '.',\n", " 'o',\n", " 'o',\n", " '.'): Counter({2: 14, 3: 1, 4: 1, 5: 1, 8: 12}),\n", " ('x',\n", " 'x',\n", " '.',\n", " '.',\n", " '.',\n", " '.',\n", " '.',\n", " '.',\n", " 'o'): Counter({2: 6, 3: 1, 4: 1, 5: 5, 6: 8, 7: 1}),\n", " ('x',\n", " '.',\n", " 'o',\n", " '.',\n", " '.',\n", " '.',\n", " '.',\n", " 'x',\n", " '.'): Counter({1: 2, 3: 2, 4: 7, 5: 3, 6: 1, 8: 5}),\n", " ('o',\n", " 'x',\n", " '.',\n", " '.',\n", " 'o',\n", " 'x',\n", " '.',\n", " 'x',\n", " '.'): Counter({2: 4, 3: 11, 6: 9, 8: 9}),\n", " ('x', 'x', '.', 'x', '.', 'o', '.', 'o', 'o'): Counter({2: 4, 4: 3, 6: 5}),\n", " ('.',\n", " '.',\n", " '.',\n", " '.',\n", " '.',\n", " '.',\n", " '.',\n", " '.',\n", " '.'): Counter({0: 3072,\n", " 1: 6,\n", " 2: 5368,\n", " 3: 4,\n", " 4: 23299,\n", " 5: 5,\n", " 6: 2362,\n", " 7: 2,\n", " 8: 10107}),\n", " ('x', 'x', '.', 'o', 'x', 'x', '.', 'o', 'o'): Counter({2: 3, 6: 17}),\n", " ('x',\n", " 'x',\n", " '.',\n", " 'o',\n", " '.',\n", " 'x',\n", " '.',\n", " '.',\n", " 'o'): Counter({2: 2, 4: 3, 6: 3, 7: 1}),\n", " ('o',\n", " 'x',\n", " 'o',\n", " 'x',\n", " 'x',\n", " '.',\n", " '.',\n", " 'o',\n", " '.'): Counter({5: 311, 6: 10, 8: 6}),\n", " ('o',\n", " 'x',\n", " '.',\n", " '.',\n", " 'x',\n", " 'x',\n", " 'o',\n", " '.',\n", " '.'): Counter({2: 2, 3: 4, 7: 2, 8: 1}),\n", " ('x',\n", " 'x',\n", " 'o',\n", " '.',\n", " '.',\n", " 'o',\n", " '.',\n", " '.',\n", " '.'): Counter({3: 5, 4: 2, 6: 1, 7: 1, 8: 6}),\n", " ('x', 'o', 'x', 'o', 'o', '.', 'x', '.', 'x'): Counter({5: 11, 7: 8}),\n", " ('x', 'x', 'o', 'o', 'o', '.', 'x', '.', 'x'): Counter({5: 30, 7: 3}),\n", " ('x',\n", " '.',\n", " '.',\n", " '.',\n", " 'x',\n", " 'o',\n", " '.',\n", " '.',\n", " 'o'): Counter({1: 2, 2: 1801, 3: 1, 6: 1, 7: 1}),\n", " ('o',\n", " 'x',\n", " '.',\n", " '.',\n", " 'x',\n", " 'x',\n", " '.',\n", " 'o',\n", " '.'): Counter({2: 1, 3: 4, 6: 1, 8: 1}),\n", " ('x',\n", " '.',\n", " '.',\n", " '.',\n", " 'o',\n", " '.',\n", " '.',\n", " '.',\n", " 'x'): Counter({1: 4, 2: 2, 3: 11, 5: 4, 6: 12, 7: 4}),\n", " ('x',\n", " 'x',\n", " '.',\n", " 'o',\n", " '.',\n", " '.',\n", " '.',\n", " 'o',\n", " 'x'): Counter({2: 1, 4: 2, 5: 1, 6: 2}),\n", " ('x',\n", " '.',\n", " 'x',\n", " '.',\n", " 'x',\n", " '.',\n", " 'o',\n", " 'o',\n", " '.'): Counter({1: 1, 3: 3, 5: 2, 8: 17}),\n", " ('x', 'o', '.', '.', 'x', 'x', '.', 'o', 'o'): Counter({2: 1, 3: 96, 6: 61}),\n", " ('x',\n", " 'x',\n", " '.',\n", " '.',\n", " '.',\n", " '.',\n", " '.',\n", " 'o',\n", " '.'): Counter({2: 5, 3: 1, 4: 1, 5: 1, 6: 1, 8: 1}),\n", " ('x',\n", " 'x',\n", " 'o',\n", " '.',\n", " '.',\n", " '.',\n", " 'o',\n", " '.',\n", " '.'): Counter({3: 1, 4: 21, 5: 1, 7: 1, 8: 1}),\n", " ('x', 'o', 'x', 'o', '.', 'o', 'x', 'o', 'x'): Counter({4: 6}),\n", " ('o',\n", " 'x',\n", " '.',\n", " '.',\n", " 'x',\n", " '.',\n", " '.',\n", " 'o',\n", " '.'): Counter({2: 1, 3: 323, 5: 104, 6: 509, 8: 12}),\n", " ('x', 'o', '.', 'o', 'o', 'x', '.', 'x', '.'): Counter({2: 3, 6: 5, 8: 4}),\n", " ('o',\n", " 'x',\n", " '.',\n", " '.',\n", " '.',\n", " '.',\n", " '.',\n", " '.',\n", " '.'): Counter({2: 4, 3: 3, 4: 20, 5: 2, 6: 6, 7: 4, 8: 2}),\n", " ('x',\n", " 'o',\n", " 'x',\n", " '.',\n", " 'o',\n", " '.',\n", " 'x',\n", " '.',\n", " '.'): Counter({3: 18, 5: 1, 7: 32, 8: 1}),\n", " ('x', 'o', '.', '.', 'o', 'x', '.', 'x', 'o'): Counter({2: 3, 3: 6, 6: 5}),\n", " ('x',\n", " 'x',\n", " '.',\n", " '.',\n", " '.',\n", " 'o',\n", " 'o',\n", " 'x',\n", " '.'): Counter({2: 2, 3: 1, 4: 4, 8: 3}),\n", " ('x',\n", " 'o',\n", " '.',\n", " 'o',\n", " '.',\n", " 'x',\n", " '.',\n", " 'x',\n", " '.'): Counter({2: 2, 4: 2, 6: 3, 8: 3}),\n", " ('x', 'x', '.', 'o', 'o', 'x', '.', '.', 'o'): Counter({2: 9, 6: 3, 7: 5}),\n", " ('x',\n", " 'x',\n", " '.',\n", " 'o',\n", " '.',\n", " '.',\n", " 'o',\n", " '.',\n", " 'x'): Counter({2: 4, 4: 2, 5: 3, 7: 3}),\n", " ('x',\n", " '.',\n", " 'o',\n", " '.',\n", " 'o',\n", " 'x',\n", " '.',\n", " '.',\n", " '.'): Counter({1: 1, 3: 1, 6: 6, 7: 1, 8: 3}),\n", " ('x', 'x', 'o', 'o', '.', 'x', '.', 'o', '.'): Counter({4: 7, 6: 3, 8: 3}),\n", " ('x', 'x', 'o', 'o', '.', '.', 'o', 'x', '.'): Counter({4: 5, 5: 1, 8: 3}),\n", " ('x',\n", " '.',\n", " '.',\n", " '.',\n", " 'x',\n", " 'o',\n", " '.',\n", " 'o',\n", " '.'): Counter({1: 168, 2: 364, 3: 68, 6: 288, 8: 666}),\n", " ('x',\n", " 'x',\n", " '.',\n", " 'o',\n", " '.',\n", " '.',\n", " '.',\n", " 'o',\n", " '.'): Counter({2: 11, 4: 14, 5: 7, 6: 8, 8: 20}),\n", " ('x',\n", " '.',\n", " 'o',\n", " '.',\n", " '.',\n", " '.',\n", " '.',\n", " 'x',\n", " 'o'): Counter({1: 1, 3: 1, 4: 1, 5: 1, 6: 1}),\n", " ('x',\n", " 'o',\n", " '.',\n", " '.',\n", " 'x',\n", " 'x',\n", " 'o',\n", " 'o',\n", " '.'): Counter({2: 1, 3: 105, 8: 77}),\n", " ('x', 'x', '.', 'o', '.', 'x', 'o', 'x', 'o'): Counter({2: 1, 4: 1}),\n", " ('x',\n", " '.',\n", " 'o',\n", " '.',\n", " 'x',\n", " 'x',\n", " '.',\n", " 'o',\n", " 'o'): Counter({1: 1, 3: 542, 6: 13}),\n", " ('x',\n", " 'x',\n", " '.',\n", " '.',\n", " '.',\n", " '.',\n", " '.',\n", " 'o',\n", " 'o'): Counter({2: 21, 3: 1, 4: 1, 5: 3, 6: 5}),\n", " ('x', 'x', '.', 'o', '.', '.', 'o', 'x', 'o'): Counter({2: 5, 4: 5, 5: 4}),\n", " ('x', 'x', '.', 'o', 'o', 'x', '.', 'o', '.'): Counter({2: 10, 6: 3, 8: 5}),\n", " ('o', 'x', 'o', 'x', '.', 'x', 'o', 'x', 'o'): Counter({4: 3}),\n", " ('x',\n", " 'o',\n", " 'x',\n", " 'o',\n", " 'x',\n", " '.',\n", " 'o',\n", " '.',\n", " '.'): Counter({5: 11, 7: 7, 8: 767}),\n", " ('x',\n", " 'x',\n", " 'o',\n", " 'x',\n", " '.',\n", " 'o',\n", " '.',\n", " '.',\n", " '.'): Counter({4: 3, 6: 4, 7: 1, 8: 4}),\n", " ('x',\n", " 'x',\n", " 'o',\n", " '.',\n", " 'o',\n", " '.',\n", " '.',\n", " '.',\n", " '.'): Counter({3: 1, 5: 1, 6: 1, 7: 1, 8: 1}),\n", " ('x', 'x', '.', '.', 'o', 'o', 'x', 'o', 'x'): Counter({2: 2, 3: 15}),\n", " ('x',\n", " 'x',\n", " '.',\n", " '.',\n", " 'o',\n", " '.',\n", " '.',\n", " '.',\n", " 'o'): Counter({2: 11, 3: 6, 5: 5, 6: 5, 7: 4}),\n", " ('x',\n", " 'x',\n", " '.',\n", " 'o',\n", " '.',\n", " '.',\n", " '.',\n", " 'x',\n", " 'o'): Counter({2: 3, 4: 4, 5: 3, 6: 2}),\n", " ('x', 'x', 'o', 'x', 'x', 'o', 'o', '.', '.'): Counter({7: 1, 8: 17}),\n", " ('o',\n", " 'x',\n", " 'o',\n", " 'x',\n", " '.',\n", " 'x',\n", " '.',\n", " '.',\n", " '.'): Counter({4: 4, 6: 3, 7: 2, 8: 2}),\n", " ('x', 'x', '.', 'o', '.', 'x', 'o', '.', 'o'): Counter({2: 9, 4: 2, 7: 4}),\n", " ('x',\n", " 'o',\n", " '.',\n", " '.',\n", " '.',\n", " 'x',\n", " 'o',\n", " '.',\n", " '.'): Counter({2: 4, 3: 4, 4: 6, 7: 7, 8: 10}),\n", " ('x', 'o', 'x', 'o', 'o', '.', 'x', '.', '.'): Counter({5: 1, 7: 1, 8: 1}),\n", " ('x',\n", " 'x',\n", " 'o',\n", " '.',\n", " '.',\n", " 'o',\n", " 'x',\n", " '.',\n", " '.'): Counter({3: 4, 4: 3, 7: 2, 8: 8}),\n", " ('x', 'x', '.', '.', 'o', '.', 'o', 'o', 'x'): Counter({2: 503, 3: 1, 5: 2}),\n", " ('x',\n", " 'x',\n", " '.',\n", " '.',\n", " '.',\n", " 'o',\n", " '.',\n", " 'x',\n", " 'o'): Counter({2: 8, 3: 2, 4: 1, 6: 1}),\n", " ('x',\n", " 'o',\n", " 'o',\n", " '.',\n", " 'x',\n", " '.',\n", " 'o',\n", " 'x',\n", " '.'): Counter({3: 124, 5: 77, 8: 145}),\n", " ('o',\n", " '.',\n", " '.',\n", " '.',\n", " '.',\n", " 'x',\n", " '.',\n", " 'x',\n", " '.'): Counter({1: 4, 2: 1, 3: 7, 4: 2, 6: 2, 8: 3}),\n", " ('x', 'x', 'o', '.', 'o', '.', 'x', 'o', 'x'): Counter({3: 3, 5: 1}),\n", " ('x', 'x', '.', 'o', 'x', 'o', 'x', '.', 'o'): Counter({2: 19, 7: 1}),\n", " ('x',\n", " 'x',\n", " '.',\n", " 'o',\n", " 'o',\n", " 'x',\n", " '.',\n", " '.',\n", " '.'): Counter({2: 3, 6: 1, 7: 3, 8: 2}),\n", " ('x',\n", " 'o',\n", " '.',\n", " '.',\n", " 'x',\n", " '.',\n", " '.',\n", " 'x',\n", " 'o'): Counter({2: 5, 3: 1, 5: 1, 6: 1}),\n", " ('x',\n", " 'o',\n", " 'x',\n", " '.',\n", " '.',\n", " '.',\n", " 'x',\n", " '.',\n", " 'o'): Counter({3: 3, 4: 2, 5: 3, 7: 1}),\n", " ('x', 'x', 'o', 'o', 'o', 'x', '.', '.', '.'): Counter({6: 3, 7: 1, 8: 1}),\n", " ('x',\n", " 'o',\n", " '.',\n", " '.',\n", " 'o',\n", " '.',\n", " '.',\n", " '.',\n", " 'x'): Counter({2: 1, 3: 1, 5: 1, 6: 1, 7: 1551}),\n", " ('x',\n", " 'x',\n", " '.',\n", " '.',\n", " 'o',\n", " 'o',\n", " 'x',\n", " '.',\n", " '.'): Counter({2: 1, 3: 23, 7: 2, 8: 1}),\n", " ('x', 'x', 'o', 'x', 'x', '.', 'o', '.', 'o'): Counter({5: 4, 7: 13}),\n", " ('x', 'x', 'o', 'o', '.', 'x', '.', '.', 'o'): Counter({4: 3, 6: 3, 7: 5}),\n", " ('x',\n", " 'o',\n", " 'o',\n", " '.',\n", " '.',\n", " 'x',\n", " '.',\n", " 'x',\n", " '.'): Counter({3: 3, 4: 3, 6: 3, 8: 1}),\n", " ('x', 'x', 'o', '.', 'o', 'o', '.', 'x', '.'): Counter({3: 1, 6: 1, 8: 1}),\n", " ('o',\n", " 'x',\n", " '.',\n", " '.',\n", " '.',\n", " '.',\n", " 'o',\n", " 'x',\n", " '.'): Counter({2: 4, 3: 4, 4: 3, 5: 1, 8: 1}),\n", " ('o',\n", " 'x',\n", " '.',\n", " '.',\n", " '.',\n", " 'x',\n", " '.',\n", " '.',\n", " '.'): Counter({2: 1, 3: 1, 4: 12, 6: 1, 7: 2, 8: 2}),\n", " ('x',\n", " 'o',\n", " 'x',\n", " 'o',\n", " 'x',\n", " 'o',\n", " '.',\n", " '.',\n", " '.'): Counter({6: 139, 7: 104, 8: 282}),\n", " ('x', 'o', 'x', 'o', 'x', '.', 'o', 'x', '.'): Counter({5: 1, 8: 3}),\n", " ('x',\n", " 'x',\n", " '.',\n", " '.',\n", " 'o',\n", " '.',\n", " 'o',\n", " '.',\n", " 'x'): Counter({2: 13, 3: 1, 5: 1, 7: 4}),\n", " ('o',\n", " 'x',\n", " '.',\n", " 'x',\n", " 'x',\n", " 'o',\n", " '.',\n", " '.',\n", " 'o'): Counter({2: 53, 6: 1, 7: 179}),\n", " ('x',\n", " 'x',\n", " '.',\n", " '.',\n", " '.',\n", " '.',\n", " 'o',\n", " '.',\n", " 'o'): Counter({2: 10, 3: 4, 4: 1, 5: 1, 7: 6}),\n", " ('x', 'x', 'o', 'x', '.', 'o', 'o', '.', 'x'): Counter({4: 6, 7: 1}),\n", " ('x',\n", " 'o',\n", " '.',\n", " '.',\n", " 'x',\n", " '.',\n", " '.',\n", " '.',\n", " '.'): Counter({2: 1, 3: 1, 5: 1, 6: 1, 7: 1, 8: 1}),\n", " ('x', 'o', 'o', '.', 'x', 'x', 'o', 'x', 'o'): Counter({3: 736}),\n", " ('x', 'x', 'o', 'x', 'o', 'o', '.', 'x', '.'): Counter({6: 14, 8: 13}),\n", " ('x',\n", " 'o',\n", " '.',\n", " '.',\n", " '.',\n", " 'x',\n", " '.',\n", " '.',\n", " 'o'): Counter({2: 1, 3: 3, 4: 13, 6: 4, 7: 4}),\n", " ('x', 'x', '.', 'o', 'o', 'x', '.', 'o', 'x'): Counter({2: 3, 6: 1}),\n", " ('x',\n", " 'x',\n", " 'o',\n", " 'o',\n", " 'x',\n", " '.',\n", " '.',\n", " 'o',\n", " '.'): Counter({5: 14, 6: 6, 8: 162}),\n", " ('o', 'o', '.', 'o', 'x', 'x', '.', 'x', '.'): Counter({2: 3, 6: 2, 8: 1}),\n", " ('x', 'x', 'o', 'o', '.', 'o', 'x', 'x', '.'): Counter({4: 4, 8: 6}),\n", " ('x',\n", " '.',\n", " '.',\n", " '.',\n", " 'x',\n", " 'x',\n", " '.',\n", " 'o',\n", " 'o'): Counter({1: 1, 2: 3, 3: 2, 6: 16}),\n", " ('x', 'x', 'o', 'x', 'o', '.', '.', 'o', '.'): Counter({5: 5, 6: 6, 8: 3}),\n", " ('x',\n", " '.',\n", " 'o',\n", " '.',\n", " 'x',\n", " '.',\n", " '.',\n", " '.',\n", " '.'): Counter({1: 1, 3: 1, 5: 1, 6: 1, 7: 1, 8: 1}),\n", " ('x',\n", " 'o',\n", " 'x',\n", " 'o',\n", " '.',\n", " '.',\n", " '.',\n", " '.',\n", " 'x'): Counter({4: 3, 5: 3, 6: 1, 7: 1}),\n", " ('x', 'x', 'o', 'x', 'o', 'o', '.', 'o', 'x'): Counter({6: 185}),\n", " ('x',\n", " 'x',\n", " 'o',\n", " '.',\n", " 'o',\n", " '.',\n", " '.',\n", " '.',\n", " 'x'): Counter({3: 14, 5: 6, 6: 28, 7: 4}),\n", " ('x',\n", " 'o',\n", " '.',\n", " '.',\n", " '.',\n", " 'x',\n", " 'o',\n", " 'x',\n", " '.'): Counter({2: 5, 3: 1, 4: 4, 8: 2}),\n", " ('x', 'x', 'o', 'o', 'x', '.', 'x', 'o', '.'): Counter({5: 1, 8: 3}),\n", " ('x', 'o', 'o', '.', '.', 'x', 'x', '.', 'o'): Counter({3: 92, 4: 4, 7: 3}),\n", " ('o',\n", " 'x',\n", " '.',\n", " 'x',\n", " 'o',\n", " 'x',\n", " '.',\n", " '.',\n", " '.'): Counter({2: 8, 6: 4, 7: 4, 8: 16}),\n", " ('x',\n", " 'o',\n", " '.',\n", " '.',\n", " 'x',\n", " 'o',\n", " 'x',\n", " '.',\n", " 'o'): Counter({2: 534, 3: 331, 7: 1}),\n", " ('x', 'o', 'x', 'o', '.', 'o', 'x', '.', 'x'): Counter({4: 6, 7: 3}),\n", " ('x',\n", " 'x',\n", " 'o',\n", " '.',\n", " 'x',\n", " '.',\n", " '.',\n", " 'o',\n", " '.'): Counter({3: 2, 5: 1, 6: 1, 8: 17}),\n", " ('x',\n", " 'o',\n", " 'o',\n", " '.',\n", " 'x',\n", " '.',\n", " 'x',\n", " '.',\n", " 'o'): Counter({3: 1087, 5: 8, 7: 1}),\n", " ('o',\n", " 'x',\n", " '.',\n", " 'x',\n", " '.',\n", " 'x',\n", " '.',\n", " 'o',\n", " '.'): Counter({2: 1, 4: 4, 6: 2, 8: 3}),\n", " ('x',\n", " 'o',\n", " '.',\n", " '.',\n", " 'x',\n", " '.',\n", " 'o',\n", " 'x',\n", " '.'): Counter({2: 1, 3: 1, 5: 1, 8: 1}),\n", " ('x',\n", " 'o',\n", " '.',\n", " '.',\n", " '.',\n", " '.',\n", " 'o',\n", " '.',\n", " 'x'): Counter({2: 63, 3: 5, 4: 61, 5: 62, 7: 9}),\n", " ('x', 'x', '.', '.', 'o', 'o', 'x', 'o', '.'): Counter({2: 45, 3: 36, 8: 1}),\n", " ('x',\n", " 'x',\n", " '.',\n", " 'o',\n", " '.',\n", " 'x',\n", " 'o',\n", " '.',\n", " '.'): Counter({2: 3, 4: 1, 7: 3, 8: 2}),\n", " ('x', 'x', 'o', 'o', 'x', 'o', 'x', '.', '.'): Counter({7: 1, 8: 18}),\n", " ('x', 'x', 'o', 'x', '.', 'x', 'o', 'o', '.'): Counter({4: 7, 8: 4}),\n", " ('x', 'x', 'o', 'o', '.', '.', '.', 'o', 'x'): Counter({4: 11, 5: 3, 6: 6}),\n", " ('o', 'x', 'o', 'x', '.', 'x', 'o', 'x', '.'): Counter({4: 5, 8: 3}),\n", " ('x', 'x', '.', 'o', 'o', '.', '.', 'o', 'x'): Counter({2: 505, 5: 4, 6: 1}),\n", " ('x', 'x', 'o', 'o', '.', '.', 'x', 'o', 'x'): Counter({4: 3, 5: 2}),\n", " ('o',\n", " 'x',\n", " '.',\n", " '.',\n", " '.',\n", " '.',\n", " '.',\n", " 'x',\n", " '.'): Counter({2: 2, 3: 1, 4: 11, 5: 1, 6: 1, 8: 2}),\n", " ('x',\n", " 'x',\n", " '.',\n", " '.',\n", " 'x',\n", " 'o',\n", " '.',\n", " '.',\n", " 'o'): Counter({2: 25, 3: 1, 6: 1, 7: 2}),\n", " ('o',\n", " 'x',\n", " '.',\n", " 'o',\n", " 'x',\n", " 'x',\n", " '.',\n", " '.',\n", " 'o'): Counter({2: 1, 6: 92, 7: 100}),\n", " ('x',\n", " 'x',\n", " 'o',\n", " '.',\n", " 'x',\n", " 'o',\n", " 'o',\n", " '.',\n", " '.'): Counter({3: 1, 7: 205, 8: 232}),\n", " ('x', 'x', '.', 'o', '.', 'o', '.', 'o', 'x'): Counter({2: 11, 4: 18, 6: 1}),\n", " ('x',\n", " 'o',\n", " '.',\n", " '.',\n", " '.',\n", " '.',\n", " '.',\n", " '.',\n", " 'x'): Counter({2: 1, 3: 1, 4: 2, 5: 1, 6: 1, 7: 2}),\n", " ('x',\n", " 'o',\n", " '.',\n", " 'o',\n", " '.',\n", " 'x',\n", " '.',\n", " '.',\n", " '.'): Counter({2: 12, 4: 12, 6: 7, 7: 9, 8: 25}),\n", " ('x', 'x', 'o', 'x', 'o', 'o', '.', '.', 'x'): Counter({6: 15, 7: 1}),\n", " ('x',\n", " 'x',\n", " 'o',\n", " '.',\n", " '.',\n", " 'o',\n", " '.',\n", " '.',\n", " 'x'): Counter({3: 3, 4: 3, 6: 3, 7: 1}),\n", " ('o',\n", " 'x',\n", " '.',\n", " 'x',\n", " '.',\n", " 'x',\n", " '.',\n", " '.',\n", " 'o'): Counter({2: 2, 4: 5, 6: 3, 7: 3}),\n", " ('.',\n", " 'x',\n", " '.',\n", " 'x',\n", " 'o',\n", " '.',\n", " '.',\n", " '.',\n", " '.'): Counter({0: 21, 2: 15, 5: 1, 6: 5, 7: 1, 8: 8}),\n", " ('o', 'x', '.', '.', 'x', 'x', 'o', 'o', '.'): Counter({2: 1, 3: 40, 8: 1}),\n", " ('x', 'x', 'o', 'x', 'o', '.', '.', 'o', 'x'): Counter({5: 1, 6: 13}),\n", " ('x', 'x', 'o', 'o', 'x', 'x', 'o', '.', '.'): Counter({7: 1, 8: 1}),\n", " ('x',\n", " '.',\n", " 'o',\n", " '.',\n", " '.',\n", " 'x',\n", " '.',\n", " '.',\n", " 'o'): Counter({1: 3, 3: 3, 4: 5, 6: 4, 7: 2}),\n", " ('x', 'o', '.', 'o', 'x', 'x', '.', 'x', 'o'): Counter({2: 3, 6: 3}),\n", " ('x',\n", " 'x',\n", " 'o',\n", " 'o',\n", " '.',\n", " '.',\n", " '.',\n", " 'x',\n", " '.'): Counter({4: 4, 5: 4, 6: 1, 8: 4}),\n", " ('x',\n", " 'x',\n", " 'o',\n", " '.',\n", " 'x',\n", " 'o',\n", " '.',\n", " '.',\n", " '.'): Counter({3: 1, 6: 1, 7: 1, 8: 24}),\n", " ('x', 'o', 'x', 'o', '.', 'o', '.', 'x', '.'): Counter({4: 15, 6: 2, 8: 1}),\n", " ('x', 'o', 'o', '.', 'x', '.', '.', 'x', 'o'): Counter({3: 1, 5: 19, 6: 1}),\n", " ('x',\n", " 'x',\n", " '.',\n", " '.',\n", " 'o',\n", " '.',\n", " '.',\n", " 'x',\n", " 'o'): Counter({2: 12, 3: 1, 5: 1, 6: 3}),\n", " ('x', 'o', 'x', '.', 'o', '.', 'o', 'x', '.'): Counter({3: 3, 5: 14, 8: 6}),\n", " ('x',\n", " '.',\n", " 'o',\n", " '.',\n", " '.',\n", " 'x',\n", " 'o',\n", " '.',\n", " '.'): Counter({1: 4, 3: 2, 4: 4, 7: 2, 8: 3}),\n", " ('x', 'x', '.', 'o', 'o', '.', 'x', 'o', '.'): Counter({2: 88, 5: 7, 8: 1}),\n", " ('x', 'x', 'o', '.', 'x', 'o', 'x', 'o', '.'): Counter({3: 1, 8: 23}),\n", " ('x',\n", " 'x',\n", " '.',\n", " 'o',\n", " 'x',\n", " '.',\n", " '.',\n", " 'o',\n", " 'o'): Counter({2: 188, 5: 1, 6: 14}),\n", " ('o', 'x', 'o', 'x', 'x', '.', '.', '.', 'o'): Counter({5: 93, 6: 1, 7: 86}),\n", " ('x',\n", " 'x',\n", " '.',\n", " 'o',\n", " '.',\n", " 'o',\n", " '.',\n", " '.',\n", " '.'): Counter({2: 12, 4: 39, 6: 4, 7: 3, 8: 2}),\n", " ('x',\n", " 'o',\n", " '.',\n", " '.',\n", " 'x',\n", " 'x',\n", " 'o',\n", " '.',\n", " '.'): Counter({2: 1, 3: 1, 7: 1, 8: 1}),\n", " ('x', 'x', 'o', '.', 'x', 'x', 'o', 'o', '.'): Counter({3: 1, 8: 17}),\n", " ('o',\n", " 'x',\n", " '.',\n", " 'x',\n", " '.',\n", " 'o',\n", " '.',\n", " '.',\n", " '.'): Counter({2: 3, 4: 3, 6: 3, 7: 3, 8: 3}),\n", " ('x', 'x', '.', 'o', 'o', '.', 'o', '.', 'x'): Counter({2: 22, 5: 1, 7: 1}),\n", " ('x',\n", " 'o',\n", " 'x',\n", " '.',\n", " '.',\n", " '.',\n", " 'x',\n", " 'o',\n", " 'o'): Counter({3: 191, 4: 263, 5: 1}),\n", " ('x',\n", " 'x',\n", " '.',\n", " 'o',\n", " '.',\n", " '.',\n", " '.',\n", " '.',\n", " 'o'): Counter({2: 22, 4: 11, 5: 6, 6: 2, 7: 4}),\n", " ('x', 'x', 'o', '.', '.', 'x', 'o', 'o', '.'): Counter({3: 2, 4: 4, 8: 3}),\n", " ('x',\n", " 'x',\n", " '.',\n", " '.',\n", " 'x',\n", " 'o',\n", " 'o',\n", " '.',\n", " '.'): Counter({2: 1, 3: 1, 7: 1, 8: 1}),\n", " ('x', 'x', '.', '.', 'o', 'x', '.', 'o', 'o'): Counter({2: 9, 3: 1, 6: 6}),\n", " ('x', 'x', 'o', 'o', '.', 'x', 'o', 'x', '.'): Counter({4: 6, 8: 2}),\n", " ('x', 'x', 'o', '.', 'x', '.', 'o', 'o', '.'): Counter({3: 1, 5: 1, 8: 104}),\n", " ('o',\n", " 'x',\n", " '.',\n", " '.',\n", " 'o',\n", " '.',\n", " '.',\n", " 'x',\n", " '.'): Counter({2: 1, 3: 1, 5: 1, 6: 2, 8: 2}),\n", " ('x', 'x', '.', 'o', 'o', '.', 'o', 'x', '.'): Counter({2: 7, 5: 1, 8: 2}),\n", " ('x',\n", " 'x',\n", " '.',\n", " 'o',\n", " '.',\n", " '.',\n", " 'x',\n", " '.',\n", " 'o'): Counter({2: 4, 4: 3, 5: 1, 7: 3}),\n", " ('x',\n", " 'o',\n", " 'o',\n", " '.',\n", " '.',\n", " 'x',\n", " '.',\n", " '.',\n", " '.'): Counter({3: 4, 4: 8, 6: 7, 7: 9, 8: 1}),\n", " ('x',\n", " 'x',\n", " 'o',\n", " '.',\n", " '.',\n", " '.',\n", " '.',\n", " '.',\n", " '.'): Counter({3: 6, 4: 3, 5: 4, 6: 2, 7: 2, 8: 3}),\n", " ('x', 'x', '.', 'o', 'o', 'x', 'o', 'o', 'x'): Counter({2: 12}),\n", " ('x', 'x', 'o', 'o', '.', '.', '.', 'x', 'o'): Counter({4: 6, 5: 4, 6: 3}),\n", " ('x', 'o', 'o', '.', 'x', 'x', 'x', 'o', 'o'): Counter({3: 529}),\n", " ('x', 'x', 'o', 'o', 'o', '.', 'x', 'o', 'x'): Counter({5: 3}),\n", " ('x',\n", " '.',\n", " 'x',\n", " '.',\n", " '.',\n", " '.',\n", " '.',\n", " 'o',\n", " '.'): Counter({1: 1, 3: 1, 4: 1, 5: 1, 6: 1, 8: 1}),\n", " ('x',\n", " '.',\n", " '.',\n", " '.',\n", " 'o',\n", " 'x',\n", " '.',\n", " '.',\n", " '.'): Counter({1: 1, 2: 1, 3: 1, 6: 1, 7: 6, 8: 3}),\n", " ('x',\n", " 'x',\n", " '.',\n", " 'o',\n", " '.',\n", " 'x',\n", " '.',\n", " 'o',\n", " '.'): Counter({2: 3, 4: 3, 6: 2, 8: 3}),\n", " ('x', 'o', '.', '.', 'x', 'x', 'o', '.', 'o'): Counter({2: 1, 3: 89, 7: 7}),\n", " ('x',\n", " '.',\n", " 'o',\n", " '.',\n", " 'x',\n", " 'x',\n", " 'o',\n", " '.',\n", " 'o'): Counter({1: 1, 3: 270, 7: 279}),\n", " ('o',\n", " 'x',\n", " '.',\n", " 'o',\n", " '.',\n", " 'x',\n", " '.',\n", " 'x',\n", " '.'): Counter({2: 4, 4: 3, 6: 5, 8: 3}),\n", " ('o',\n", " 'x',\n", " 'o',\n", " 'x',\n", " '.',\n", " '.',\n", " '.',\n", " 'x',\n", " '.'): Counter({4: 4, 5: 4, 6: 1, 8: 4}),\n", " ('o',\n", " 'x',\n", " '.',\n", " '.',\n", " '.',\n", " 'x',\n", " '.',\n", " '.',\n", " 'o'): Counter({2: 3, 3: 4, 4: 4, 6: 3, 7: 3}),\n", " ('x', 'x', 'o', 'o', 'o', '.', '.', 'x', 'x'): Counter({5: 5, 6: 15}),\n", " ('x',\n", " '.',\n", " '.',\n", " '.',\n", " 'x',\n", " '.',\n", " '.',\n", " '.',\n", " 'o'): Counter({1: 1, 2: 1, 3: 1, 5: 6, 6: 1, 7: 1}),\n", " ('x',\n", " 'x',\n", " '.',\n", " '.',\n", " 'o',\n", " 'x',\n", " '.',\n", " 'o',\n", " '.'): Counter({2: 6, 3: 1, 6: 1, 8: 1}),\n", " ('x',\n", " 'o',\n", " '.',\n", " '.',\n", " 'o',\n", " '.',\n", " 'x',\n", " '.',\n", " 'x'): Counter({2: 1, 3: 1, 5: 3, 7: 15}),\n", " ('o', 'x', '.', 'x', 'x', 'o', '.', 'o', '.'): Counter({2: 30, 6: 11, 8: 3}),\n", " ('x',\n", " 'x',\n", " '.',\n", " 'x',\n", " '.',\n", " 'o',\n", " '.',\n", " 'o',\n", " '.'): Counter({2: 2, 4: 3, 6: 3, 8: 2}),\n", " ('x',\n", " '.',\n", " 'x',\n", " '.',\n", " '.',\n", " '.',\n", " 'o',\n", " 'o',\n", " '.'): Counter({1: 879, 3: 1, 4: 1, 5: 4, 8: 438}),\n", " ('x', 'x', 'o', 'o', '.', 'o', 'o', 'x', 'x'): Counter({4: 5}),\n", " ('x', 'x', 'o', 'x', 'o', '.', '.', '.', 'o'): Counter({5: 3, 6: 10, 7: 1}),\n", " ('x', 'x', 'o', 'x', 'o', 'x', '.', 'o', '.'): Counter({6: 17, 8: 2}),\n", " ('o',\n", " 'x',\n", " '.',\n", " 'o',\n", " '.',\n", " 'x',\n", " '.',\n", " '.',\n", " '.'): Counter({2: 2, 4: 4, 6: 3, 7: 3, 8: 2}),\n", " ('x', 'x', 'o', '.', 'o', 'o', 'x', 'x', '.'): Counter({3: 12, 8: 8}),\n", " ('x', 'x', 'o', 'x', 'o', 'x', '.', 'o', 'o'): Counter({6: 15}),\n", " ('x', 'x', '.', 'o', '.', 'o', 'x', 'o', '.'): Counter({2: 38, 4: 67, 8: 3}),\n", " ('x', 'x', '.', '.', 'o', 'o', 'o', 'x', '.'): Counter({2: 11, 3: 1, 8: 3}),\n", " ('x',\n", " 'x',\n", " 'o',\n", " '.',\n", " '.',\n", " 'x',\n", " '.',\n", " 'o',\n", " '.'): Counter({3: 3, 4: 2, 6: 5, 8: 3}),\n", " ('x',\n", " 'o',\n", " 'x',\n", " '.',\n", " 'o',\n", " '.',\n", " '.',\n", " '.',\n", " '.'): Counter({3: 2, 5: 1, 6: 1, 7: 15, 8: 1}),\n", " ('x', 'x', 'o', 'o', 'o', 'x', '.', '.', 'x'): Counter({6: 19, 7: 3}),\n", " ('x',\n", " 'o',\n", " 'o',\n", " '.',\n", " 'x',\n", " '.',\n", " 'x',\n", " '.',\n", " '.'): Counter({3: 1, 5: 1, 7: 1, 8: 1}),\n", " ('x', 'x', '.', 'o', 'o', '.', 'x', 'o', 'x'): Counter({2: 3, 5: 18}),\n", " ('x', 'x', 'o', 'o', '.', 'x', 'o', '.', '.'): Counter({4: 7, 7: 2, 8: 2}),\n", " ('x',\n", " 'o',\n", " 'o',\n", " '.',\n", " '.',\n", " '.',\n", " 'x',\n", " '.',\n", " 'x'): Counter({3: 1, 4: 3, 5: 1, 7: 2}),\n", " ('x',\n", " 'x',\n", " '.',\n", " 'o',\n", " '.',\n", " 'o',\n", " '.',\n", " 'x',\n", " '.'): Counter({2: 4, 4: 5, 6: 2, 8: 2}),\n", " ('x', '.', 'o', '.', '.', 'x', 'o', 'x', 'o'): Counter({1: 3, 3: 3, 4: 3}),\n", " ('x',\n", " 'x',\n", " '.',\n", " 'x',\n", " '.',\n", " 'o',\n", " '.',\n", " '.',\n", " 'o'): Counter({2: 9, 4: 2, 6: 3, 7: 1}),\n", " ('x', 'x', 'o', 'o', '.', '.', 'o', 'x', 'x'): Counter({4: 7, 5: 1}),\n", " ('x', 'x', 'o', '.', '.', 'x', '.', 'o', 'o'): Counter({3: 1, 4: 3, 6: 3}),\n", " ('x', 'x', 'o', 'o', 'o', 'x', 'x', 'x', 'o'): Counter(),\n", " ('x',\n", " 'x',\n", " '.',\n", " '.',\n", " 'x',\n", " 'o',\n", " 'o',\n", " 'o',\n", " '.'): Counter({2: 287, 3: 1, 8: 170}),\n", " ('x',\n", " 'x',\n", " '.',\n", " 'o',\n", " 'x',\n", " 'o',\n", " 'o',\n", " '.',\n", " '.'): Counter({2: 106, 7: 397, 8: 246}),\n", " ('o',\n", " '.',\n", " '.',\n", " '.',\n", " 'x',\n", " 'x',\n", " '.',\n", " '.',\n", " '.'): Counter({1: 1, 2: 1, 3: 18, 6: 1, 7: 1, 8: 1}),\n", " ('o',\n", " 'x',\n", " 'o',\n", " 'x',\n", " '.',\n", " '.',\n", " '.',\n", " '.',\n", " '.'): Counter({4: 4, 5: 3, 6: 3, 7: 4, 8: 3}),\n", " ('x',\n", " 'o',\n", " 'x',\n", " '.',\n", " '.',\n", " '.',\n", " 'x',\n", " 'o',\n", " '.'): Counter({3: 2, 4: 5, 5: 3, 8: 2}),\n", " ('o',\n", " 'x',\n", " '.',\n", " 'x',\n", " '.',\n", " '.',\n", " '.',\n", " '.',\n", " 'o'): Counter({2: 2, 4: 4, 5: 2, 6: 3, 7: 4}),\n", " ('x', 'x', 'o', '.', '.', 'o', 'o', 'x', '.'): Counter({3: 2, 4: 6, 8: 3}),\n", " ('.',\n", " 'x',\n", " '.',\n", " 'o',\n", " 'o',\n", " '.',\n", " '.',\n", " 'x',\n", " '.'): Counter({0: 1, 2: 1, 5: 3, 6: 1, 8: 1}),\n", " ('x',\n", " 'x',\n", " '.',\n", " '.',\n", " '.',\n", " 'o',\n", " 'o',\n", " '.',\n", " 'x'): Counter({2: 2, 3: 1, 4: 2, 7: 2}),\n", " ('x',\n", " 'o',\n", " 'o',\n", " '.',\n", " 'x',\n", " 'o',\n", " 'x',\n", " '.',\n", " '.'): Counter({3: 474, 7: 1, 8: 480}),\n", " ('x',\n", " 'x',\n", " '.',\n", " '.',\n", " '.',\n", " 'o',\n", " '.',\n", " '.',\n", " 'o'): Counter({2: 22, 3: 1, 4: 1, 6: 1, 7: 1}),\n", " ('o',\n", " 'x',\n", " '.',\n", " '.',\n", " 'x',\n", " '.',\n", " 'o',\n", " '.',\n", " '.'): Counter({2: 1, 3: 216, 5: 1, 7: 1116, 8: 2}),\n", " ('x',\n", " 'o',\n", " 'o',\n", " '.',\n", " '.',\n", " '.',\n", " 'x',\n", " '.',\n", " '.'): Counter({3: 376, 4: 181, 5: 313, 7: 85, 8: 341}),\n", " ('x',\n", " 'x',\n", " '.',\n", " '.',\n", " '.',\n", " '.',\n", " 'x',\n", " 'o',\n", " 'o'): Counter({2: 1, 3: 2, 4: 1, 5: 1}),\n", " ('x', 'x', 'o', '.', 'o', '.', 'x', 'x', 'o'): Counter({3: 3, 5: 10}),\n", " ('x', 'x', 'o', '.', '.', 'x', 'x', 'o', 'o'): Counter({3: 3, 4: 1}),\n", " ('x', 'x', 'o', '.', 'x', '.', 'o', '.', 'o'): Counter({3: 1, 5: 1, 7: 112}),\n", " ('o',\n", " 'o',\n", " '.',\n", " '.',\n", " 'x',\n", " 'x',\n", " '.',\n", " 'x',\n", " '.'): Counter({2: 12, 3: 11, 6: 5, 8: 1}),\n", " ('x', 'x', '.', 'o', 'o', 'x', 'x', 'o', '.'): Counter({2: 3, 8: 1}),\n", " ('x', 'x', 'o', 'o', '.', '.', 'x', 'x', 'o'): Counter({4: 3, 5: 6}),\n", " ('x',\n", " 'o',\n", " 'o',\n", " '.',\n", " 'x',\n", " 'x',\n", " 'o',\n", " '.',\n", " '.'): Counter({3: 239, 7: 136, 8: 146}),\n", " ('x', 'x', 'o', 'x', '.', 'o', '.', 'o', '.'): Counter({4: 1, 6: 8, 8: 8}),\n", " ('.',\n", " 'x',\n", " '.',\n", " '.',\n", " 'o',\n", " '.',\n", " '.',\n", " '.',\n", " '.'): Counter({0: 1, 2: 1, 3: 1, 5: 3, 6: 1, 7: 1, 8: 1}),\n", " ('x',\n", " 'o',\n", " '.',\n", " '.',\n", " 'x',\n", " 'o',\n", " 'x',\n", " '.',\n", " '.'): Counter({2: 1, 3: 1, 7: 1, 8: 1}),\n", " ('x', 'x', 'o', 'o', 'x', 'x', '.', 'o', 'o'): Counter({6: 3}),\n", " ('x',\n", " 'x',\n", " '.',\n", " '.',\n", " '.',\n", " 'o',\n", " 'o',\n", " '.',\n", " '.'): Counter({2: 9, 3: 3, 4: 8, 7: 6, 8: 6}),\n", " ('x',\n", " 'o',\n", " '.',\n", " '.',\n", " '.',\n", " '.',\n", " 'x',\n", " '.',\n", " '.'): Counter({2: 1, 3: 1, 4: 1, 5: 1, 7: 1, 8: 1}),\n", " ('x',\n", " 'o',\n", " '.',\n", " 'o',\n", " 'x',\n", " 'x',\n", " '.',\n", " 'o',\n", " '.'): Counter({2: 33, 6: 137, 8: 97}),\n", " ('x', 'x', 'o', '.', '.', 'x', 'o', 'x', 'o'): Counter({3: 1, 4: 5}),\n", " ('x', 'x', 'o', 'x', '.', 'o', 'o', 'o', 'x'): Counter({4: 23}),\n", " ('x',\n", " 'o',\n", " 'x',\n", " '.',\n", " '.',\n", " '.',\n", " 'o',\n", " 'x',\n", " '.'): Counter({3: 2, 4: 3, 5: 2, 8: 3}),\n", " ('x', 'x', '.', 'x', 'o', 'o', '.', 'o', '.'): Counter({2: 4, 6: 5, 8: 5}),\n", " ('x',\n", " 'x',\n", " '.',\n", " '.',\n", " '.',\n", " 'o',\n", " 'o',\n", " 'o',\n", " 'x'): Counter({2: 16, 3: 14, 4: 15}),\n", " ('x', 'x', 'o', 'o', 'x', 'o', 'x', 'o', '.'): Counter({8: 304}),\n", " ('x', 'o', 'x', 'o', 'o', '.', '.', '.', 'x'): Counter({5: 20, 6: 1, 7: 1}),\n", " ('x', 'x', '.', '.', 'o', 'x', 'x', 'o', 'o'): Counter({2: 1, 3: 1}),\n", " ('x',\n", " 'o',\n", " 'o',\n", " '.',\n", " 'x',\n", " '.',\n", " '.',\n", " 'x',\n", " '.'): Counter({3: 1, 5: 1, 6: 1, 8: 9}),\n", " ('x',\n", " 'x',\n", " '.',\n", " '.',\n", " 'o',\n", " 'o',\n", " '.',\n", " '.',\n", " 'x'): Counter({2: 3, 3: 6, 6: 3, 7: 1}),\n", " ('x', 'o', 'o', 'o', 'x', '.', '.', 'x', '.'): Counter({5: 4, 6: 9, 8: 128}),\n", " ('x',\n", " 'x',\n", " 'o',\n", " '.',\n", " '.',\n", " '.',\n", " 'x',\n", " 'o',\n", " '.'): Counter({3: 2, 4: 2, 5: 2, 8: 2}),\n", " ('x',\n", " '.',\n", " 'o',\n", " '.',\n", " 'x',\n", " '.',\n", " 'o',\n", " '.',\n", " '.'): Counter({1: 119, 3: 142, 5: 312, 7: 117, 8: 379}),\n", " ('o',\n", " 'x',\n", " '.',\n", " '.',\n", " '.',\n", " 'x',\n", " '.',\n", " 'o',\n", " '.'): Counter({2: 3, 3: 2, 4: 3, 6: 4, 8: 4}),\n", " ('o',\n", " 'o',\n", " '.',\n", " '.',\n", " 'x',\n", " 'x',\n", " '.',\n", " '.',\n", " '.'): Counter({2: 73, 3: 32, 6: 1, 7: 1, 8: 2}),\n", " ('x',\n", " '.',\n", " 'x',\n", " '.',\n", " '.',\n", " '.',\n", " 'o',\n", " '.',\n", " '.'): Counter({1: 1, 3: 1, 4: 1, 5: 1, 7: 6, 8: 2}),\n", " ('.',\n", " 'x',\n", " '.',\n", " 'o',\n", " '.',\n", " '.',\n", " '.',\n", " '.',\n", " '.'): Counter({0: 9, 2: 3, 4: 13, 5: 2, 6: 7, 7: 5, 8: 5}),\n", " ('x',\n", " 'x',\n", " '.',\n", " '.',\n", " 'o',\n", " '.',\n", " 'o',\n", " 'x',\n", " '.'): Counter({2: 15, 3: 1, 5: 3, 8: 4}),\n", " ('x',\n", " 'o',\n", " '.',\n", " '.',\n", " 'x',\n", " '.',\n", " '.',\n", " '.',\n", " 'o'): Counter({2: 2, 3: 648, 5: 11, 6: 823, 7: 1}),\n", " ('o',\n", " '.',\n", " '.',\n", " '.',\n", " 'o',\n", " 'x',\n", " '.',\n", " 'x',\n", " '.'): Counter({1: 1, 2: 1, 3: 1, 6: 2, 8: 10}),\n", " ('o',\n", " 'o',\n", " '.',\n", " '.',\n", " '.',\n", " 'x',\n", " '.',\n", " 'x',\n", " '.'): Counter({2: 2, 3: 3, 4: 4, 6: 2, 8: 2}),\n", " ('x', 'o', '.', '.', 'x', 'x', 'o', 'x', 'o'): Counter({2: 1, 3: 3}),\n", " ('x',\n", " 'o',\n", " '.',\n", " 'o',\n", " 'x',\n", " '.',\n", " '.',\n", " '.',\n", " '.'): Counter({2: 253, 5: 24, 6: 126, 7: 246, 8: 693}),\n", " ('x', '.', 'o', '.', 'x', 'x', 'o', 'x', 'o'): Counter({1: 1, 3: 1}),\n", " ('x',\n", " 'x',\n", " '.',\n", " 'o',\n", " 'o',\n", " '.',\n", " 'x',\n", " '.',\n", " '.'): Counter({2: 7, 5: 35, 7: 1, 8: 1}),\n", " ('x',\n", " 'o',\n", " '.',\n", " '.',\n", " '.',\n", " 'x',\n", " 'x',\n", " '.',\n", " 'o'): Counter({2: 3, 3: 3, 4: 3, 7: 2}),\n", " ('x', 'x', 'o', '.', 'o', 'x', 'x', 'o', '.'): Counter({3: 3, 8: 1}),\n", " ('x', 'x', 'o', 'o', '.', '.', 'x', '.', 'o'): Counter({4: 1, 5: 3, 7: 1}),\n", " ('x', 'x', 'o', 'o', 'o', 'x', 'x', '.', '.'): Counter({7: 3, 8: 3}),\n", " ('x',\n", " '.',\n", " 'o',\n", " '.',\n", " 'x',\n", " '.',\n", " '.',\n", " '.',\n", " 'o'): Counter({1: 1, 3: 1, 5: 973, 6: 1, 7: 1}),\n", " ('x', 'x', '.', '.', 'x', 'o', 'x', 'o', 'o'): Counter({2: 21, 3: 1}),\n", " ('x',\n", " 'o',\n", " 'o',\n", " '.',\n", " '.',\n", " '.',\n", " '.',\n", " '.',\n", " 'x'): Counter({3: 12, 4: 84, 5: 1, 6: 93, 7: 25}),\n", " ('x', 'x', 'o', '.', 'x', 'x', '.', 'o', 'o'): Counter({3: 3, 6: 26}),\n", " ('x', 'o', 'x', '.', '.', '.', 'o', 'x', 'o'): Counter({3: 3, 4: 3, 5: 3}),\n", " ('x',\n", " '.',\n", " '.',\n", " '.',\n", " '.',\n", " 'x',\n", " '.',\n", " '.',\n", " 'o'): Counter({1: 2, 2: 1, 3: 2, 4: 3, 6: 9, 7: 1}),\n", " ('x', 'o', 'o', 'o', 'x', 'x', '.', 'x', 'o'): Counter({6: 3}),\n", " ('x', 'x', 'o', '.', 'o', 'x', 'x', 'o', 'o'): Counter({3: 59}),\n", " ('x',\n", " 'x',\n", " '.',\n", " 'o',\n", " 'o',\n", " '.',\n", " '.',\n", " '.',\n", " 'x'): Counter({2: 12, 5: 13, 6: 4, 7: 1}),\n", " ('x',\n", " '.',\n", " 'x',\n", " '.',\n", " 'o',\n", " '.',\n", " '.',\n", " 'o',\n", " '.'): Counter({1: 298, 3: 1, 5: 1, 6: 1, 8: 1}),\n", " ('x',\n", " 'o',\n", " 'o',\n", " '.',\n", " 'x',\n", " '.',\n", " 'x',\n", " 'o',\n", " '.'): Counter({3: 405, 5: 621, 8: 640}),\n", " ('x', 'x', 'o', '.', 'o', 'o', 'x', '.', 'x'): Counter({3: 11, 7: 1}),\n", " ('x', 'x', '.', 'o', '.', 'o', 'x', '.', 'o'): Counter({2: 12, 4: 1, 7: 1}),\n", " ('o', 'x', '.', '.', 'o', 'x', 'o', 'x', '.'): Counter({2: 3, 3: 1, 8: 2}),\n", " ('x',\n", " 'x',\n", " '.',\n", " '.',\n", " 'o',\n", " '.',\n", " 'x',\n", " '.',\n", " 'o'): Counter({2: 1, 3: 1, 5: 1, 7: 1}),\n", " ('o', 'x', 'o', 'x', '.', 'x', '.', 'o', '.'): Counter({4: 4, 6: 3, 8: 3}),\n", " ('x',\n", " 'o',\n", " 'x',\n", " '.',\n", " '.',\n", " '.',\n", " '.',\n", " '.',\n", " '.'): Counter({3: 2, 4: 3, 5: 4, 6: 4, 7: 2, 8: 3}),\n", " ('x',\n", " 'x',\n", " 'o',\n", " 'x',\n", " '.',\n", " '.',\n", " 'o',\n", " '.',\n", " '.'): Counter({4: 4, 5: 4, 7: 2, 8: 3}),\n", " ('o',\n", " 'x',\n", " '.',\n", " '.',\n", " '.',\n", " 'x',\n", " 'o',\n", " 'x',\n", " '.'): Counter({2: 3, 3: 3, 4: 5, 8: 3}),\n", " ('x', 'x', '.', 'o', 'o', 'x', 'o', '.', '.'): Counter({2: 13, 7: 1, 8: 1}),\n", " ('x',\n", " 'x',\n", " '.',\n", " 'o',\n", " 'x',\n", " '.',\n", " 'o',\n", " '.',\n", " 'o'): Counter({2: 342, 5: 1, 7: 72}),\n", " ('x',\n", " '.',\n", " 'x',\n", " '.',\n", " 'o',\n", " '.',\n", " '.',\n", " '.',\n", " '.'): Counter({1: 70, 3: 2, 5: 1, 6: 1, 7: 1, 8: 1}),\n", " ('o',\n", " 'x',\n", " 'o',\n", " 'x',\n", " 'x',\n", " '.',\n", " '.',\n", " '.',\n", " '.'): Counter({5: 1, 6: 1, 7: 1, 8: 1}),\n", " ('x',\n", " 'x',\n", " '.',\n", " 'x',\n", " 'o',\n", " 'o',\n", " '.',\n", " '.',\n", " '.'): Counter({2: 1, 6: 3, 7: 1, 8: 1}),\n", " ('x', 'x', 'o', 'o', 'o', '.', '.', 'x', '.'): Counter({5: 1, 6: 1, 8: 1}),\n", " ('x', 'x', '.', '.', '.', 'o', 'o', 'x', 'o'): Counter({2: 4, 3: 3, 4: 7}),\n", " ('x', 'x', 'o', '.', 'o', 'o', '.', '.', 'x'): Counter({3: 1, 6: 1, 7: 1}),\n", " ('x', 'x', 'o', 'x', '.', '.', '.', 'o', 'o'): Counter({4: 1, 5: 3, 6: 5}),\n", " ('o',\n", " 'x',\n", " '.',\n", " '.',\n", " '.',\n", " 'x',\n", " 'o',\n", " '.',\n", " '.'): Counter({2: 3, 3: 3, 4: 2, 7: 3, 8: 1}),\n", " ('x',\n", " '.',\n", " 'o',\n", " '.',\n", " '.',\n", " 'x',\n", " '.',\n", " '.',\n", " '.'): Counter({1: 1, 3: 2, 4: 4, 6: 2, 7: 2, 8: 1}),\n", " ('x',\n", " 'x',\n", " '.',\n", " '.',\n", " '.',\n", " 'o',\n", " 'x',\n", " '.',\n", " 'o'): Counter({2: 7, 3: 3, 4: 2, 7: 1}),\n", " ('x', 'o', '.', '.', 'o', 'x', 'x', '.', 'o'): Counter({2: 1, 3: 24, 7: 4}),\n", " ('x',\n", " 'o',\n", " '.',\n", " '.',\n", " '.',\n", " 'o',\n", " '.',\n", " 'x',\n", " '.'): Counter({2: 5, 3: 4, 4: 12, 6: 23, 8: 19}),\n", " ('x',\n", " 'x',\n", " 'o',\n", " '.',\n", " '.',\n", " 'o',\n", " 'x',\n", " 'o',\n", " '.'): Counter({3: 43, 4: 1, 8: 43})})" ] }, "execution_count": 221, "metadata": {}, "output_type": "execute_result" } ], "source": [ "p1 = new_menace()\n", "p2 = new_menace()\n", "for i in range(100000):\n", " if random.choice([True, False]):\n", " g = new_game(p1, p2)\n", " else:\n", " g = new_game(p2, p1)\n", " play_game(g)\n", " update_players(g)\n", "p1, p2" ] }, { "cell_type": "code", "execution_count": 223, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "You play first.\n", "The board is:\n", "...\n", "...\n", "...\n", "Your move (0, 1, 2, 3, 4, 5, 6, 7, 8)? 4\n", "Opponent moved to 1\n", "The board is:\n", ".o.\n", ".x.\n", "...\n", "Your move (0, 2, 3, 5, 6, 7, 8)? 0\n", "Opponent moved to 5\n", "The board is:\n", "xo.\n", ".xo\n", "...\n", "Your move (2, 3, 6, 7, 8)? 8\n", "\n", "Final position\n", "xo.\n", ".xo\n", "..x\n", "You won\n" ] } ], "source": [ "# p1 = new_menace()\n", "ph = new_human()\n", "if random.choice([True, False]):\n", " g = new_game(p1, ph)\n", "else:\n", " g = new_game(ph, p1)\n", "play_game(g)\n", "\n", "print('\\nFinal position')\n", "print(show_board(g['board']))\n", "if winner(g['board']) is None:\n", " print('A draw')\n", "elif winning_player(g) == ph:\n", " print('You won')\n", "else:\n", " print('You lost')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Training and testing" ] }, { "cell_type": "code", "execution_count": 224, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Wins 9656 games out of 10000 , or 96.56 %\n", "Draws 307 games out of 10000 , or 3.07 %\n" ] } ], "source": [ "p1 = new_menace()\n", "p2 = new_menace()\n", "for i in range(10**5):\n", " if random.choice([True, False]):\n", " g = new_game(p1, p2)\n", " else:\n", " g = new_game(p2, p1)\n", " play_game(g)\n", " update_players(g)\n", "p1, p2\n", "\n", "wins = 0\n", "draws = 0\n", "plays = 10000\n", "for _ in range(plays):\n", " g = new_game(p1, p2)\n", " play_game(g)\n", " if winner(g['board']) is None:\n", " draws += 1\n", " elif winning_player(g) == p1: \n", " wins += 1\n", "print(\"Wins\", wins, \"games out of\", plays, \", or \", (100.0 * wins) / plays, \"%\")\n", "print(\"Draws\", draws, \"games out of\", plays, \", or \", (100.0 * draws) / plays, \"%\")\n", "\n", "p_floor1 = p1" ] }, { "cell_type": "code", "execution_count": 225, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Wins 9783 games out of 10000 , or 97.83 %\n", "Draws 212 games out of 10000 , or 2.12 %\n" ] } ], "source": [ "p1 = new_menace()\n", "p2 = new_menace()\n", "for i in range(10**6):\n", " if random.choice([True, False]):\n", " g = new_game(p1, p2)\n", " else:\n", " g = new_game(p2, p1)\n", " play_game(g)\n", " update_players(g)\n", "p1, p2\n", "\n", "wins = 0\n", "draws = 0\n", "plays = 10000\n", "for _ in range(plays):\n", " g = new_game(p1, p2)\n", " play_game(g)\n", " if winner(g['board']) is None:\n", " draws += 1\n", " elif winning_player(g) == p1: \n", " wins += 1\n", "print(\"Wins\", wins, \"games out of\", plays, \", or \", (100.0 * wins) / plays, \"%\")\n", "print(\"Draws\", draws, \"games out of\", plays, \", or \", (100.0 * draws) / plays, \"%\")\n", "\n", "p_floor1m = p1" ] }, { "cell_type": "code", "execution_count": 226, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Wins 9981 games out of 10000 , or 99.81 %\n", "Draws 19 games out of 10000 , or 0.19 %\n" ] } ], "source": [ "p1 = new_menace()\n", "p2 = new_menace()\n", "for i in range(100000):\n", " if random.choice([True, False]):\n", " g = new_game(p1, p2)\n", " else:\n", " g = new_game(p2, p1)\n", " play_game(g)\n", " update_players(g, allow_drop_move=True)\n", "p1, p2\n", "\n", "wins = 0\n", "draws = 0\n", "plays = 10000\n", "for _ in range(plays):\n", " g = new_game(p1, p2)\n", " play_game(g)\n", " if winner(g['board']) is None:\n", " draws += 1\n", " elif winning_player(g) == p1: \n", " wins += 1\n", "print(\"Wins\", wins, \"games out of\", plays, \", or \", (100.0 * wins) / plays, \"%\")\n", "print(\"Draws\", draws, \"games out of\", plays, \", or \", (100.0 * draws) / plays, \"%\")\n", "\n", "p_floor0 = p1" ] }, { "cell_type": "code", "execution_count": 227, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Wins 5627 games out of 10000 , or 56.27 %\n", "Draws 1316 games out of 10000 , or 13.16 %\n" ] } ], "source": [ "p1 = new_menace()\n", "p2 = new_menace()\n", "for _ in range(100):\n", " if random.choice([True, False]):\n", " g = new_game(p1, p2)\n", " else:\n", " g = new_game(p2, p1)\n", " play_game(g)\n", " update_players(g)\n", " \n", "wins = 0\n", "draws = 0\n", "plays = 10000\n", "for _ in range(plays):\n", " g = new_game(p1, p2)\n", " play_game(g)\n", " if winner(g['board']) is None:\n", " draws += 1\n", " elif winning_player(g) == p1: \n", " wins += 1\n", "\n", "print(\"Wins\", wins, \"games out of\", plays, \", or \", (100.0 * wins) / plays, \"%\")\n", "print(\"Draws\", draws, \"games out of\", plays, \", or \", (100.0 * draws) / plays, \"%\")\n", " \n", "p_parttrained = p1" ] }, { "cell_type": "code", "execution_count": 228, "metadata": { "collapsed": true }, "outputs": [], "source": [ "newbie = new_menace()" ] }, { "cell_type": "code", "execution_count": 229, "metadata": { "collapsed": true }, "outputs": [], "source": [ "players = [p_floor1, p_floor0, newbie, p_parttrained, p_floor1m]\n", "player_names = ['Floor 1', 'Floor 0', 'Newbie', 'Part trained', 'Floor 1, million train']" ] }, { "cell_type": "code", "execution_count": 230, "metadata": { "collapsed": true }, "outputs": [], "source": [ "def count_wins(p1, p2, plays=1000):\n", " wins = 0\n", " draws = 0\n", " for _ in range(plays):\n", " g = new_game(p1, p2)\n", " play_game(g)\n", " if winner(g['board']) is None:\n", " draws += 1\n", " elif winning_player(g) == p1: \n", " wins += 1\n", " return wins, draws" ] }, { "cell_type": "code", "execution_count": 231, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "{(0, 0): (983, 17),\n", " (0, 1): (21, 977),\n", " (0, 2): (978, 18),\n", " (0, 3): (978, 20),\n", " (0, 4): (973, 26),\n", " (1, 0): (376, 137),\n", " (1, 1): (725, 275),\n", " (1, 2): (680, 115),\n", " (1, 3): (654, 129),\n", " (1, 4): (390, 131),\n", " (2, 0): (360, 105),\n", " (2, 1): (243, 161),\n", " (2, 2): (880, 120),\n", " (2, 3): (573, 148),\n", " (2, 4): (271, 135),\n", " (3, 0): (331, 110),\n", " (3, 1): (232, 186),\n", " (3, 2): (586, 131),\n", " (3, 3): (875, 125),\n", " (3, 4): (264, 122),\n", " (4, 0): (924, 75),\n", " (4, 1): (503, 496),\n", " (4, 2): (983, 17),\n", " (4, 3): (992, 8),\n", " (4, 4): (903, 97)}" ] }, "execution_count": 231, "metadata": {}, "output_type": "execute_result" } ], "source": [ "results = {}\n", "\n", "for i, p1 in enumerate(players):\n", " for j, p2 in enumerate(players):\n", " results[i, j] = count_wins(p1, p2)\n", "results" ] }, { "cell_type": "code", "execution_count": 232, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", "\n", "\n", "\n", "\n", "\n", " \n", " \n", " \n", " \n", "\n", "\n", "\n", " \n", " \n", " \n", " \n", "\n", "\n", "\n", " \n", " \n", " \n", " \n", "\n", "\n", "\n", " \n", " \n", " \n", " \n", "\n", "\n", "\n", " \n", " \n", " \n", " \n", "\n", "
  Player 1
  Floor 1Floor 0NewbiePart trainedFloor 1, million train
Player 2Floor 1 983 / 17376 / 137360 / 105331 / 110924 / 75
Floor 0 21 / 977725 / 275243 / 161232 / 186503 / 496
Newbie 978 / 18680 / 115880 / 120586 / 131983 / 17
Part trained 978 / 20654 / 129573 / 148875 / 125992 / 8
Floor 1, million train 973 / 26390 / 131271 / 135264 / 122903 / 97
" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "result_table = '\\n'\n", "result_table += '\\n'.format(len(players))\n", "result_table += ''\n", "for i in range(len(players)):\n", " result_table += ''.format(player_names[i])\n", "result_table += '\\n'\n", "\n", "for i in range(len(players)):\n", " result_table += '\\n'\n", " if i == 0:\n", " result_table += '\\n'.format(len(players))\n", " result_table += ''.format(player_names[i])\n", " for j in range(len(players)):\n", " result_table += ' \\n'.format(results[j, i][0], results[j, i][1])\n", " result_table += '\\n'\n", "result_table += \"
  Player 1
  {}
Player 2{}{} / {}
\"\n", "# print(result_table)\n", "display(HTML(result_table))" ] }, { "cell_type": "code", "execution_count": 233, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "... ... ... ... ... ... ..o .xo .xo xxo\n", "... .x. .x. .xx oxx oxx oxx oxx oxx oxx\n", "... ... ..o ..o ..o x.o x.o x.o xoo xoo\n" ] } ], "source": [ "g = new_game(p_floor1m, p_floor0)\n", "play_game(g)\n", "print(show_boards([m['board'] for m in g['history']] + [g['board']]))" ] }, { "cell_type": "code", "execution_count": 234, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "... x.. x.. x.. x.o x.o xoo xoo xoo\n", "... ... ... ..x ..x ..x ..x ..x .ox\n", "... ... o.. o.. o.. ox. ox. oxx oxx\n" ] } ], "source": [ "g = new_game(p_floor0, p_floor0)\n", "play_game(g)\n", "print(show_boards([m['board'] for m in g['history']] + [g['board']]))" ] }, { "cell_type": "code", "execution_count": 235, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "x.o\n", ".ox\n", ".xo Counter({3: 4, 6: 3, 1: 2}) \n", "\n", "oxo\n", "...\n", ".x. Counter({4: 5, 8: 3, 3: 3, 5: 3, 6: 3}) \n", "\n", "xx.\n", "o.x\n", "oox Counter({2: 3, 4: 3}) \n", "\n", "o..\n", ".xx\n", ".o. Counter({2: 6, 1: 4, 8: 3, 3: 3, 6: 3}) \n", "\n", "xo.\n", ".xx\n", "..o Counter({2: 3, 3: 3, 6: 3, 7: 2}) \n", "\n", "xo.\n", "..o\n", "x.. Counter({8: 3, 3: 3, 4: 3, 7: 3, 2: 2}) \n", "\n", "xx.\n", ".ox\n", "oxo Counter({2: 7, 3: 1}) \n", "\n", "xx.\n", "o..\n", "xo. Counter({8: 3, 2: 3, 4: 3, 5: 3}) \n", "\n", "xx.\n", "...\n", "oxo Counter({2: 5, 4: 4, 3: 1, 5: 1}) \n", "\n", "xo.\n", "...\n", "... Counter({8: 6, 7: 5, 3: 4, 5: 4, 2: 3, 4: 3, 6: 2}) \n", "\n", "xox\n", "ox.\n", "... Counter({5: 3, 8: 2, 6: 2, 7: 2}) \n", "\n", "xoo\n", ".xx\n", ".xo Counter({3: 3, 6: 0}) \n", "\n", "xx.\n", "...\n", "oox Counter({5: 3, 2: 2, 3: 2, 4: 2}) \n", "\n", "xxo\n", ".ox\n", "... Counter({6: 7, 8: 5, 3: 3, 7: 3}) \n", "\n", "xoo\n", ".xo\n", ".x. Counter({8: 7, 6: 4, 3: 3}) \n", "\n", "xx.\n", "o.x\n", "xoo Counter({2: 3, 4: 1}) \n", "\n", "xo.\n", ".ox\n", ".x. Counter({8: 3, 2: 3, 3: 2, 6: 2}) \n", "\n", "xx.\n", ".ox\n", "oo. Counter({2: 5, 8: 3, 3: 3}) \n", "\n", ".x.\n", "xoo\n", "... Counter({0: 3, 8: 3, 2: 3, 6: 3, 7: 1}) \n", "\n", "ox.\n", "x..\n", "... Counter({4: 4, 8: 4, 6: 3, 7: 3, 2: 2, 5: 2}) \n", "\n", "xx.\n", "oox\n", ".xo Counter({2: 3, 6: 2}) \n", "\n", "o.o\n", ".x.\n", ".x. Counter({1: 4, 3: 4, 6: 4, 8: 3, 5: 3}) \n", "\n", "xxo\n", ".x.\n", "..o Counter({5: 7, 7: 5, 6: 4, 3: 3}) \n", "\n", "xxo\n", "x.x\n", "o.o Counter({7: 8, 4: 7}) \n", "\n", "x.o\n", "..o\n", ".x. Counter({8: 4, 6: 4, 4: 3, 1: 2, 3: 2}) \n", "\n", "xxo\n", "o..\n", "o.x Counter({4: 3, 5: 3, 7: 3}) \n", "\n", "xx.\n", ".xo\n", ".oo Counter({2: 3, 6: 3, 3: 1}) \n", "\n", "ox.\n", ".ox\n", "... Counter({8: 3, 7: 3, 6: 2, 2: 1, 3: 1}) \n", "\n", "xo.\n", ".x.\n", ".o. Counter({8: 5, 2: 3, 3: 3, 5: 3, 6: 3}) \n", "\n", "x.o\n", "..x\n", ".o. Counter({3: 4, 8: 3, 1: 3, 4: 3, 6: 3}) \n", "\n", "xox\n", "oxo\n", "ox. Counter({8: 8}) \n", "\n", "oxo\n", "x..\n", ".xo Counter({4: 4, 5: 3, 6: 3}) \n", "\n", "o..\n", "..x\n", "... Counter({4: 7, 1: 0, 2: 0, 3: 0, 6: 0, 7: 0, 8: 0}) \n", "\n", "xxo\n", "...\n", "..o Counter({3: 3, 5: 3, 6: 3, 7: 3, 4: 2}) \n", "\n", "xx.\n", "o.x\n", "oo. Counter({2: 4, 8: 3, 4: 3}) \n", "\n", "xx.\n", ".oo\n", "... Counter({2: 5, 3: 5, 8: 4, 6: 4, 7: 1}) \n", "\n", "ox.\n", ".x.\n", "..o Counter({6: 6, 7: 5, 2: 4, 3: 3, 5: 3}) \n", "\n", "xxo\n", "o.x\n", "... Counter({6: 4, 8: 3, 4: 3, 7: 3}) \n", "\n", "oxo\n", "xox\n", "... Counter({8: 3, 6: 3, 7: 2}) \n", "\n", "xo.\n", ".xo\n", ".x. Counter({2: 4, 8: 3, 3: 3, 6: 3}) \n", "\n", "xxo\n", ".x.\n", "xoo Counter({5: 12, 3: 3}) \n", "\n", "x..\n", "..o\n", "... Counter({4: 7, 7: 4, 8: 4, 1: 3, 2: 3, 3: 3, 6: 3}) \n", "\n", "ox.\n", ".x.\n", "... Counter({7: 5, 2: 0, 3: 0, 5: 0, 6: 0, 8: 0}) \n", "\n", "xxo\n", ".ox\n", "..o Counter({6: 3, 3: 2, 7: 2}) \n", "\n", "xx.\n", "ox.\n", "..o Counter({6: 4, 2: 3, 5: 3, 7: 2}) \n", "\n", "xo.\n", "oxx\n", "..o Counter({2: 5, 6: 4, 7: 3}) \n", "\n", "xx.\n", "oxx\n", "oo. Counter({8: 7, 2: 2}) \n", "\n", "xo.\n", "...\n", ".xo Counter({2: 3, 3: 3, 4: 3, 5: 3, 6: 3}) \n", "\n", "xx.\n", "oox\n", "xoo Counter({2: 12}) \n", "\n", "xx.\n", ".oo\n", ".xo Counter({3: 5, 2: 3, 6: 1}) \n", "\n", "xo.\n", "oxx\n", "... Counter({8: 3, 2: 3, 6: 3, 7: 2}) \n", "\n", "xx.\n", "o..\n", "ox. Counter({8: 3, 2: 3, 4: 3, 5: 3}) \n", "\n", "xox\n", ".x.\n", "oo. Counter({8: 5, 5: 2, 3: 1}) \n", "\n", "xxo\n", "o.x\n", "xo. Counter({8: 3, 4: 3}) \n", "\n", "xoo\n", ".xx\n", "... Counter({8: 3, 3: 3, 7: 3, 6: 2}) \n", "\n", "xx.\n", "oo.\n", ".x. Counter({2: 4, 5: 4, 6: 4, 8: 3}) \n", "\n", "xo.\n", "...\n", ".ox Counter({2: 3, 3: 3, 4: 3, 5: 3, 6: 3}) \n", "\n", "xox\n", "o..\n", "o.x Counter({4: 4, 5: 3, 7: 3}) \n", "\n", "xx.\n", ".ox\n", "..o Counter({2: 3, 6: 3, 3: 2, 7: 1}) \n", "\n", "xx.\n", "..o\n", "xoo Counter({2: 5, 3: 3, 4: 3}) \n", "\n", "xx.\n", ".o.\n", ".ox Counter({3: 3, 5: 3, 6: 3, 2: 2}) \n", "\n", "xxo\n", "o..\n", "... Counter({4: 4, 8: 3, 5: 3, 6: 3, 7: 3}) \n", "\n", "xxo\n", "x.x\n", ".oo Counter({6: 5, 4: 1}) \n", "\n", "xoo\n", "oxx\n", ".x. Counter({8: 3, 6: 0}) \n", "\n", "xxo\n", ".ox\n", "x.o Counter({3: 3, 7: 1}) \n", "\n", "xxo\n", "...\n", "ox. Counter({4: 4, 8: 3, 3: 3, 5: 3}) \n", "\n", "x..\n", ".ox\n", "..o Counter({6: 5, 1: 3, 7: 3, 2: 2, 3: 2}) \n", "\n", "xox\n", "ox.\n", "..o Counter({6: 4, 5: 3, 7: 3}) \n", "\n", "ox.\n", "xx.\n", "..o Counter({2: 3, 5: 3, 6: 3, 7: 3}) \n", "\n", "xxo\n", "ox.\n", "..o Counter({5: 3, 7: 3, 6: 2}) \n", "\n", "xx.\n", ".o.\n", "oxo Counter({2: 4, 5: 3, 3: 2}) \n", "\n", "xxo\n", "oox\n", ".ox Counter({6: 3}) \n", "\n", ".x.\n", "ox.\n", ".o. Counter({8: 3, 2: 3, 5: 3, 6: 3, 0: 2}) \n", "\n", "...\n", ".x.\n", "... Counter({8: 15, 0: 0, 1: 0, 2: 0, 3: 0, 5: 0, 6: 0, 7: 0}) \n", "\n", "xxo\n", ".xx\n", "o.o Counter({7: 8, 3: 0}) \n", "\n", "xoo\n", "oxx\n", "... Counter({7: 5, 8: 4, 6: 3}) \n", "\n", ".x.\n", "...\n", ".o. Counter({3: 6, 6: 6, 0: 3, 2: 3, 5: 3, 8: 2, 4: 1}) \n", "\n", "xx.\n", "o..\n", "xoo Counter({2: 3, 4: 3, 5: 3}) \n", "\n", "xxo\n", "o.x\n", "xoo Counter({4: 3}) \n", "\n", "xo.\n", "...\n", "xo. Counter({8: 3, 2: 3, 3: 3, 4: 3, 5: 3}) \n", "\n", ".x.\n", "ox.\n", "... Counter({0: 3, 2: 3, 8: 3, 5: 2, 6: 2, 7: 2}) \n", "\n", "ox.\n", "o..\n", ".x. Counter({4: 4, 5: 3, 6: 3, 2: 2, 8: 1}) \n", "\n", "xxo\n", "oxo\n", "... Counter({8: 5, 6: 3, 7: 3}) \n", "\n", "xxo\n", ".xo\n", ".o. Counter({3: 4, 8: 3, 6: 3}) \n", "\n", "xxo\n", "..x\n", "o.. Counter({4: 7, 8: 4, 7: 3, 3: 2}) \n", "\n", "xxo\n", ".oo\n", ".xx Counter({3: 5, 6: 3}) \n", "\n", "xx.\n", "oxo\n", "... Counter({8: 3, 2: 3, 6: 3, 7: 3}) \n", "\n", "xxo\n", "xxo\n", "oo. Counter({8: 9}) \n", "\n", "xx.\n", "xoo\n", "..o Counter({6: 5, 2: 3, 7: 2}) \n", "\n", "xox\n", "o..\n", ".ox Counter({4: 3, 5: 3, 6: 3}) \n", "\n", "xoo\n", ".x.\n", "... Counter({8: 6, 5: 4, 7: 4, 3: 3, 6: 3}) \n", "\n", "xx.\n", "o..\n", "... Counter({4: 4, 5: 3, 7: 3, 8: 3, 2: 2, 6: 2}) \n", "\n", "x..\n", "..x\n", ".o. Counter({6: 5, 2: 4, 3: 3, 4: 3, 8: 3, 1: 2}) \n", "\n", "xxo\n", ".x.\n", ".oo Counter({3: 1, 5: 0, 6: 0}) \n", "\n", "xo.\n", "..x\n", ".o. Counter({8: 3, 4: 3, 6: 3, 3: 2, 2: 1}) \n", "\n", "xo.\n", "o.x\n", ".xo Counter({2: 3, 4: 3, 6: 3}) \n", "\n", "xxo\n", "oox\n", "xox Counter() \n", "\n", "xxo\n", ".o.\n", "x.. Counter({3: 3, 5: 3, 7: 1, 8: 0}) \n", "\n", "xx.\n", ".o.\n", "xo. Counter({3: 3, 5: 3, 2: 2, 8: 0}) \n", "\n", "xxo\n", "ox.\n", "xoo Counter({5: 3}) \n", "\n", "xo.\n", "..o\n", "..x Counter({2: 3, 3: 3, 4: 3, 6: 3, 7: 3}) \n", "\n", "xxo\n", "..o\n", "xox Counter({3: 1, 4: 0}) \n", "\n", "x.o\n", "...\n", "..x Counter({7: 1, 1: 0, 3: 0, 4: 0, 5: 0, 6: 0}) \n", "\n", "x.o\n", ".o.\n", "..x Counter({1: 3, 3: 3, 5: 3, 6: 3, 7: 3}) \n", "\n", "x.x\n", ".o.\n", "o.. Counter({7: 6, 3: 5, 8: 4, 1: 4, 5: 3}) \n", "\n", "xx.\n", ".x.\n", "o.o Counter({7: 12, 5: 4, 2: 2, 3: 2}) \n", "\n", "xox\n", ".x.\n", "o.o Counter({3: 3, 5: 3, 7: 3}) \n", "\n", "x.o\n", "..x\n", ".xo Counter({3: 2, 4: 2, 6: 2, 1: 1}) \n", "\n", "x.o\n", ".x.\n", ".o. Counter({5: 6, 3: 5, 6: 4, 8: 3, 1: 2}) \n", "\n", "xoo\n", "oxx\n", "ox. Counter({8: 8}) \n", "\n", "xxo\n", ".o.\n", "xo. Counter({5: 4, 8: 3, 3: 3}) \n", "\n", "xxo\n", "oxx\n", "..o Counter({7: 3, 6: 0}) \n", "\n", "xxo\n", "...\n", "xoo Counter({3: 3, 4: 3, 5: 3}) \n", "\n", "x.x\n", ".o.\n", "ox. Counter({1: 2, 5: 1, 8: 0, 3: 0}) \n", "\n", "ox.\n", "xox\n", ".o. Counter({8: 3, 2: 3, 6: 3}) \n", "\n", "x..\n", ".ox\n", ".o. Counter({1: 3, 6: 3, 8: 2, 3: 2, 2: 1}) \n", "\n", "xxo\n", "oxx\n", "oo. Counter({8: 12}) \n", "\n", "xo.\n", "...\n", ".x. Counter({2: 4, 4: 3, 5: 3, 8: 3, 3: 2, 6: 2}) \n", "\n", "xxo\n", ".o.\n", ".xo Counter({5: 3, 6: 2, 3: 1}) \n", "\n", "xxo\n", "...\n", ".xo Counter({5: 7, 4: 5, 3: 2, 6: 2}) \n", "\n", "xxo\n", "oxx\n", ".o. Counter({8: 3, 6: 0}) \n", "\n", "xox\n", ".x.\n", ".o. Counter({8: 3, 3: 3, 5: 3, 6: 3}) \n", "\n", "xx.\n", ".oo\n", "x.o Counter({3: 6, 2: 5, 7: 1}) \n", "\n", "xxo\n", "oo.\n", "xx. Counter({5: 6, 8: 3}) \n", "\n", "xxo\n", "oox\n", "xo. Counter({8: 3}) \n", "\n", "o..\n", ".x.\n", "... Counter({1: 39, 2: 18, 8: 10, 7: 6, 5: 4, 6: 2, 3: 0}) \n", "\n", "x..\n", "..x\n", ".oo Counter({2: 4, 3: 3, 4: 3, 6: 3, 1: 2}) \n", "\n", "xx.\n", ".o.\n", "... Counter({2: 7, 3: 2, 5: 1, 6: 1, 8: 1, 7: 0}) \n", "\n", "xo.\n", "...\n", "x.o Counter({2: 3, 3: 3, 4: 3, 5: 3, 7: 3}) \n", "\n", "xxo\n", "oox\n", ".x. Counter({6: 4, 8: 3}) \n", "\n", "xox\n", "oo.\n", ".x. Counter({5: 4, 8: 0, 6: 0}) \n", "\n", "xoo\n", ".xx\n", "..o Counter({3: 6, 6: 4, 7: 3}) \n", "\n", "x..\n", ".ox\n", ".xo Counter({2: 4, 1: 3, 3: 3, 6: 3}) \n", "\n", ".x.\n", "o..\n", ".x. Counter({0: 3, 2: 3, 4: 3, 6: 3, 8: 3, 5: 2}) \n", "\n", "xoo\n", "o.x\n", ".x. Counter({4: 4, 8: 3, 6: 3}) \n", "\n", "xxo\n", "x..\n", ".o. Counter({6: 4, 8: 3, 4: 3, 5: 3}) \n", "\n", "xx.\n", "oox\n", "oxo Counter({2: 10}) \n", "\n", "xo.\n", ".x.\n", "x.o Counter({2: 3, 3: 3, 7: 3, 5: 2}) \n", "\n", "x..\n", "...\n", "..o Counter({2: 4, 3: 4, 5: 4, 6: 4, 7: 4, 1: 2, 4: 2}) \n", "\n", "xxo\n", "oo.\n", "x.. Counter({5: 3, 7: 3, 8: 2}) \n", "\n", "xxo\n", "x.o\n", "o.. Counter({8: 4, 4: 3, 7: 3}) \n", "\n", "xx.\n", "o.x\n", ".oo Counter({2: 3, 4: 3, 6: 3}) \n", "\n", "xo.\n", ".oo\n", "x.x Counter({3: 4, 7: 4, 2: 2}) \n", "\n", "xxo\n", ".x.\n", "o.. Counter({8: 3, 5: 3, 7: 2, 3: 1}) \n", "\n", "xox\n", "o..\n", ".x. Counter({8: 3, 4: 3, 5: 3, 6: 3}) \n", "\n", "xxo\n", "...\n", "oox Counter({3: 3, 4: 3, 5: 3}) \n", "\n", "oxo\n", "xx.\n", "o.. Counter({7: 6, 8: 4, 5: 3}) \n", "\n", "xo.\n", ".x.\n", "o.. Counter({5: 6, 8: 4, 2: 3, 3: 3, 7: 3}) \n", "\n", "xoo\n", "..o\n", "x.x Counter({3: 3, 4: 3, 7: 3}) \n", "\n", "x.x\n", ".o.\n", "x.o Counter({5: 3, 1: 2, 3: 2, 7: 2}) \n", "\n", "xo.\n", ".xo\n", "xo. Counter({8: 3, 2: 3, 3: 3}) \n", "\n", "xxo\n", "oox\n", "x.o Counter({7: 3}) \n", "\n", "xxo\n", "o..\n", "x.. Counter({8: 4, 5: 4, 4: 3, 7: 2}) \n", "\n", "xxo\n", "..o\n", "o.x Counter({3: 3, 4: 3, 7: 2}) \n", "\n", "xx.\n", "oxo\n", ".o. Counter({8: 3, 2: 3, 6: 3}) \n", "\n", "xx.\n", "ox.\n", ".o. Counter({6: 4, 8: 3, 2: 3, 5: 2}) \n", "\n", "oxo\n", "x.x\n", "o.. Counter({8: 4, 4: 3, 7: 3}) \n", "\n", "xx.\n", "o.o\n", "..x Counter({2: 3, 4: 3, 7: 3, 6: 2}) \n", "\n", "xxo\n", "x.o\n", ".ox Counter({4: 2, 6: 2}) \n", "\n", "xo.\n", "..x\n", "oxo Counter({2: 3, 3: 3, 4: 3}) \n", "\n", "xxo\n", "o.o\n", ".xx Counter({4: 5, 6: 2}) \n", "\n", "xo.\n", ".o.\n", "x.. Counter({3: 9, 5: 4, 7: 4, 8: 2, 2: 2}) \n", "\n", "xxo\n", "ox.\n", "... Counter({5: 4, 6: 3, 7: 3, 8: 2}) \n", "\n", "xxo\n", "o.o\n", "x.x Counter({4: 4, 7: 2}) \n", "\n", "x.x\n", "...\n", "oxo Counter({1: 3, 3: 0, 4: 0, 5: 0}) \n", "\n", "xx.\n", "oox\n", "x.o Counter({2: 3, 7: 0}) \n", "\n", "xoo\n", ".ox\n", "x.. Counter({7: 7, 3: 4, 8: 3}) \n", "\n", "xxo\n", "o.x\n", ".xo Counter({4: 3, 6: 1}) \n", "\n", "xxo\n", "..x\n", "o.o Counter({4: 3, 7: 3, 3: 2}) \n", "\n", "ox.\n", "...\n", ".xo Counter({3: 3, 4: 3, 5: 3, 6: 3, 2: 2}) \n", "\n", "xxo\n", "o.x\n", "x.o Counter({4: 3, 7: 3}) \n", "\n", "xxo\n", "oox\n", ".xo Counter({6: 3}) \n", "\n", "xx.\n", ".xo\n", ".o. Counter({8: 3, 2: 3, 6: 3, 3: 2}) \n", "\n", "xxo\n", "o.o\n", "xox Counter({4: 5}) \n", "\n", "xx.\n", ".o.\n", ".o. Counter({2: 5, 3: 5, 5: 4, 8: 3, 6: 2}) \n", "\n", "xx.\n", "oo.\n", ".xo Counter({5: 4, 2: 3, 6: 3}) \n", "\n", "xx.\n", "oxo\n", "xo. Counter({2: 3, 8: 2}) \n", "\n", "ox.\n", "ox.\n", "... Counter({7: 6, 8: 4, 6: 4, 2: 3, 5: 2}) \n", "\n", "xxo\n", "o.x\n", "o.x Counter({4: 7, 7: 0}) \n", "\n", "xx.\n", "oxx\n", "o.o Counter({7: 12, 2: 1}) \n", "\n", "xx.\n", "oo.\n", "... Counter({2: 48625, 5: 1, 8: 0, 6: 0, 7: 0}) \n", "\n", "x.o\n", ".o.\n", ".x. Counter({6: 6, 3: 3, 8: 2, 5: 2, 1: 1}) \n", "\n", "xx.\n", ".oo\n", "o.x Counter({2: 3, 3: 3, 7: 3}) \n", "\n", "ox.\n", "xo.\n", "... Counter({8: 3, 2: 3, 5: 3, 7: 3, 6: 2}) \n", "\n", ".x.\n", "x.o\n", "... Counter({6: 4, 0: 3, 7: 3, 8: 3, 4: 2, 2: 1}) \n", "\n", "xxo\n", "...\n", "o.x Counter({4: 7, 5: 3, 7: 3, 3: 2}) \n", "\n", ".x.\n", "...\n", "... Counter({6: 14, 0: 0, 2: 0, 3: 0, 4: 0, 5: 0, 7: 0, 8: 0}) \n", "\n", "ox.\n", ".xx\n", "o.o Counter({3: 3, 7: 3, 2: 2}) \n", "\n", "x.o\n", ".xx\n", "o.. Counter({3: 2, 8: 1, 7: 1, 1: 0}) \n", "\n", "xxo\n", "xoo\n", "... Counter({8: 5, 6: 5, 7: 3}) \n", "\n", "xox\n", "...\n", ".o. Counter({8: 3, 3: 3, 4: 3, 5: 3, 6: 3}) \n", "\n", "xo.\n", ".xo\n", ".xo Counter({2: 4, 6: 2, 3: 1}) \n", "\n", "xx.\n", "xoo\n", ".ox Counter({6: 3, 2: 0}) \n", "\n", "xx.\n", "o.o\n", "xox Counter({2: 3, 4: 3}) \n", "\n", ".x.\n", "xox\n", ".o. Counter({0: 3, 8: 3, 2: 3, 6: 3}) \n", "\n", "x..\n", ".o.\n", "... Counter({1: 46163, 3: 2460, 2: 8, 5: 0, 6: 0, 7: 0, 8: 0}) \n", "\n", "x.o\n", ".ox\n", ".x. Counter({6: 7, 8: 3, 1: 3, 3: 3}) \n", "\n", "xxo\n", "o.x\n", "oxo Counter({4: 4}) \n", "\n", "xxo\n", "..x\n", "..o Counter({6: 6, 4: 4, 3: 3, 7: 3}) \n", "\n", "xoo\n", ".xx\n", ".o. Counter({8: 4, 6: 4, 3: 3}) \n", "\n", "xox\n", "...\n", "o.. Counter({8: 4, 4: 4, 5: 3, 7: 3, 3: 2}) \n", "\n", "xx.\n", "oxo\n", "xoo Counter({2: 11}) \n", "\n", "xo.\n", ".ox\n", "... Counter({6: 4, 7: 4, 2: 3, 3: 3, 8: 2}) \n", "\n", "oxo\n", "xo.\n", ".x. Counter({8: 3, 5: 3, 6: 2}) \n", "\n", "xxo\n", "...\n", "x.o Counter({5: 7, 3: 6, 7: 4, 4: 3}) \n", "\n", "xx.\n", ".x.\n", "oo. Counter({8: 12, 5: 3, 2: 2, 3: 0}) \n", "\n", "ox.\n", "x.x\n", ".oo Counter({2: 3, 4: 3, 6: 2}) \n", "\n", "ox.\n", "oox\n", ".x. Counter({6: 3, 8: 2, 2: 1}) \n", "\n", "xoo\n", "..x\n", "x.. Counter({8: 3, 3: 3, 4: 3, 7: 3}) \n", "\n", "xx.\n", "..x\n", ".oo Counter({2: 3, 6: 3, 3: 2, 4: 2}) \n", "\n", "xxo\n", ".o.\n", ".x. Counter({3: 5, 6: 5, 8: 4, 5: 4}) \n", "\n", "xoo\n", ".ox\n", ".x. Counter({6: 7, 8: 3, 3: 2}) \n", "\n", ".x.\n", "xxo\n", ".o. Counter({0: 3, 8: 3, 2: 3, 6: 3}) \n", "\n", "xx.\n", ".xo\n", "o.o Counter({7: 7, 2: 6, 3: 0}) \n", "\n", "xxo\n", "o.x\n", "oox Counter({4: 4}) \n", "\n", "xx.\n", "oxo\n", "..o Counter({6: 5, 2: 4, 7: 4}) \n", "\n", "xxo\n", "xxo\n", ".o. Counter({8: 7, 6: 2}) \n", "\n", "xxo\n", "...\n", ".ox Counter({4: 8, 6: 1, 3: 0, 5: 0}) \n", "\n", "xoo\n", "..x\n", "ox. Counter({8: 3, 3: 3, 4: 3}) \n", "\n", "x.o\n", "...\n", "... Counter({3: 6, 6: 5, 7: 4, 1: 3, 4: 3, 5: 3, 8: 3}) \n", "\n", "x.o\n", ".xo\n", "... Counter({7: 5, 6: 4, 8: 3, 1: 3, 3: 3}) \n", "\n", "xox\n", "oxo\n", ".x. Counter({6: 3, 8: 1}) \n", "\n", ".x.\n", "x.o\n", ".o. Counter({0: 3, 8: 3, 2: 3, 4: 3, 6: 3}) \n", "\n", "xx.\n", "xxo\n", ".oo Counter({2: 3, 6: 3}) \n", "\n", "xxo\n", ".oo\n", "x.. Counter({3: 8, 8: 3, 7: 1}) \n", "\n", "xx.\n", "..x\n", "o.o Counter({2: 6, 7: 6, 4: 4, 3: 3}) \n", "\n", "oxo\n", "xox\n", ".x. Counter({6: 4, 8: 3}) \n", "\n", "xoo\n", ".xx\n", "x.o Counter({3: 3, 7: 2}) \n", "\n", "x.o\n", ".xo\n", ".x. Counter({8: 4, 1: 3, 3: 3, 6: 2}) \n", "\n", "oxo\n", "xxo\n", "... Counter({7: 6, 8: 4, 6: 2}) \n", "\n", "x.o\n", ".xx\n", "oo. Counter({3: 5, 8: 3, 1: 3}) \n", "\n", "xo.\n", ".ox\n", "x.. Counter({7: 5, 3: 3, 8: 2, 2: 0}) \n", "\n", "xo.\n", ".ox\n", "ox. Counter({8: 3, 2: 3, 3: 2}) \n", "\n", "xx.\n", "oo.\n", "x.o Counter({2: 5, 5: 3, 7: 3}) \n", "\n", "xx.\n", "o.o\n", "ox. Counter({4: 4, 2: 3, 8: 2}) \n", "\n", "xox\n", "ox.\n", ".o. Counter({8: 3, 5: 3, 6: 3}) \n", "\n", "xo.\n", ".x.\n", "xo. Counter({2: 3, 5: 3, 3: 2, 8: 1}) \n", "\n", "xx.\n", "..o\n", "... Counter({4: 3, 8: 3, 2: 2, 3: 2, 7: 2, 6: 1}) \n", "\n", "x..\n", "...\n", "... Counter({6: 1, 1: 0, 2: 0, 3: 0, 4: 0, 5: 0, 7: 0, 8: 0}) \n", "\n", "ox.\n", "oxx\n", ".o. Counter({6: 3, 8: 0, 2: 0}) \n", "\n", "xo.\n", ".x.\n", "oxo Counter({3: 6, 2: 3, 5: 3}) \n", "\n", "x.o\n", ".xx\n", "..o Counter({3: 2, 1: 0, 6: 0, 7: 0}) \n", "\n", "xox\n", "o..\n", "x.. Counter({8: 3, 4: 3, 5: 3, 7: 3}) \n", "\n", "xxo\n", "x..\n", "o.o Counter({5: 3, 4: 1, 7: 1}) \n", "\n", "xxo\n", "..o\n", ".ox Counter({3: 4, 4: 3, 6: 3}) \n", "\n", "xox\n", "o.o\n", "x.. Counter({8: 3, 4: 3, 7: 3}) \n", "\n", "xoo\n", "..x\n", "xo. Counter({8: 3, 3: 3, 4: 3}) \n", "\n", "xxo\n", "o.o\n", "x.. Counter({8: 3, 4: 3, 7: 2}) \n", "\n", "xxo\n", "o.o\n", "..x Counter({6: 4, 4: 3, 7: 3}) \n", "\n", "xx.\n", "xo.\n", "..o Counter({2: 3, 5: 3, 6: 2, 7: 2}) \n", "\n", "xxo\n", "oxx\n", "o.o Counter({7: 12}) \n", "\n", "xx.\n", "..x\n", "oo. Counter({8: 4, 2: 3, 3: 3, 4: 3}) \n", "\n", "xo.\n", "o..\n", "..x Counter({4: 4, 5: 4, 2: 3, 6: 3, 7: 3}) \n", "\n", "ox.\n", "..o\n", ".x. Counter({8: 4, 2: 3, 3: 3, 4: 3, 6: 3}) \n", "\n", ".x.\n", "oxo\n", "... Counter({0: 4, 8: 4, 2: 3, 6: 3, 7: 3}) \n", "\n", "xo.\n", "..x\n", ".xo Counter({2: 3, 3: 3, 4: 3, 6: 3}) \n", "\n", "xxo\n", "oo.\n", "..x Counter({5: 3, 7: 3, 6: 1}) \n", "\n", "xxo\n", "oo.\n", "xxo Counter({5: 3}) \n", "\n", ".x.\n", ".o.\n", ".x. Counter({3: 4, 6: 4, 8: 4, 0: 3, 2: 3, 5: 3}) \n", "\n", "xxo\n", "oxx\n", "xoo Counter() \n", "\n", "xxo\n", ".ox\n", ".xo Counter({6: 6, 3: 3}) \n", "\n", "xxo\n", ".oo\n", "xox Counter({3: 9}) \n", "\n", "xoo\n", ".xx\n", "ox. Counter({3: 1, 8: 0}) \n", "\n", "xx.\n", ".ox\n", "o.o Counter({2: 4, 3: 3, 7: 3}) \n", "\n", "xxo\n", "ox.\n", "x.o Counter({5: 10, 7: 3}) \n", "\n", "ox.\n", "xxo\n", "... Counter({7: 2, 8: 0, 2: 0, 6: 0}) \n", "\n", "xx.\n", "...\n", "o.. Counter({2: 9, 8: 5, 5: 2, 7: 2, 4: 1, 3: 0}) \n", "\n", "x.x\n", ".o.\n", "oxo Counter({5: 5, 1: 3, 3: 3}) \n", "\n", "x.x\n", "...\n", "o.o Counter({1: 3, 3: 3, 4: 3, 5: 3, 7: 3}) \n", "\n", "xxo\n", "o..\n", "..x Counter({4: 6, 6: 4, 5: 2, 7: 2}) \n", "\n", "xox\n", "o..\n", "... Counter({8: 3, 4: 3, 5: 3, 6: 3, 7: 3}) \n", "\n", "xoo\n", "..x\n", ".xo Counter({4: 4, 3: 3, 6: 3}) \n", "\n", "xx.\n", "o.o\n", "x.. Counter({2: 4, 8: 3, 4: 3, 7: 2}) \n", "\n", "xox\n", ".x.\n", "o.. Counter({8: 3, 7: 3, 3: 2, 5: 2}) \n", "\n", "xx.\n", "..o\n", ".ox Counter({2: 3, 3: 3, 4: 3, 6: 3}) \n", "\n", "xxo\n", "ox.\n", "o.. Counter({8: 4, 5: 3, 7: 3}) \n", "\n", "xx.\n", "o..\n", "o.. Counter({2: 4, 8: 3, 4: 3, 5: 3, 7: 3}) \n", "\n", "xoo\n", "...\n", ".x. Counter({3: 5, 8: 3, 5: 3, 6: 3, 4: 2}) \n", "\n", ".o.\n", ".x.\n", "... Counter({2: 7, 7: 6, 0: 4, 3: 4, 5: 4, 6: 4, 8: 4}) \n", "\n", "xxo\n", "o.x\n", ".ox Counter({4: 3, 6: 2}) \n", "\n", "x.o\n", ".xx\n", ".o. Counter({8: 3, 6: 3, 1: 2, 3: 2}) \n", "\n", "xox\n", "ox.\n", ".xo Counter({6: 3, 5: 0}) \n", "\n", "xo.\n", "...\n", "ox. Counter({2: 3, 3: 3, 4: 3, 5: 3, 8: 2}) \n", "\n", "xox\n", "o..\n", "ox. Counter({8: 3, 4: 3, 5: 3}) \n", "\n", "oxo\n", "x.o\n", ".x. Counter({8: 4, 4: 4, 6: 3}) \n", "\n", "xo.\n", ".xo\n", "ox. Counter({8: 5, 3: 4, 2: 3}) \n", "\n", "xx.\n", ".ox\n", "o.. Counter({2: 9, 8: 2, 7: 1, 3: 0}) \n", "\n", "xx.\n", "..o\n", ".o. Counter({6: 4, 8: 3, 2: 3, 3: 3, 4: 3}) \n", "\n", "xx.\n", "oox\n", "ox. Counter({2: 8, 8: 3}) \n", "\n", "x.o\n", ".x.\n", ".xo Counter({5: 6, 1: 4, 6: 3, 3: 2}) \n", "\n", "xox\n", "o..\n", "x.o Counter({4: 4, 5: 3, 7: 3}) \n", "\n", "ox.\n", ".xx\n", "..o Counter({3: 3, 6: 3, 7: 3, 2: 0}) \n", "\n", "xo.\n", "..x\n", "xo. Counter({8: 3, 2: 3, 3: 3, 4: 3}) \n", "\n", "xxo\n", "o.o\n", ".x. Counter({8: 3, 4: 3, 6: 3}) \n", "\n", "xxo\n", "o..\n", "xo. Counter({8: 3, 4: 3, 5: 3}) \n", "\n", "xxo\n", ".o.\n", "x.o Counter({5: 4, 3: 3, 7: 3}) \n", "\n", "xxo\n", "x..\n", "..o Counter({6: 5, 7: 4, 4: 3, 5: 3}) \n", "\n", "xxo\n", "...\n", ".o. Counter({8: 3, 3: 3, 4: 3, 5: 3, 6: 3}) \n", "\n", "xxo\n", "xox\n", "..o Counter({6: 7, 7: 2}) \n", "\n", "ox.\n", "oxx\n", "... Counter({6: 10, 7: 3, 2: 2, 8: 0}) \n", "\n", "xx.\n", "o..\n", "oox Counter({5: 6, 2: 3, 4: 3}) \n", "\n", "xx.\n", "o.o\n", "o.x Counter({2: 4, 4: 3, 7: 3}) \n", "\n", "xx.\n", ".x.\n", ".oo Counter({6: 6, 2: 5, 5: 4, 3: 2}) \n", "\n", "xoo\n", ".o.\n", "x.x Counter({7: 4, 3: 3, 5: 1}) \n", "\n", "xox\n", ".x.\n", "oxo Counter({3: 3, 5: 3}) \n", "\n", "xox\n", ".o.\n", ".x. Counter({8: 3, 3: 3, 5: 3, 6: 3}) \n", "\n", "xoo\n", ".xx\n", "xo. Counter({8: 2, 3: 2}) \n", "\n", "xx.\n", ".o.\n", "o.. Counter({2: 6, 5: 6, 3: 4, 8: 2, 7: 2}) \n", "\n", "xo.\n", "..x\n", "... Counter({2: 4, 7: 4, 3: 3, 8: 3, 4: 2, 6: 2}) \n", "\n", "xxo\n", ".o.\n", ".ox Counter({6: 3, 3: 2, 5: 1}) \n", "\n", "xox\n", "ox.\n", "oxo Counter({5: 3}) \n", "\n", "xx.\n", "ox.\n", "xoo Counter({2: 3, 5: 2}) \n", "\n", "xxo\n", "..o\n", ".x. Counter({8: 4, 6: 4, 4: 3, 3: 0}) \n", "\n", "ox.\n", ".xo\n", "... Counter({8: 5, 3: 4, 7: 4, 2: 3, 6: 2}) \n", "\n", "xx.\n", "xox\n", ".oo Counter({6: 5, 2: 2}) \n", "\n", "x.o\n", "..x\n", "ox. Counter({4: 5, 8: 3, 1: 3, 3: 2}) \n", "\n", "xx.\n", "oox\n", "o.x Counter({2: 4, 7: 2}) \n", "\n", ".x.\n", "o.o\n", ".x. Counter({8: 4, 0: 3, 4: 3, 6: 3, 2: 2}) \n", "\n", "xxo\n", "...\n", "oxo Counter({3: 3, 4: 3, 5: 3}) \n", "\n", "x.x\n", ".x.\n", "o.o Counter({1: 8, 7: 5, 3: 2, 5: 2}) \n", "\n", "xxo\n", "xo.\n", "... Counter({5: 6, 6: 5, 8: 3, 7: 3}) \n", "\n", "xox\n", "o..\n", ".xo Counter({6: 4, 4: 3, 5: 3}) \n", "\n", ".x.\n", ".x.\n", ".o. Counter({8: 4, 0: 3, 2: 3, 3: 3, 5: 3, 6: 2}) \n", "\n", "xx.\n", "ox.\n", "o.. Counter({8: 3, 2: 3, 5: 1, 7: 1}) \n", "\n", "xx.\n", "..o\n", "xo. Counter({8: 3, 3: 3, 4: 3, 2: 2}) \n", "\n", "xox\n", ".o.\n", "x.o Counter({3: 6, 7: 4, 5: 2}) \n", "\n", "xo.\n", "..o\n", "x.x Counter({2: 3, 3: 3, 4: 3, 7: 3}) \n", "\n", "oo.\n", ".x.\n", ".x. Counter({2: 8, 8: 0, 3: 0, 5: 0, 6: 0}) \n", "\n", "xo.\n", ".o.\n", ".x. Counter({6: 6, 3: 5, 8: 3, 5: 3, 2: 2}) \n", "\n", "xx.\n", "o.o\n", ".xo Counter({4: 4, 2: 3, 6: 1}) \n", "\n", "xxo\n", "xo.\n", ".xo Counter({5: 6, 6: 5}) \n", "\n", "oxo\n", ".x.\n", "... Counter({3: 5, 6: 4, 8: 3, 5: 3, 7: 3}) \n", "\n", "xxo\n", "xx.\n", ".oo Counter({5: 10, 6: 3}) \n", "\n", "xo.\n", ".xx\n", ".o. Counter({8: 3, 2: 3, 6: 3, 3: 2}) \n", "\n", "xx.\n", ".oo\n", ".ox Counter({3: 5, 2: 4, 6: 2}) \n", "\n", "xx.\n", ".o.\n", "xoo Counter({2: 4, 5: 4, 3: 3}) \n", "\n", "xo.\n", ".xo\n", "... Counter({8: 4, 2: 3, 3: 3, 6: 3, 7: 3}) \n", "\n", "x..\n", ".xo\n", "... Counter({1: 3, 3: 3, 6: 3, 2: 2, 7: 2, 8: 1}) \n", "\n", "x.o\n", "...\n", "o.x Counter({1: 3, 4: 3, 7: 3, 3: 2, 5: 2}) \n", "\n", "xx.\n", ".oo\n", ".x. Counter({2: 5, 3: 4, 8: 3, 6: 3}) \n", "\n", "xxo\n", ".ox\n", ".o. Counter({8: 3, 3: 3, 6: 3}) \n", "\n", "xx.\n", "ox.\n", "oo. Counter({8: 3, 2: 3, 5: 3}) \n", "\n", "xx.\n", "...\n", "oo. Counter({8: 4, 2: 3, 3: 3, 5: 3, 4: 2}) \n", "\n", "xx.\n", "...\n", "..o Counter({2: 10, 6: 4, 7: 2, 3: 0, 4: 0, 5: 0}) \n", "\n", "x.o\n", "...\n", ".x. Counter({8: 7, 6: 6, 4: 5, 5: 2, 1: 1, 3: 1}) \n", "\n", "ox.\n", ".ox\n", ".x. Counter({3: 8, 8: 5, 6: 4, 2: 3}) \n", "\n", "xx.\n", "x.o\n", ".oo Counter({2: 4, 4: 3, 6: 3}) \n", "\n", "...\n", "...\n", "... Counter({8: 21203, 0: 14869, 6: 7569, 2: 5002, 4: 73, 3: 9, 1: 3, 5: 2, 7: 0}) \n", "\n", "xx.\n", "oxx\n", ".oo Counter({6: 9, 2: 3}) \n", "\n", "xx.\n", "o.x\n", "..o Counter({6: 3, 7: 3, 2: 2, 4: 2}) \n", "\n", "oxo\n", "xx.\n", ".o. Counter({5: 9, 8: 5, 6: 3}) \n", "\n", "ox.\n", ".xx\n", "o.. Counter({3: 4, 8: 2, 2: 2, 7: 1}) \n", "\n", "xxo\n", "..o\n", "... Counter({6: 4, 3: 3, 4: 3, 7: 3, 8: 2}) \n", "\n", "xox\n", "oo.\n", "x.x Counter({7: 4, 5: 3}) \n", "\n", "xxo\n", "oo.\n", "x.x Counter({5: 11, 7: 3}) \n", "\n", "x..\n", ".xo\n", "..o Counter({2: 10, 7: 5, 1: 3, 6: 1, 3: 0}) \n", "\n", "ox.\n", ".xx\n", ".o. Counter({3: 7, 8: 0, 2: 0, 6: 0}) \n", "\n", "x..\n", ".o.\n", "..x Counter({5: 4, 1: 3, 2: 3, 3: 3, 6: 3, 7: 3}) \n", "\n", "xx.\n", "o..\n", ".ox Counter({2: 3, 4: 3, 5: 3, 6: 3}) \n", "\n", "x.x\n", ".x.\n", "oo. Counter({8: 9, 3: 2, 5: 2, 1: 1}) \n", "\n", "xo.\n", ".xx\n", ".oo Counter({3: 7, 6: 4, 2: 3}) \n", "\n", "xx.\n", "...\n", ".o. Counter({3: 4, 6: 3, 8: 3, 2: 2, 4: 2, 5: 2}) \n", "\n", "xxo\n", "...\n", "o.. Counter({8: 3, 4: 3, 3: 2, 5: 2, 7: 2}) \n", "\n", "xox\n", "o.o\n", "xox Counter({4: 3}) \n", "\n", "ox.\n", ".x.\n", ".o. Counter({6: 13, 3: 11, 5: 6, 8: 4, 2: 1}) \n", "\n", "xo.\n", "oox\n", ".x. Counter({8: 3, 2: 3, 6: 3}) \n", "\n", "ox.\n", "...\n", "... Counter({3: 6, 5: 6, 7: 5, 2: 3, 4: 3, 6: 2, 8: 2}) \n", "\n", "xox\n", ".o.\n", "x.. Counter({3: 5, 5: 3, 7: 3, 8: 2}) \n", "\n", "xo.\n", ".ox\n", ".xo Counter({2: 3, 3: 3, 6: 3}) \n", "\n", "xx.\n", "..o\n", "ox. Counter({8: 4, 4: 4, 3: 3, 2: 2}) \n", "\n", "xo.\n", "o.x\n", ".x. Counter({8: 3, 2: 3, 4: 3, 6: 3}) \n", "\n", "xx.\n", "oox\n", "..o Counter({6: 4, 2: 3, 7: 3}) \n", "\n", "xx.\n", "o..\n", "o.x Counter({4: 3, 5: 3, 7: 3, 2: 2}) \n", "\n", "x.o\n", ".ox\n", "... Counter({6: 4, 7: 4, 3: 2, 1: 1, 8: 0}) \n", "\n", "xxo\n", "o.x\n", ".o. Counter({8: 3, 4: 3, 6: 3}) \n", "\n", "xxo\n", "o..\n", "ox. Counter({8: 3, 4: 3, 5: 3}) \n", "\n", "x..\n", ".xo\n", ".o. Counter({8: 4, 1: 3, 2: 3, 3: 3, 6: 3}) \n", "\n", "xx.\n", "o..\n", ".o. Counter({8: 3, 2: 3, 4: 3, 5: 3, 6: 3}) \n", "\n", "x.o\n", "...\n", ".xo Counter({1: 3, 3: 3, 4: 3, 5: 3, 6: 3}) \n", "\n", "xo.\n", ".xx\n", "oo. Counter({8: 5, 2: 3, 3: 3}) \n", "\n", "xx.\n", "o.x\n", "oxo Counter({2: 1, 4: 1}) \n", "\n", "x.o\n", ".xx\n", ".oo Counter({3: 7, 6: 4, 1: 3}) \n", "\n", "xx.\n", "...\n", ".oo Counter({2: 3, 5: 3, 6: 3, 3: 1, 4: 1}) \n", "\n", "xx.\n", "o..\n", "oxo Counter({4: 4, 2: 3, 5: 3}) \n", "\n", "xx.\n", "oox\n", ".o. Counter({8: 4, 2: 4, 6: 3}) \n", "\n", "oxo\n", "x.x\n", "oxo Counter({4: 3}) \n", "\n", "xox\n", "ox.\n", "o.. Counter({7: 4, 8: 3, 5: 3}) \n", "\n", "xxo\n", "x.o\n", "... Counter({8: 6, 4: 4, 6: 4, 7: 3}) \n", "\n", "xxo\n", ".o.\n", "... Counter({3: 6, 8: 3, 5: 3, 6: 3, 7: 3}) \n", "\n", "xx.\n", ".oo\n", "xox Counter({3: 4, 2: 1}) \n", "\n", "xx.\n", ".o.\n", "..o Counter({6: 7, 3: 4, 2: 3, 5: 3, 7: 3}) \n", "\n", "xx.\n", "o..\n", ".xo Counter({5: 3, 6: 3, 2: 2, 4: 2}) \n", "\n", "xxo\n", "xxo\n", "o.. Counter({8: 5, 7: 2}) \n", "\n", "oxo\n", "x.x\n", "... Counter({4: 4, 8: 3, 6: 3, 7: 3}) \n", "\n", "xx.\n", "o.x\n", "o.o Counter({7: 4, 2: 3, 4: 3}) \n", "\n", "xo.\n", "..x\n", "o.. Counter({8: 3, 3: 3, 4: 3, 7: 3, 2: 2}) \n", "\n", "xox\n", "oo.\n", "x.. Counter({5: 2, 8: 1, 7: 1}) \n", "\n", "xxo\n", "..o\n", "x.. Counter({8: 4, 3: 3, 4: 3, 7: 3}) \n", "\n", "xx.\n", ".o.\n", "oox Counter({5: 4, 2: 3, 3: 3}) \n", "\n", "xx.\n", "..o\n", ".xo Counter({2: 4, 4: 3, 3: 2, 6: 2}) \n", "\n", "xoo\n", ".x.\n", "ox. Counter({3: 7, 8: 4, 5: 4}) \n", "\n", "o..\n", "..x\n", ".x. Counter({3: 5, 1: 4, 4: 4, 2: 3, 6: 3, 8: 2}) \n", "\n", "xxo\n", ".o.\n", "xox Counter({3: 3, 5: 0}) \n", "\n", "xx.\n", "oxo\n", "x.o Counter({2: 3, 7: 2}) \n", "\n", "xx.\n", "oox\n", "... Counter({2: 4, 8: 3, 7: 3, 6: 2}) \n", "\n", "xo.\n", ".x.\n", ".xo Counter({5: 9, 2: 4, 6: 2, 3: 1}) \n", "\n", "xox\n", "...\n", "x.o Counter({4: 1, 3: 0, 5: 0, 7: 0}) \n", "\n", "xxo\n", "oox\n", "... Counter({6: 3, 7: 2, 8: 0}) \n", "\n", "xo.\n", ".o.\n", "..x Counter({7: 4, 3: 3, 2: 2, 6: 2, 5: 1}) \n", "\n", "xx.\n", ".oo\n", "x.. Counter({3: 3, 8: 2, 2: 2, 7: 1}) \n", "\n", "xxo\n", "xx.\n", "o.o Counter({5: 5, 7: 4}) \n", "\n", "xxo\n", "o.x\n", "..o Counter({4: 3, 6: 3, 7: 3}) \n", "\n", "xoo\n", "..x\n", ".x. Counter({8: 3, 3: 3, 4: 3, 6: 2}) \n", "\n", "xxo\n", ".oo\n", ".x. Counter({8: 2, 6: 2, 3: 1}) \n", "\n", "ox.\n", "...\n", "ox. Counter({4: 4, 8: 3, 2: 3, 3: 3, 5: 3}) \n", "\n", "ox.\n", "..x\n", "... Counter({3: 5, 4: 5, 6: 4, 8: 1, 2: 0, 7: 0}) \n", "\n", "xox\n", "oxo\n", "... Counter({6: 4, 8: 3, 7: 3}) \n", "\n", "xox\n", "ox.\n", "ox. Counter({8: 3, 5: 0}) \n", "\n", "xx.\n", ".o.\n", "o.x Counter({2: 5, 5: 4, 3: 1, 7: 1}) \n", "\n", "ox.\n", "xxo\n", "..o Counter({2: 6, 7: 5, 6: 0}) \n", "\n", "xx.\n", "...\n", "o.o Counter({2: 3, 5: 3, 7: 3, 3: 2, 4: 1}) \n", "\n", "xxo\n", "x.o\n", "o.x Counter({4: 8, 7: 2}) \n", "\n", "xo.\n", ".x.\n", "... Counter({5: 2, 6: 2, 8: 2, 2: 1, 3: 1, 7: 0}) \n", "\n", "xoo\n", ".xx\n", "oxo Counter({3: 12}) \n", "\n", "xxo\n", "xoo\n", ".x. Counter({8: 8, 6: 4}) \n", "\n", "xo.\n", "..x\n", "..o Counter({3: 4, 2: 3, 4: 3, 6: 3, 7: 3}) \n", "\n", "xx.\n", "oox\n", ".ox Counter({2: 3, 6: 3}) \n", "\n", "xxo\n", "ox.\n", ".o. Counter({8: 5, 5: 3, 6: 3}) \n", "\n", "oo.\n", "oxx\n", ".x. Counter({8: 3, 2: 3, 6: 1}) \n", "\n", "xxo\n", "o.o\n", "xx. Counter({8: 4, 4: 4}) \n", "\n", "x..\n", ".xx\n", ".oo Counter({1: 3, 2: 3, 6: 3, 3: 2}) \n", "\n", "xxo\n", "xo.\n", ".o. Counter({6: 5, 8: 2, 5: 2}) \n", "\n", "x.o\n", ".x.\n", "... Counter({8: 7, 1: 0, 3: 0, 5: 0, 6: 0, 7: 0}) \n", "\n", "xox\n", "o..\n", "..x Counter({4: 3, 5: 3, 6: 3, 7: 2}) \n", "\n", "xxo\n", "xoo\n", ".ox Counter({6: 9}) \n", "\n", "xxo\n", ".o.\n", "..x Counter({6: 6, 3: 5, 7: 4, 5: 2}) \n", "\n", "xo.\n", "..x\n", "ox. Counter({8: 3, 3: 3, 4: 3, 2: 2}) \n", "\n", "xxo\n", "ox.\n", "xo. Counter({8: 3, 5: 0}) \n", "\n", "xoo\n", "..x\n", "x.o Counter({4: 4, 3: 3, 7: 3}) \n", "\n", "ox.\n", "xox\n", "... Counter({8: 7, 2: 4, 6: 3, 7: 3}) \n", "\n", "xo.\n", ".xo\n", "x.o Counter({3: 5, 2: 4, 7: 3}) \n", "\n", "xox\n", "o.o\n", "x.x Counter({4: 4, 7: 2}) \n", "\n", "xxo\n", ".x.\n", ".o. Counter({8: 12, 3: 2, 6: 1, 5: 0}) \n", "\n", "xoo\n", ".x.\n", "x.o Counter({3: 8, 5: 3, 7: 1}) \n", "\n", "ox.\n", "x.x\n", ".o. Counter({8: 3, 2: 3, 4: 3, 6: 2}) \n", "\n", "xo.\n", ".x.\n", "ox. Counter({8: 2, 2: 0, 3: 0, 5: 0}) \n", "\n", "xo.\n", "...\n", "o.x Counter({2: 5, 4: 4, 3: 3, 5: 3, 7: 3}) \n", "\n", "xx.\n", ".oo\n", "xo. Counter({2: 5, 3: 5, 8: 3}) \n", "\n", "xx.\n", "o.x\n", "o.. Counter({2: 3, 4: 3, 7: 3, 8: 2}) \n", "\n", "xxo\n", "oxo\n", "x.. Counter({8: 6, 7: 2}) \n", "\n", "xxo\n", "x.x\n", "oo. Counter({4: 5, 8: 4}) \n", "\n", "xxo\n", "o..\n", ".ox Counter({4: 3, 5: 3, 6: 3}) \n", "\n", "oxo\n", "x.x\n", "ox. Counter({8: 3, 4: 3}) \n", "\n", "xx.\n", "oo.\n", ".ox Counter({5: 4, 2: 3, 6: 2}) \n", "\n", "xxo\n", "o..\n", "xox Counter({4: 3, 5: 1}) \n", "\n", "ox.\n", "...\n", ".x. Counter({4: 10, 2: 3, 3: 3, 6: 3, 8: 1, 5: 0}) \n", "\n", "xx.\n", ".xo\n", "..o Counter({2: 3, 3: 3, 6: 3, 7: 2}) \n", "\n", "ox.\n", "oxx\n", "..o Counter({7: 6, 6: 4, 2: 2}) \n", "\n", "xxo\n", ".xo\n", "o.. Counter({3: 5, 8: 4, 7: 3}) \n", "\n", "xx.\n", "o.o\n", ".ox Counter({2: 3, 4: 3, 6: 3}) \n", "\n", "xo.\n", "...\n", "..x Counter({4: 4, 5: 3, 7: 3, 3: 2, 6: 2, 2: 1}) \n", "\n", "xo.\n", "o.x\n", "... Counter({6: 5, 7: 4, 2: 3, 4: 3, 8: 2}) \n", "\n", "xxo\n", "xoo\n", "..x Counter({6: 7, 7: 2}) \n", "\n", "xxo\n", "..o\n", "..x Counter({4: 4, 3: 3, 6: 3, 7: 2}) \n", "\n", "ox.\n", "x.x\n", "..o Counter({6: 4, 2: 3, 4: 3, 7: 3}) \n", "\n", ".x.\n", "xo.\n", "... Counter({8: 6, 2: 4, 6: 4, 7: 4, 0: 3, 5: 3}) \n", "\n", "ox.\n", ".xx\n", "oo. Counter({3: 10, 8: 2, 2: 2}) \n", "\n", "xxo\n", "xo.\n", ".ox Counter({6: 10, 5: 0}) \n", "\n", "xxo\n", "oxx\n", "o.. Counter({7: 1, 8: 0}) \n", "\n", "x.o\n", "..x\n", "..o Counter({4: 4, 1: 3, 3: 3, 6: 3, 7: 2}) \n", "\n", "xo.\n", "oxx\n", ".xo Counter({2: 3, 6: 3}) \n", "\n", "xxo\n", "o..\n", ".x. Counter({4: 4, 8: 2, 5: 2, 6: 2}) \n", "\n", "xxo\n", ".xo\n", "... Counter({8: 5, 6: 3, 7: 3, 3: 2}) \n", "\n", "xox\n", "o.o\n", ".x. Counter({4: 4, 8: 3, 6: 3}) \n", "\n", "xoo\n", ".x.\n", ".xo Counter({5: 4, 3: 0, 6: 0}) \n", "\n", "xx.\n", ".o.\n", ".xo Counter({2: 5, 3: 3, 5: 2, 6: 2}) \n", "\n", "xox\n", ".o.\n", "ox. Counter({8: 5, 5: 5, 3: 3}) \n", "\n", "x.o\n", "..x\n", "o.. Counter({8: 3, 1: 3, 4: 3, 3: 2, 7: 2}) \n", "\n", "xx.\n", "oo.\n", "xo. Counter({2: 5, 5: 5, 8: 2}) \n", "\n", "xxo\n", ".xo\n", "xo. Counter({8: 6, 3: 3}) \n", "\n", "xx.\n", "ox.\n", ".oo Counter({2: 6, 6: 3, 5: 2}) \n", "\n", "oxo\n", "xx.\n", "..o Counter({5: 5, 6: 3, 7: 3}) \n", "\n", "xx.\n", "o.o\n", "... Counter({2: 4, 4: 4, 8: 3, 6: 3, 7: 3}) \n", "\n", "xo.\n", ".xx\n", "o.. Counter({2: 3, 3: 3, 8: 2, 7: 1}) \n", "\n", "xxo\n", ".xx\n", "oo. Counter({8: 7, 3: 2}) \n", "\n", "ox.\n", "x.o\n", "... Counter({4: 5, 7: 4, 8: 3, 2: 3, 6: 2}) \n", "\n", "xx.\n", "oo.\n", "o.x Counter({5: 4, 2: 3, 7: 2}) \n", "\n", "xox\n", "...\n", "xoo Counter({3: 4, 4: 3, 5: 3}) \n", "\n", "xx.\n", "o..\n", "..o Counter({5: 4, 2: 3, 4: 3, 6: 3, 7: 3}) \n", "\n", "xxo\n", "..x\n", "oo. Counter({8: 3, 3: 3, 4: 3}) \n", "\n", "xx.\n", ".xo\n", "o.. Counter({2: 3, 3: 3, 7: 2, 8: 1}) \n", "\n", "xx.\n", ".ox\n", ".oo Counter({2: 3, 3: 3, 6: 3}) \n", "\n", "xxo\n", "o.x\n", "ox. Counter({4: 3, 8: 0}) \n", "\n", "xxo\n", ".x.\n", "oo. Counter({8: 6, 5: 2, 3: 1}) \n", "\n", "ox.\n", ".o.\n", ".x. Counter({8: 3, 6: 3, 5: 2, 2: 1, 3: 1}) \n", "\n", "xx.\n", "oo.\n", "ox. Counter({2: 5, 8: 3, 5: 2}) \n", "\n", "xx.\n", "o..\n", "x.o Counter({2: 3, 4: 3, 5: 3, 7: 2}) \n", "\n", "xoo\n", "..x\n", "... Counter({8: 4, 3: 3, 4: 3, 6: 3, 7: 3}) \n", "\n", "xxo\n", "...\n", "... Counter({4: 7, 3: 6, 8: 5, 5: 2, 6: 2, 7: 2}) \n", "\n", "xx.\n", "oox\n", "oox Counter({2: 10}) \n", "\n", "xxo\n", "o..\n", ".xo Counter({4: 3, 5: 3, 6: 3}) \n", "\n", "xoo\n", ".xx\n", "xoo Counter({3: 8}) \n", "\n", "xxo\n", "oo.\n", "xox Counter({5: 3}) \n", "\n", "x.x\n", "...\n", ".o. Counter({1: 3, 4: 3, 5: 3, 8: 3, 3: 2, 6: 2}) \n", "\n", "x..\n", ".ox\n", "... Counter({2: 3, 1: 2, 6: 2, 7: 1, 3: 0, 8: 0}) \n", "\n", "xx.\n", "o.x\n", ".o. Counter({8: 3, 4: 3, 6: 3, 2: 2}) \n", "\n", "xo.\n", ".xx\n", "o.o Counter({3: 6, 7: 4, 2: 3}) \n", "\n", "x.o\n", ".xx\n", "o.o Counter({3: 7, 7: 3, 1: 0}) \n", "\n", "ox.\n", "o.x\n", ".x. Counter({6: 4, 4: 3, 8: 2, 2: 2}) \n", "\n", "oxo\n", "x..\n", ".x. Counter({4: 3, 8: 2, 5: 2, 6: 2}) \n", "\n", "ox.\n", "..x\n", "..o Counter({4: 4, 2: 3, 3: 3, 6: 3, 7: 3}) \n", "\n", "xxo\n", "oo.\n", ".xx Counter({5: 8, 6: 5}) \n", "\n", "x..\n", ".x.\n", "..o Counter({5: 5, 6: 4, 1: 3, 2: 3, 3: 3, 7: 3}) \n", "\n", "xx.\n", ".ox\n", ".o. Counter({8: 3, 2: 3, 6: 3, 3: 2}) \n", "\n", "xo.\n", ".o.\n", "x.x Counter({2: 3, 3: 3, 5: 3, 7: 3}) \n", "\n", "ox.\n", "xxo\n", ".o. Counter({2: 4, 6: 4, 8: 3}) \n", "\n", "xx.\n", "x.o\n", ".o. Counter({8: 3, 2: 3, 6: 3, 4: 2}) \n", "\n", "x.x\n", "...\n", "oo. Counter({8: 3, 1: 3, 3: 3, 4: 3, 5: 3}) \n", "\n", "xxo\n", "o.o\n", "oxx Counter({4: 4}) \n", "\n", "xxo\n", "xo.\n", "..o Counter({6: 5, 7: 3, 5: 2}) \n", "\n", "xxo\n", "xox\n", ".o. Counter({6: 8, 8: 0}) \n", "\n", "ox.\n", "o.x\n", "... Counter({6: 4, 7: 4, 8: 3, 4: 3, 2: 2}) \n", "\n", "xxo\n", ".oo\n", "xx. Counter({8: 5, 3: 4}) \n", "\n", "xxo\n", "xox\n", ".oo Counter({6: 7}) \n", "\n", "xx.\n", "o.o\n", "xo. Counter({2: 3, 4: 3, 8: 2}) \n", "\n", "xx.\n", ".oo\n", "ox. Counter({3: 4, 2: 3, 8: 2}) \n", "\n", "xxo\n", "..x\n", ".o. Counter({3: 3, 4: 3, 8: 2, 6: 2}) \n", "\n", "xox\n", ".o.\n", "... Counter({7: 3, 8: 0, 3: 0, 5: 0, 6: 0}) \n", "\n", "xxo\n", "oox\n", "..x Counter({6: 8, 7: 3}) \n", "\n", "xoo\n", ".x.\n", "x.. Counter({8: 3, 3: 3, 5: 3, 7: 2}) \n", "\n", "xx.\n", "oo.\n", "xox Counter({5: 4, 2: 3}) \n", "\n", "xxo\n", "o.x\n", "o.. Counter({8: 3, 4: 3, 7: 3}) \n", "\n", "xoo\n", "...\n", "x.x Counter({3: 2, 5: 1, 4: 0, 7: 0}) \n", "\n", "xx.\n", "o.o\n", ".x. Counter({8: 3, 4: 3, 2: 2, 6: 2}) \n", "\n", "x.o\n", "..x\n", "oxo Counter({1: 3, 4: 3, 3: 2}) \n", "\n", "xx.\n", "x.o\n", "..o Counter({2: 6, 4: 4, 7: 3, 6: 2}) \n", "\n", "xxo\n", "o..\n", "oxx Counter({4: 9, 5: 1}) \n", "\n", "xxo\n", "..x\n", ".oo Counter({4: 3, 6: 3, 3: 1}) \n", "\n", "xxo\n", "oox\n", "xxo Counter() \n", "\n", "xx.\n", ".xo\n", "oo. Counter({8: 5, 2: 3, 3: 3}) \n", "\n", "xx.\n", "oxo\n", "o.. Counter({7: 5, 2: 4, 8: 3}) \n", "\n", "o..\n", ".xx\n", "... Counter({3: 13, 1: 0, 2: 0, 6: 0, 7: 0, 8: 0}) \n", "\n", "oxo\n", "x..\n", "... Counter({7: 4, 8: 3, 4: 3, 5: 3, 6: 3}) \n", "\n", "xox\n", "...\n", "xo. Counter({3: 4, 4: 4, 8: 3, 5: 3}) \n", "\n", "ox.\n", "x..\n", "..o Counter({2: 3, 4: 3, 5: 3, 6: 3, 7: 3}) \n", "\n", "xxo\n", "..o\n", "ox. Counter({8: 3, 4: 3, 3: 2}) \n", "\n", ".x.\n", "oo.\n", ".x. Counter({0: 4, 8: 3, 5: 3, 2: 2, 6: 2}) \n", "\n", "xx.\n", "..o\n", "o.x Counter({2: 1, 3: 0, 4: 0, 7: 0}) \n", "\n", "xoo\n", ".xo\n", "x.. Counter({3: 6, 7: 4, 8: 3}) \n", "\n", "xx.\n", "..o\n", "..o Counter({2: 4, 3: 3, 4: 3, 7: 3, 6: 2}) \n", "\n", "ox.\n", ".x.\n", "o.. Counter({3: 7, 7: 7, 8: 5, 5: 2, 2: 0}) \n", "\n", "xoo\n", "...\n", "x.. Counter({5: 4, 8: 3, 3: 3, 4: 3, 7: 3}) \n", "\n", "xx.\n", "...\n", "xoo Counter({2: 3, 3: 2, 4: 1, 5: 1}) \n", "\n", "xxo\n", ".o.\n", "xxo Counter({5: 5, 3: 3}) \n", "\n", "xxo\n", "..x\n", "xoo Counter({3: 3, 4: 2}) \n", "\n", "xxo\n", ".x.\n", "o.o Counter({7: 7, 5: 2, 3: 0}) \n", "\n", "oo.\n", ".xx\n", ".x. Counter({2: 8, 3: 3, 8: 2, 6: 2}) \n", "\n", "xx.\n", "oox\n", "xo. Counter({2: 3, 8: 2}) \n", "\n", "xxo\n", "o..\n", "xxo Counter({5: 5, 4: 3}) \n", "\n", "xoo\n", ".xx\n", "o.. Counter({3: 6, 7: 5, 8: 3}) \n", "\n", "xxo\n", "x.o\n", ".o. Counter({8: 3, 4: 3, 6: 3}) \n", "\n", ".x.\n", ".o.\n", "... Counter({2: 11, 0: 5, 6: 4, 3: 1, 8: 1, 5: 0, 7: 0}) \n", "\n", "xo.\n", ".xo\n", "x.. Counter({8: 3, 2: 3, 3: 3, 7: 3}) \n", "\n", "xxo\n", "oxx\n", ".oo Counter({6: 3}) \n", "\n", "xx.\n", "..o\n", "o.. Counter({2: 4, 8: 3, 3: 3, 4: 3, 7: 3}) \n", "\n", "xo.\n", "...\n", "x.. Counter({7: 4, 4: 3, 5: 3, 8: 3, 2: 2, 3: 2}) \n", "\n", "xo.\n", "oxx\n", ".o. Counter({6: 4, 8: 3, 2: 3}) \n", "\n", "xxo\n", "..x\n", "oxo Counter({4: 8, 3: 1}) \n", "\n", "xxo\n", "x.o\n", "oox Counter({4: 5}) \n", "\n", "xox\n", "...\n", "ox. Counter({8: 3, 4: 3, 5: 3, 3: 2}) \n", "\n", "xx.\n", "xoo\n", ".o. Counter({8: 5, 2: 4, 6: 3}) \n", "\n", "xx.\n", "..o\n", "oox Counter({2: 3, 3: 3, 4: 3}) \n", "\n", "xxo\n", "oxo\n", "xo. Counter({8: 6}) \n", "\n", "xox\n", "oo.\n", "..x Counter({5: 3, 7: 2, 6: 1}) \n", "\n", "xx.\n", ".ox\n", "xoo Counter({3: 1, 2: 0}) \n", "\n", "xoo\n", ".x.\n", ".x. Counter({8: 5, 3: 0, 5: 0, 6: 0}) \n", "\n", "xx.\n", ".oo\n", "..x Counter({3: 5, 2: 4, 6: 3, 7: 3}) \n", "\n", "xoo\n", "ox.\n", ".x. Counter({6: 5, 8: 4, 5: 3}) \n", "\n", "xxo\n", "...\n", "xo. Counter({8: 3, 3: 3, 5: 3, 4: 2}) \n", "\n", "x.o\n", ".x.\n", "o.. Counter({8: 4, 3: 4, 5: 4, 1: 3, 7: 3}) \n", "\n", "ox.\n", "..x\n", ".o. Counter({4: 4, 8: 3, 2: 3, 3: 3, 6: 3}) \n", "\n", "oo.\n", ".xx\n", "... Counter({6: 6, 2: 4, 3: 4, 8: 3, 7: 2}) \n", "\n", "x.x\n", "...\n", "o.. Counter({8: 1, 1: 0, 3: 0, 4: 0, 5: 0, 7: 0}) \n", "\n", ".x.\n", "o..\n", "... Counter({4: 6, 2: 5, 0: 4, 8: 4, 5: 3, 6: 3, 7: 2}) \n", "\n", "xx.\n", ".o.\n", "ox. Counter({2: 8, 3: 4, 8: 3, 5: 3}) \n", "\n", "xo.\n", ".x.\n", "..o Counter({3: 8, 5: 5, 2: 3, 7: 3, 6: 2}) \n", "\n", "o..\n", ".ox\n", ".x. Counter({6: 4, 8: 3, 2: 3, 1: 2, 3: 2}) \n", "\n", "oo.\n", "..x\n", ".x. Counter({8: 5, 3: 3, 6: 3, 2: 2, 4: 2}) \n", "\n", "xo.\n", ".xx\n", "oxo Counter({3: 3, 2: 0}) \n", "\n", "xo.\n", "ox.\n", "... Counter({2: 4, 8: 3, 5: 3, 6: 3, 7: 3}) \n", "\n", "x.o\n", ".xx\n", "oxo Counter({1: 2, 3: 1}) \n", "\n", "xx.\n", "oo.\n", "x.. Counter({2: 4, 8: 3, 5: 3, 7: 2}) \n", "\n", "xo.\n", "..x\n", "x.o Counter({3: 3, 4: 3, 7: 3, 2: 2}) \n", "\n", "xxo\n", ".ox\n", "xo. Counter({3: 3, 8: 0}) \n", "\n", "xxo\n", "o..\n", "x.o Counter({4: 3, 5: 3, 7: 2}) \n", "\n", "xxo\n", "oox\n", "x.. Counter({8: 3, 7: 3}) \n", "\n", "x.o\n", ".x.\n", "..o Counter({5: 11, 1: 0, 3: 0, 6: 0, 7: 0}) \n", "\n", "xx.\n", ".xo\n", "xoo Counter({2: 7, 3: 2}) \n", "\n", "xoo\n", "...\n", "..x Counter({7: 4, 3: 3, 4: 3, 5: 3, 6: 3}) \n", "\n", "xxo\n", ".xx\n", ".oo Counter({6: 11, 3: 3}) \n", "\n", "xox\n", "...\n", "oxo Counter({3: 3, 4: 3, 5: 3}) \n", "\n", "x..\n", "..x\n", "..o Counter({3: 3, 4: 3, 6: 3, 1: 2, 2: 2, 7: 2}) \n", "\n", "xoo\n", "oxx\n", ".xo Counter({6: 3}) \n", "\n", "xxo\n", ".ox\n", "xoo Counter({3: 14}) \n", "\n", "xx.\n", "oo.\n", "..x Counter({2: 5, 5: 5, 7: 3, 6: 2}) \n", "\n", "x.x\n", ".o.\n", ".o. Counter({1: 11, 3: 4, 5: 2, 8: 1, 6: 0}) \n", "\n", "xoo\n", ".x.\n", "xo. Counter({8: 5, 3: 3, 5: 3}) \n", "\n", "xxo\n", ".oo\n", "x.x Counter({3: 5, 7: 1}) \n", "\n", "xx.\n", "o.o\n", "x.o Counter({2: 3, 4: 3, 7: 3}) \n", "\n", "ox.\n", ".ox\n", "ox. Counter({8: 3, 3: 3, 2: 2}) \n", "\n", "xx.\n", ".o.\n", "x.o Counter({3: 4, 5: 1, 7: 1, 2: 0}) \n", "\n", "oxo\n", "x.x\n", ".o. Counter({8: 3, 4: 3, 6: 3}) \n", "\n", "xox\n", "...\n", "... Counter({4: 4, 5: 3, 6: 3, 7: 3, 8: 3, 3: 2}) \n", "\n", "xxo\n", "x..\n", "o.. Counter({8: 5, 4: 3, 5: 3, 7: 3}) \n", "\n", "ox.\n", "..x\n", "ox. Counter({8: 3, 2: 3, 3: 3, 4: 3}) \n", "\n", "xx.\n", "oox\n", "o.. Counter({2: 8, 7: 4, 8: 2}) \n", "\n", "xx.\n", "ox.\n", "o.o Counter({7: 6, 2: 4, 5: 3}) \n", "\n", "x.x\n", ".o.\n", "... Counter({3: 4, 1: 3, 5: 3, 6: 3, 8: 3, 7: 2}) \n", "\n", "oxo\n", "xx.\n", "... Counter({6: 2, 7: 2, 8: 1, 5: 1}) \n", "\n", "xx.\n", "xoo\n", "... Counter({8: 3, 2: 2, 6: 2, 7: 2}) \n", "\n", "xxo\n", "oo.\n", ".x. Counter({5: 3, 6: 2, 8: 1}) \n", "\n", "xx.\n", "..o\n", "oxo Counter({2: 3, 3: 3, 4: 3}) \n", "\n", "xxo\n", ".oo\n", "..x Counter({6: 3, 7: 3, 3: 2}) \n", "\n", "xxo\n", "x..\n", ".oo Counter({5: 4, 4: 3, 6: 3}) \n", "\n", "ox.\n", "..x\n", "o.. Counter({8: 4, 2: 3, 3: 3, 4: 3, 7: 3}) \n", "\n", "x.o\n", "..x\n", "... Counter({8: 5, 4: 4, 6: 4, 1: 3, 3: 3, 7: 3}) \n", "\n", "xx.\n", "..o\n", "x.o Counter({2: 3, 3: 3, 4: 2, 7: 1}) \n", "\n", "xo.\n", ".ox\n", "x.o Counter({3: 6, 7: 4, 2: 2}) \n", "\n", "xo.\n", "..o\n", ".x. Counter({8: 5, 6: 4, 2: 3, 3: 3, 4: 3}) \n", "\n", "xxo\n", "..o\n", "xo. Counter({8: 3, 3: 3, 4: 3}) \n", "\n" ] } ], "source": [ "for b in p_floor0:\n", " if b != 'human?':\n", " print(show_board(b), p_floor0[b], '\\n')" ] }, { "cell_type": "code", "execution_count": 236, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "x.o\n", ".ox\n", ".xo Counter({6: 5, 1: 1, 3: 1}) \n", "\n", "oxo\n", "...\n", ".x. Counter({3: 4, 6: 4, 4: 3, 5: 3, 8: 2}) \n", "\n", "xx.\n", "o.x\n", "oox Counter({2: 1, 4: 1}) \n", "\n", "o..\n", ".xx\n", ".o. Counter({8: 782, 3: 743, 6: 690, 2: 282, 1: 15}) \n", "\n", "xo.\n", ".xx\n", "..o Counter({2: 1, 3: 1, 6: 1, 7: 1}) \n", "\n", "xo.\n", "..o\n", "x.. Counter({4: 6878, 3: 5308, 8: 3024, 7: 549, 2: 380}) \n", "\n", "xx.\n", ".ox\n", "oxo Counter({2: 21, 3: 1}) \n", "\n", "xx.\n", "o..\n", "xo. Counter({5: 4, 2: 3, 4: 3, 8: 2}) \n", "\n", "xx.\n", "...\n", "oxo Counter({4: 5, 2: 3, 5: 2, 3: 1}) \n", "\n", "xo.\n", "...\n", "... Counter({6: 35062, 4: 33987, 3: 5003, 8: 2378, 7: 2101, 2: 80, 5: 10}) \n", "\n", "xox\n", "ox.\n", "... Counter({8: 1, 5: 1, 6: 1, 7: 1}) \n", "\n", "xoo\n", ".xx\n", ".xo Counter({3: 3, 6: 1}) \n", "\n", "xx.\n", "...\n", "oox Counter({2: 5, 4: 3, 3: 1, 5: 1}) \n", "\n", "xxo\n", ".ox\n", "... Counter({6: 20, 8: 10, 3: 5, 7: 2}) \n", "\n", "xoo\n", ".xo\n", ".x. Counter({8: 155, 3: 1, 6: 1}) \n", "\n", "xx.\n", "o.x\n", "xoo Counter({2: 3, 4: 2}) \n", "\n", "xo.\n", ".ox\n", ".x. Counter({2: 4, 8: 3, 3: 3, 6: 3}) \n", "\n", "xx.\n", ".ox\n", "oo. Counter({2: 18, 8: 1, 3: 1}) \n", "\n", ".x.\n", "xoo\n", "... Counter({0: 5, 2: 4, 8: 3, 6: 2, 7: 1}) \n", "\n", "ox.\n", "x..\n", "... Counter({2: 4, 8: 4, 4: 3, 5: 3, 6: 3, 7: 3}) \n", "\n", "xx.\n", "oox\n", ".xo Counter({2: 3, 6: 1}) \n", "\n", "o.o\n", ".x.\n", ".x. Counter({1: 201, 3: 2, 8: 1, 5: 1, 6: 1}) \n", "\n", "xxo\n", ".x.\n", "..o Counter({5: 25, 7: 13, 3: 2, 6: 1}) \n", "\n", "xxo\n", "x.x\n", "o.o Counter({7: 10, 4: 6}) \n", "\n", "x.o\n", "..o\n", ".x. Counter({3: 6, 8: 3, 1: 3, 4: 3, 6: 3}) \n", "\n", "xxo\n", "o..\n", "o.x Counter({4: 514, 5: 1, 7: 1}) \n", "\n", "xx.\n", ".xo\n", ".oo Counter({2: 684, 3: 1, 6: 1}) \n", "\n", "ox.\n", ".ox\n", "... Counter({8: 1, 2: 1, 3: 1, 6: 1, 7: 1}) \n", "\n", "xo.\n", ".x.\n", ".o. Counter({3: 5707, 2: 5644, 6: 5475, 5: 4195, 8: 1403}) \n", "\n", "x.o\n", "..x\n", ".o. Counter({4: 5, 6: 5, 8: 3, 1: 2, 3: 2}) \n", "\n", "xox\n", "oxo\n", "ox. Counter({8: 6658}) \n", "\n", "oxo\n", "x..\n", ".xo Counter({5: 4, 4: 3, 6: 3}) \n", "\n", "o..\n", "..x\n", "... Counter({2: 13, 4: 12, 8: 6, 6: 4, 7: 4, 1: 2, 3: 1}) \n", "\n", "xxo\n", "...\n", "..o Counter({3: 1, 4: 1, 5: 1, 6: 1, 7: 1}) \n", "\n", "xx.\n", "o.x\n", "oo. Counter({8: 171, 2: 91, 4: 1}) \n", "\n", "xx.\n", ".oo\n", "... Counter({2: 16, 3: 5, 8: 1, 6: 1, 7: 1}) \n", "\n", "ox.\n", ".x.\n", "..o Counter({7: 4884, 3: 3320, 6: 1451, 2: 1256, 5: 541}) \n", "\n", "xxo\n", "o.x\n", "... Counter({4: 4, 8: 3, 7: 3, 6: 2}) \n", "\n", "oxo\n", "xox\n", "... Counter({8: 3, 6: 2, 7: 2}) \n", "\n", "xo.\n", ".xo\n", ".x. Counter({8: 2, 2: 1, 3: 1, 6: 1}) \n", "\n", "xxo\n", ".x.\n", "xoo Counter({5: 26, 3: 3}) \n", "\n", "x..\n", "..o\n", "... Counter({2: 39728, 4: 26663, 6: 10545, 8: 2834, 3: 218, 7: 4, 1: 2}) \n", "\n", "ox.\n", ".x.\n", "... Counter({2: 1, 3: 1, 5: 1, 6: 1, 7: 1, 8: 1}) \n", "\n", "xxo\n", ".ox\n", "..o Counter({6: 4, 3: 1, 7: 1}) \n", "\n", "xx.\n", "ox.\n", "..o Counter({2: 1, 5: 1, 6: 1, 7: 1}) \n", "\n", "xo.\n", "oxx\n", "..o Counter({2: 85, 6: 63, 7: 3}) \n", "\n", "xx.\n", "oxx\n", "oo. Counter({8: 26, 2: 1}) \n", "\n", "xo.\n", "...\n", ".xo Counter({6: 149, 3: 145, 2: 8, 5: 8, 4: 6}) \n", "\n", "xx.\n", "oox\n", "xoo Counter({2: 1928}) \n", "\n", "xx.\n", ".oo\n", ".xo Counter({2: 5, 3: 2, 6: 1}) \n", "\n", "xo.\n", "oxx\n", "... Counter({8: 1, 2: 1, 6: 1, 7: 1}) \n", "\n", "xx.\n", "o..\n", "ox. Counter({2: 3, 5: 3, 4: 2, 8: 1}) \n", "\n", "xox\n", ".x.\n", "oo. Counter({8: 3677, 3: 1, 5: 1}) \n", "\n", "xxo\n", "o.x\n", "xo. Counter({8: 3, 4: 3}) \n", "\n", "xoo\n", ".xx\n", "... Counter({8: 1, 3: 1, 6: 1, 7: 1}) \n", "\n", "xx.\n", "oo.\n", ".x. Counter({2: 9, 5: 9, 8: 3, 6: 2}) \n", "\n", "xo.\n", "...\n", ".ox Counter({4: 885, 2: 1, 3: 1, 5: 1, 6: 1}) \n", "\n", "xox\n", "o..\n", "o.x Counter({5: 6160, 7: 4587, 4: 1208}) \n", "\n", "xx.\n", ".ox\n", "..o Counter({6: 4, 2: 2, 3: 1, 7: 1}) \n", "\n", "xx.\n", "..o\n", "xoo Counter({3: 218, 2: 121, 4: 2}) \n", "\n", "xx.\n", ".o.\n", ".ox Counter({2: 5, 3: 4, 5: 1, 6: 1}) \n", "\n", "xxo\n", "o..\n", "... Counter({4: 831, 5: 5, 7: 3, 8: 1, 6: 1}) \n", "\n", "xxo\n", "x.x\n", ".oo Counter({6: 6, 4: 1}) \n", "\n", "xoo\n", "oxx\n", ".x. Counter({8: 3, 6: 1}) \n", "\n", "xxo\n", ".ox\n", "x.o Counter({3: 3, 7: 1}) \n", "\n", "xxo\n", "...\n", "ox. Counter({4: 8, 8: 4, 3: 3, 5: 3}) \n", "\n", "x..\n", ".ox\n", "..o Counter({6: 7, 1: 5, 2: 4, 3: 3, 7: 1}) \n", "\n", "xox\n", "ox.\n", "..o Counter({6: 7449, 5: 25, 7: 14}) \n", "\n", "ox.\n", "xx.\n", "..o Counter({2: 1, 5: 1, 6: 1, 7: 1}) \n", "\n", "xxo\n", "ox.\n", "..o Counter({7: 3981, 5: 23, 6: 1}) \n", "\n", "xx.\n", ".o.\n", "oxo Counter({2: 112, 3: 1, 5: 1}) \n", "\n", "xxo\n", "oox\n", ".ox Counter({6: 3}) \n", "\n", ".x.\n", "ox.\n", ".o. Counter({2: 1152, 0: 994, 6: 66, 8: 4, 5: 2}) \n", "\n", "...\n", ".x.\n", "... Counter({0: 1, 1: 1, 2: 1, 3: 1, 5: 1, 6: 1, 7: 1, 8: 1}) \n", "\n", "xxo\n", ".xx\n", "o.o Counter({7: 24, 3: 1}) \n", "\n", "xoo\n", "oxx\n", "... Counter({8: 5111, 6: 14, 7: 6}) \n", "\n", ".x.\n", "...\n", ".o. Counter({6: 10, 4: 8, 8: 8, 3: 4, 5: 2, 0: 1, 2: 1}) \n", "\n", "xx.\n", "o..\n", "xoo Counter({2: 362, 4: 16, 5: 16}) \n", "\n", "xxo\n", "o.x\n", "xoo Counter({4: 3}) \n", "\n", "xo.\n", "...\n", "xo. Counter({3: 6560, 4: 5868, 8: 1, 2: 1, 5: 1}) \n", "\n", ".x.\n", "ox.\n", "... Counter({0: 1, 2: 1, 5: 1, 6: 1, 7: 1, 8: 1}) \n", "\n", "ox.\n", "o..\n", ".x. Counter({8: 4, 4: 4, 6: 4, 5: 2, 2: 1}) \n", "\n", "xxo\n", "oxo\n", "... Counter({7: 2649, 8: 1030, 6: 1}) \n", "\n", "xxo\n", ".xo\n", ".o. Counter({8: 682, 3: 1, 6: 1}) \n", "\n", "xxo\n", "..x\n", "o.. Counter({7: 6, 8: 5, 3: 4, 4: 4}) \n", "\n", "xxo\n", ".oo\n", ".xx Counter({3: 13, 6: 5}) \n", "\n", "xx.\n", "oxo\n", "... Counter({8: 1, 2: 1, 6: 1, 7: 1}) \n", "\n", "xxo\n", "xxo\n", "oo. Counter({8: 12}) \n", "\n", "xx.\n", "xoo\n", "..o Counter({6: 9, 2: 6, 7: 1}) \n", "\n", "xox\n", "o..\n", ".ox Counter({4: 1511, 5: 1137, 6: 1}) \n", "\n", "xoo\n", ".x.\n", "... Counter({8: 10740, 5: 4145, 6: 1144, 3: 991, 7: 163}) \n", "\n", "xx.\n", "o..\n", "... Counter({2: 1, 4: 1, 5: 1, 6: 1, 7: 1, 8: 1}) \n", "\n", "x..\n", "..x\n", ".o. Counter({6: 7, 4: 6, 1: 3, 2: 3, 8: 3, 3: 2}) \n", "\n", "xxo\n", ".x.\n", ".oo Counter({3: 1, 5: 1, 6: 1}) \n", "\n", "xo.\n", "..x\n", ".o. Counter({4: 6, 8: 4, 3: 4, 6: 4, 2: 2}) \n", "\n", "xo.\n", "o.x\n", ".xo Counter({2: 3, 4: 3, 6: 3}) \n", "\n", "xxo\n", "oox\n", "xox Counter() \n", "\n", "xxo\n", ".o.\n", "x.. Counter({3: 25, 8: 1, 5: 1, 7: 1}) \n", "\n", "xx.\n", ".o.\n", "xo. Counter({8: 1, 2: 1, 3: 1, 5: 1}) \n", "\n", "xxo\n", "ox.\n", "xoo Counter({5: 3}) \n", "\n", "xo.\n", "..o\n", "..x Counter({4: 480, 7: 347, 6: 99, 3: 17, 2: 1}) \n", "\n", "xxo\n", "..o\n", "xox Counter({3: 1, 4: 1}) \n", "\n", "x.o\n", "...\n", "..x Counter({6: 2, 1: 1, 3: 1, 4: 1, 5: 1, 7: 1}) \n", "\n", "x.o\n", ".o.\n", "..x Counter({6: 5637, 1: 1, 3: 1, 5: 1, 7: 1}) \n", "\n", "x.x\n", ".o.\n", "o.. Counter({1: 17772, 8: 3779, 7: 715, 5: 546, 3: 1}) \n", "\n", "xx.\n", ".x.\n", "o.o Counter({7: 37, 2: 1, 3: 1, 5: 1}) \n", "\n", "xox\n", ".x.\n", "o.o Counter({7: 3, 3: 1, 5: 1}) \n", "\n", "x.o\n", "..x\n", ".xo Counter({4: 3, 3: 2, 1: 1, 6: 1}) \n", "\n", "x.o\n", ".x.\n", ".o. Counter({8: 7584, 6: 4297, 3: 2587, 5: 2022, 1: 1}) \n", "\n", "xoo\n", "oxx\n", "ox. Counter({8: 2016}) \n", "\n", "xxo\n", ".o.\n", "xo. Counter({3: 566, 5: 24, 8: 12}) \n", "\n", "xxo\n", "oxx\n", "..o Counter({7: 3, 6: 1}) \n", "\n", "xxo\n", "...\n", "xoo Counter({3: 208, 5: 13, 4: 1}) \n", "\n", "x.x\n", ".o.\n", "ox. Counter({8: 1, 1: 1, 3: 1, 5: 1}) \n", "\n", "ox.\n", "xox\n", ".o. Counter({8: 3, 2: 3, 6: 1}) \n", "\n", "x..\n", ".ox\n", ".o. Counter({1: 14, 8: 1, 2: 1, 3: 1, 6: 1}) \n", "\n", "xxo\n", "oxx\n", "oo. Counter({8: 2269}) \n", "\n", "xo.\n", "...\n", ".x. Counter({4: 4, 6: 4, 2: 2, 3: 2, 5: 2, 8: 2}) \n", "\n", "xxo\n", ".o.\n", ".xo Counter({3: 1, 5: 1, 6: 1}) \n", "\n", "xxo\n", "...\n", ".xo Counter({6: 6, 5: 5, 4: 3, 3: 2}) \n", "\n", "xxo\n", "oxx\n", ".o. Counter({8: 3, 6: 1}) \n", "\n", "xox\n", ".x.\n", ".o. Counter({8: 1, 3: 1, 5: 1, 6: 1}) \n", "\n", "xx.\n", ".oo\n", "x.o Counter({3: 103, 2: 53, 7: 1}) \n", "\n", "xxo\n", "oo.\n", "xx. Counter({5: 28, 8: 3}) \n", "\n", "xxo\n", "oox\n", "xo. Counter({8: 3}) \n", "\n", "o..\n", ".x.\n", "... Counter({3: 43485, 1: 19956, 6: 17169, 8: 835, 7: 661, 5: 585, 2: 287}) \n", "\n", "x..\n", "..x\n", ".oo Counter({6: 15, 1: 4, 3: 2, 2: 1, 4: 1}) \n", "\n", "xx.\n", ".o.\n", "... Counter({2: 60, 3: 5, 5: 1, 6: 1, 7: 1, 8: 1}) \n", "\n", "xo.\n", "...\n", "x.o Counter({3: 11464, 2: 5727, 4: 4588, 5: 475, 7: 191}) \n", "\n", "xxo\n", "oox\n", ".x. Counter({6: 8, 8: 3}) \n", "\n", "xox\n", "oo.\n", ".x. Counter({5: 876, 8: 1, 6: 1}) \n", "\n", "xoo\n", ".xx\n", "..o Counter({3: 5701, 6: 16, 7: 16}) \n", "\n", "x..\n", ".ox\n", ".xo Counter({2: 4, 1: 3, 6: 3, 3: 2}) \n", "\n", ".x.\n", "o..\n", ".x. Counter({2: 3, 6: 3, 8: 3, 4: 2, 5: 2, 0: 1}) \n", "\n", "xoo\n", "o.x\n", ".x. Counter({4: 8, 6: 4, 8: 3}) \n", "\n", "xxo\n", "x..\n", ".o. Counter({8: 4, 6: 4, 4: 2, 5: 1}) \n", "\n", "xx.\n", "oox\n", "oxo Counter({2: 92}) \n", "\n", "xo.\n", ".x.\n", "x.o Counter({2: 1, 3: 1, 5: 1, 7: 1}) \n", "\n", "x..\n", "...\n", "..o Counter({6: 26002, 2: 13368, 4: 460, 7: 6, 1: 1, 3: 1, 5: 1}) \n", "\n", "xxo\n", "oo.\n", "x.. Counter({5: 3, 8: 1, 7: 1}) \n", "\n", "xxo\n", "x.o\n", "o.. Counter({8: 1, 4: 1, 7: 1}) \n", "\n", "xx.\n", "o.x\n", ".oo Counter({2: 57, 6: 14, 4: 1}) \n", "\n", "xo.\n", ".oo\n", "x.x Counter({3: 629, 7: 131, 2: 1}) \n", "\n", "xxo\n", ".x.\n", "o.. Counter({8: 1, 3: 1, 5: 1, 7: 1}) \n", "\n", "xox\n", "o..\n", ".x. Counter({8: 3, 4: 3, 6: 3, 5: 2}) \n", "\n", "xxo\n", "...\n", "oox Counter({4: 798, 3: 1, 5: 1}) \n", "\n", "oxo\n", "xx.\n", "o.. Counter({8: 535, 7: 533, 5: 147}) \n", "\n", "xo.\n", ".x.\n", "o.. Counter({8: 13197, 3: 2604, 5: 1164, 7: 150, 2: 1}) \n", "\n", "xoo\n", "..o\n", "x.x Counter({3: 3036, 7: 2438, 4: 1397}) \n", "\n", "x.x\n", ".o.\n", "x.o Counter({7: 2, 1: 1, 3: 1, 5: 1}) \n", "\n", "xo.\n", ".xo\n", "xo. Counter({3: 4776, 2: 1933, 8: 771}) \n", "\n", "xxo\n", "oox\n", "x.o Counter({7: 3}) \n", "\n", "xxo\n", "o..\n", "x.. Counter({5: 5, 4: 4, 8: 3, 7: 3}) \n", "\n", "xxo\n", "..o\n", "o.x Counter({4: 471, 3: 1, 7: 1}) \n", "\n", "xx.\n", "oxo\n", ".o. Counter({2: 1600, 8: 816, 6: 624}) \n", "\n", "xx.\n", "ox.\n", ".o. Counter({8: 1, 2: 1, 5: 1, 6: 1}) \n", "\n", "oxo\n", "x.x\n", "o.. Counter({4: 5, 8: 3, 7: 3}) \n", "\n", "xx.\n", "o.o\n", "..x Counter({4: 9, 2: 3, 7: 3, 6: 2}) \n", "\n", "xxo\n", "x.o\n", ".ox Counter({4: 1, 6: 1}) \n", "\n", "xo.\n", "..x\n", "oxo Counter({3: 4, 4: 4, 2: 3}) \n", "\n", "xxo\n", "o.o\n", ".xx Counter({4: 7, 6: 1}) \n", "\n", "xo.\n", ".o.\n", "x.. Counter({3: 23572, 7: 2006, 8: 2, 2: 1, 5: 1}) \n", "\n", "xxo\n", "ox.\n", "... Counter({8: 1, 5: 1, 6: 1, 7: 1}) \n", "\n", "xxo\n", "o.o\n", "x.x Counter({4: 15, 7: 1}) \n", "\n", "x.x\n", "...\n", "oxo Counter({1: 3, 5: 3, 3: 2, 4: 2}) \n", "\n", "xx.\n", "oox\n", "x.o Counter({2: 3, 7: 1}) \n", "\n", "xoo\n", ".ox\n", "x.. Counter({7: 823, 3: 258, 8: 1}) \n", "\n", "xxo\n", "o.x\n", ".xo Counter({4: 3, 6: 1}) \n", "\n", "xxo\n", "..x\n", "o.o Counter({3: 1, 4: 1, 7: 1}) \n", "\n", "ox.\n", "...\n", ".xo Counter({2: 3, 3: 3, 4: 3, 6: 3, 5: 2}) \n", "\n", "xxo\n", "o.x\n", "x.o Counter({4: 3, 7: 3}) \n", "\n", "xxo\n", "oox\n", ".xo Counter({6: 3}) \n", "\n", "xx.\n", ".xo\n", ".o. Counter({8: 1, 2: 1, 3: 1, 6: 1}) \n", "\n", "xxo\n", "o.o\n", "xox Counter({4: 2983}) \n", "\n", "xx.\n", ".o.\n", ".o. Counter({8: 19, 2: 18, 6: 17, 5: 7, 3: 4}) \n", "\n", "xx.\n", "oo.\n", ".xo Counter({2: 36, 5: 7, 6: 1}) \n", "\n", "xx.\n", "oxo\n", "xo. Counter({8: 1, 2: 1}) \n", "\n", "ox.\n", "ox.\n", "... Counter({6: 8237, 7: 5058, 8: 1, 2: 1, 5: 1}) \n", "\n", "xxo\n", "o.x\n", "o.x Counter({4: 10, 7: 1}) \n", "\n", "xx.\n", "oxx\n", "o.o Counter({7: 33, 2: 1}) \n", "\n", "xx.\n", "oo.\n", "... Counter({2: 824, 5: 2, 8: 1, 6: 1, 7: 1}) \n", "\n", "x.o\n", ".o.\n", ".x. Counter({6: 20, 8: 2, 3: 2, 5: 2, 1: 1}) \n", "\n", "xx.\n", ".oo\n", "o.x Counter({2: 420, 3: 1, 7: 1}) \n", "\n", "ox.\n", "xo.\n", "... Counter({8: 3, 2: 3, 5: 3, 6: 2, 7: 2}) \n", "\n", ".x.\n", "x.o\n", "... Counter({2: 3, 6: 3, 0: 2, 7: 2, 8: 2, 4: 1}) \n", "\n", "xxo\n", "...\n", "o.x Counter({4: 10, 7: 4, 5: 3, 3: 2}) \n", "\n", ".x.\n", "...\n", "... Counter({4: 68, 7: 2, 0: 1, 2: 1, 3: 1, 5: 1, 6: 1, 8: 1}) \n", "\n", "ox.\n", ".xx\n", "o.o Counter({7: 97, 3: 51, 2: 1}) \n", "\n", "x.o\n", ".xx\n", "o.. Counter({8: 1, 1: 1, 3: 1, 7: 1}) \n", "\n", "xxo\n", "xoo\n", "... Counter({6: 12, 8: 2, 7: 1}) \n", "\n", "xox\n", "...\n", ".o. Counter({4: 1736, 8: 1, 3: 1, 5: 1, 6: 1}) \n", "\n", "xo.\n", ".xo\n", ".xo Counter({2: 29, 3: 1, 6: 1}) \n", "\n", "xx.\n", "xoo\n", ".ox Counter({2: 1, 6: 1}) \n", "\n", "xx.\n", "o.o\n", "xox Counter({4: 9, 2: 2}) \n", "\n", ".x.\n", "xox\n", ".o. Counter({8: 4, 0: 3, 2: 3, 6: 3}) \n", "\n", "x..\n", ".o.\n", "... Counter({6: 19773, 2: 14042, 8: 1025, 7: 2, 1: 1, 3: 1, 5: 1}) \n", "\n", "x.o\n", ".ox\n", ".x. Counter({8: 11, 6: 10, 1: 2, 3: 2}) \n", "\n", "xxo\n", "o.x\n", "oxo Counter({4: 109}) \n", "\n", "xxo\n", "..x\n", "..o Counter({7: 4, 3: 3, 6: 3, 4: 2}) \n", "\n", "xoo\n", ".xx\n", ".o. Counter({3: 2419, 6: 2065, 8: 1230}) \n", "\n", "xox\n", "...\n", "o.. Counter({8: 10031, 7: 8, 5: 4, 3: 1, 4: 1}) \n", "\n", "xx.\n", "oxo\n", "xoo Counter({2: 3761}) \n", "\n", "xo.\n", ".ox\n", "... Counter({7: 10, 8: 1, 2: 1, 3: 1, 6: 1}) \n", "\n", "oxo\n", "xo.\n", ".x. Counter({8: 2, 5: 1, 6: 1}) \n", "\n", "xxo\n", "...\n", "x.o Counter({5: 8, 3: 4, 4: 1, 7: 1}) \n", "\n", "xx.\n", ".x.\n", "oo. Counter({8: 29, 2: 1, 3: 1, 5: 1}) \n", "\n", "ox.\n", "x.x\n", ".oo Counter({6: 4, 4: 3, 2: 2}) \n", "\n", "ox.\n", "oox\n", ".x. Counter({6: 3, 8: 1, 2: 1}) \n", "\n", "xoo\n", "..x\n", "x.. Counter({4: 3, 8: 2, 3: 1, 7: 1}) \n", "\n", "xx.\n", "..x\n", ".oo Counter({6: 5, 2: 3, 3: 3, 4: 2}) \n", "\n", "xxo\n", ".o.\n", ".x. Counter({3: 11, 5: 7, 8: 4, 6: 4}) \n", "\n", "xoo\n", ".ox\n", ".x. Counter({6: 21, 3: 3, 8: 2}) \n", "\n", ".x.\n", "xxo\n", ".o. Counter({8: 5, 6: 5, 0: 3, 2: 3}) \n", "\n", "xx.\n", ".xo\n", "o.o Counter({2: 630, 7: 165, 3: 1}) \n", "\n", "xxo\n", "o.x\n", "oox Counter({4: 506}) \n", "\n", "xx.\n", "oxo\n", "..o Counter({2: 2935, 7: 1121, 6: 1}) \n", "\n", "xxo\n", "xxo\n", ".o. Counter({8: 38, 6: 1}) \n", "\n", "xxo\n", "...\n", ".ox Counter({6: 4, 3: 2, 4: 2, 5: 1}) \n", "\n", "xoo\n", "..x\n", "ox. Counter({4: 11, 8: 1, 3: 1}) \n", "\n", "x.o\n", "...\n", "... Counter({8: 31446, 6: 20173, 4: 15727, 3: 12148, 5: 22, 1: 1, 7: 1}) \n", "\n", "x.o\n", ".xo\n", "... Counter({8: 16607, 1: 1, 3: 1, 6: 1, 7: 1}) \n", "\n", "xox\n", "oxo\n", ".x. Counter({8: 1, 6: 1}) \n", "\n", ".x.\n", "x.o\n", ".o. Counter({0: 4, 6: 4, 8: 3, 2: 3, 4: 3}) \n", "\n", "xx.\n", "xxo\n", ".oo Counter({2: 12, 6: 7}) \n", "\n", "xxo\n", ".oo\n", "x.. Counter({3: 18, 8: 1, 7: 1}) \n", "\n", "xx.\n", "..x\n", "o.o Counter({7: 12, 4: 4, 2: 3, 3: 2}) \n", "\n", "oxo\n", "xox\n", ".x. Counter({8: 7, 6: 4}) \n", "\n", "xoo\n", ".xx\n", "x.o Counter({3: 3, 7: 1}) \n", "\n", "x.o\n", ".xo\n", ".x. Counter({8: 17, 1: 3, 3: 1, 6: 1}) \n", "\n", "oxo\n", "xxo\n", "... Counter({7: 2146, 8: 25, 6: 1}) \n", "\n", "x.o\n", ".xx\n", "oo. Counter({3: 1503, 8: 1075, 1: 1}) \n", "\n", "xo.\n", ".ox\n", "x.. Counter({7: 16, 3: 7, 8: 1, 2: 1}) \n", "\n", "xo.\n", ".ox\n", "ox. Counter({2: 16, 8: 1, 3: 1}) \n", "\n", "xx.\n", "oo.\n", "x.o Counter({2: 135, 5: 6, 7: 1}) \n", "\n", "xx.\n", "o.o\n", "ox. Counter({4: 240, 2: 74, 8: 1}) \n", "\n", "xox\n", "ox.\n", ".o. Counter({5: 5571, 6: 5109, 8: 2230}) \n", "\n", "xo.\n", ".x.\n", "xo. Counter({8: 1, 2: 1, 3: 1, 5: 1}) \n", "\n", "xx.\n", "..o\n", "... Counter({2: 4, 3: 4, 4: 1, 6: 1, 7: 1, 8: 1}) \n", "\n", "x..\n", "...\n", "... Counter({4: 2, 1: 1, 2: 1, 3: 1, 5: 1, 6: 1, 7: 1, 8: 1}) \n", "\n", "ox.\n", "oxx\n", ".o. Counter({6: 10, 2: 2, 8: 1}) \n", "\n", "xo.\n", ".x.\n", "oxo Counter({5: 510, 3: 490, 2: 3}) \n", "\n", "x.o\n", ".xx\n", "..o Counter({1: 1, 3: 1, 6: 1, 7: 1}) \n", "\n", "xox\n", "o..\n", "x.. Counter({4: 4, 8: 3, 5: 3, 7: 2}) \n", "\n", "xxo\n", "x..\n", "o.o Counter({4: 3, 5: 2, 7: 1}) \n", "\n", "xxo\n", "..o\n", ".ox Counter({6: 128, 4: 106, 3: 62}) \n", "\n", "xox\n", "o.o\n", "x.. Counter({4: 993, 8: 1, 7: 1}) \n", "\n", "xoo\n", "..x\n", "xo. Counter({3: 552, 4: 495, 8: 1}) \n", "\n", "xxo\n", "o.o\n", "x.. Counter({8: 1, 4: 1, 7: 1}) \n", "\n", "xxo\n", "o.o\n", "..x Counter({4: 10, 6: 3, 7: 3}) \n", "\n", "xx.\n", "xo.\n", "..o Counter({6: 3, 2: 2, 5: 2, 7: 2}) \n", "\n", "xxo\n", "oxx\n", "o.o Counter({7: 2508}) \n", "\n", "xx.\n", "..x\n", "oo. Counter({2: 6, 8: 3, 3: 2, 4: 2}) \n", "\n", "xo.\n", "o..\n", "..x Counter({4: 335, 5: 198, 7: 162, 6: 105, 2: 101}) \n", "\n", "ox.\n", "..o\n", ".x. Counter({3: 4, 4: 4, 2: 3, 6: 3, 8: 2}) \n", "\n", ".x.\n", "oxo\n", "... Counter({8: 914, 2: 800, 6: 275, 7: 199, 0: 186}) \n", "\n", "xo.\n", "..x\n", ".xo Counter({2: 3, 3: 3, 4: 3, 6: 3}) \n", "\n", "xxo\n", "oo.\n", "..x Counter({5: 1, 6: 1, 7: 1}) \n", "\n", "xxo\n", "oo.\n", "xxo Counter({5: 3}) \n", "\n", ".x.\n", ".o.\n", ".x. Counter({3: 13, 5: 6, 2: 4, 6: 4, 0: 3, 8: 3}) \n", "\n", "xxo\n", "oxx\n", "xoo Counter() \n", "\n", "xxo\n", ".ox\n", ".xo Counter({6: 9, 3: 3}) \n", "\n", "xxo\n", ".oo\n", "xox Counter({3: 3572}) \n", "\n", "xoo\n", ".xx\n", "ox. Counter({8: 1, 3: 1}) \n", "\n", "xx.\n", ".ox\n", "o.o Counter({2: 12, 7: 2, 3: 1}) \n", "\n", "xxo\n", "ox.\n", "x.o Counter({5: 45, 7: 3}) \n", "\n", "ox.\n", "xxo\n", "... Counter({8: 1, 2: 1, 6: 1, 7: 1}) \n", "\n", "xx.\n", "...\n", "o.. Counter({4: 3, 2: 2, 5: 2, 3: 1, 7: 1, 8: 1}) \n", "\n", "x.x\n", ".o.\n", "oxo Counter({1: 249, 3: 22, 5: 6}) \n", "\n", "x.x\n", "...\n", "o.o Counter({1: 9546, 7: 178, 4: 2, 5: 2, 3: 1}) \n", "\n", "xxo\n", "o..\n", "..x Counter({4: 5, 5: 3, 6: 2, 7: 2}) \n", "\n", "xox\n", "o..\n", "... Counter({4: 7965, 8: 3298, 5: 857, 7: 41, 6: 4}) \n", "\n", "xoo\n", "..x\n", ".xo Counter({3: 11, 4: 3, 6: 3}) \n", "\n", "xx.\n", "o.o\n", "x.. Counter({4: 7, 2: 5, 8: 3, 7: 3}) \n", "\n", "xox\n", ".x.\n", "o.. Counter({8: 27, 3: 1, 5: 1, 7: 1}) \n", "\n", "xx.\n", "..o\n", ".ox Counter({2: 2, 3: 2, 4: 1, 6: 1}) \n", "\n", "xxo\n", "ox.\n", "o.. Counter({7: 1322, 5: 1177, 8: 1174}) \n", "\n", "xx.\n", "o..\n", "o.. Counter({7: 892, 5: 800, 4: 672, 2: 300, 8: 292}) \n", "\n", "xoo\n", "...\n", ".x. Counter({8: 160, 3: 146, 6: 57, 4: 16, 5: 10}) \n", "\n", ".o.\n", ".x.\n", "... Counter({6: 31672, 2: 24748, 5: 11312, 0: 9496, 8: 6709, 3: 2217, 7: 1}) \n", "\n", "xxo\n", "o.x\n", ".ox Counter({4: 3, 6: 1}) \n", "\n", "x.o\n", ".xx\n", ".o. Counter({8: 1, 1: 1, 3: 1, 6: 1}) \n", "\n", "xox\n", "ox.\n", ".xo Counter({6: 3, 5: 1}) \n", "\n", "xo.\n", "...\n", "ox. Counter({4: 182, 8: 118, 2: 12, 3: 6, 5: 1}) \n", "\n", "xox\n", "o..\n", "ox. Counter({8: 831, 4: 7, 5: 6}) \n", "\n", "oxo\n", "x.o\n", ".x. Counter({8: 4, 4: 3, 6: 3}) \n", "\n", "xo.\n", ".xo\n", "ox. Counter({8: 3032, 2: 43, 3: 11}) \n", "\n", "xx.\n", ".ox\n", "o.. Counter({2: 13, 7: 3, 8: 1, 3: 1}) \n", "\n", "xx.\n", "..o\n", ".o. Counter({6: 17, 8: 16, 4: 12, 3: 9, 2: 8}) \n", "\n", "xx.\n", "oox\n", "ox. Counter({2: 8, 8: 1}) \n", "\n", "x.o\n", ".x.\n", ".xo Counter({5: 22, 1: 2, 3: 1, 6: 1}) \n", "\n", "xox\n", "o..\n", "x.o Counter({4: 4717, 7: 30, 5: 29}) \n", "\n", "ox.\n", ".xx\n", "..o Counter({2: 1, 3: 1, 6: 1, 7: 1}) \n", "\n", "xo.\n", "..x\n", "xo. Counter({4: 5, 8: 2, 2: 2, 3: 2}) \n", "\n", "xxo\n", "o.o\n", ".x. Counter({4: 7, 8: 3, 6: 1}) \n", "\n", "xxo\n", "o..\n", "xo. Counter({4: 82, 8: 22, 5: 3}) \n", "\n", "xxo\n", ".o.\n", "x.o Counter({3: 152, 5: 8, 7: 1}) \n", "\n", "xxo\n", "x..\n", "..o Counter({4: 5, 5: 5, 6: 5, 7: 3}) \n", "\n", "xxo\n", "...\n", ".o. Counter({6: 47, 8: 1, 3: 1, 4: 1, 5: 1}) \n", "\n", "xxo\n", "xox\n", "..o Counter({6: 18, 7: 1}) \n", "\n", "ox.\n", "oxx\n", "... Counter({6: 33, 8: 1, 2: 1, 7: 1}) \n", "\n", "xx.\n", "o..\n", "oox Counter({5: 794, 2: 356, 4: 270}) \n", "\n", "xx.\n", "o.o\n", "o.x Counter({2: 539, 4: 389, 7: 1}) \n", "\n", "xx.\n", ".x.\n", ".oo Counter({6: 18, 2: 13, 3: 3, 5: 1}) \n", "\n", "xoo\n", ".o.\n", "x.x Counter({3: 9400, 7: 1349, 5: 1}) \n", "\n", "xox\n", ".x.\n", "oxo Counter({3: 3, 5: 3}) \n", "\n", "xox\n", ".o.\n", ".x. Counter({8: 1, 3: 1, 5: 1, 6: 1}) \n", "\n", "xoo\n", ".xx\n", "xo. Counter({8: 1, 3: 1}) \n", "\n", "xx.\n", ".o.\n", "o.. Counter({2: 2025, 3: 2, 8: 1, 5: 1, 7: 1}) \n", "\n", "xo.\n", "..x\n", "... Counter({4: 9, 2: 1, 3: 1, 6: 1, 7: 1, 8: 1}) \n", "\n", "xxo\n", ".o.\n", ".ox Counter({6: 152, 3: 1, 5: 1}) \n", "\n", "xox\n", "ox.\n", "oxo Counter({5: 3}) \n", "\n", "xx.\n", "ox.\n", "xoo Counter({2: 3, 5: 1}) \n", "\n", "xxo\n", "..o\n", ".x. Counter({4: 6, 6: 4, 8: 3, 3: 3}) \n", "\n", "ox.\n", ".xo\n", "... Counter({7: 5119, 2: 3898, 6: 3041, 8: 536, 3: 447}) \n", "\n", "xx.\n", "xox\n", ".oo Counter({6: 8, 2: 2}) \n", "\n", "x.o\n", "..x\n", "ox. Counter({4: 5, 1: 4, 8: 3, 3: 3}) \n", "\n", "xx.\n", "oox\n", "o.x Counter({2: 6, 7: 1}) \n", "\n", ".x.\n", "o.o\n", ".x. Counter({0: 3, 8: 3, 2: 3, 4: 3, 6: 3}) \n", "\n", "xxo\n", "...\n", "oxo Counter({4: 99, 3: 1, 5: 1}) \n", "\n", "x.x\n", ".x.\n", "o.o Counter({7: 16, 1: 3, 3: 2, 5: 1}) \n", "\n", "xxo\n", "xo.\n", "... Counter({6: 23, 7: 2, 8: 1, 5: 1}) \n", "\n", "xox\n", "o..\n", ".xo Counter({6: 25, 4: 19, 5: 3}) \n", "\n", ".x.\n", ".x.\n", ".o. Counter({0: 1, 2: 1, 3: 1, 5: 1, 6: 1, 8: 1}) \n", "\n", "xx.\n", "ox.\n", "o.. Counter({8: 1, 2: 1, 5: 1, 7: 1}) \n", "\n", "xx.\n", "..o\n", "xo. Counter({8: 4, 2: 2, 3: 1, 4: 1}) \n", "\n", "xox\n", ".o.\n", "x.o Counter({3: 9713, 7: 19, 5: 1}) \n", "\n", "xo.\n", "..o\n", "x.x Counter({4: 4, 3: 3, 7: 3, 2: 2}) \n", "\n", "oo.\n", ".x.\n", ".x. Counter({2: 178, 8: 1, 3: 1, 5: 1, 6: 1}) \n", "\n", "xo.\n", ".o.\n", ".x. Counter({6: 187, 8: 173, 2: 18, 5: 3, 3: 2}) \n", "\n", "xx.\n", "o.o\n", ".xo Counter({2: 26, 4: 21, 6: 1}) \n", "\n", "xxo\n", "xo.\n", ".xo Counter({5: 12, 6: 6}) \n", "\n", "oxo\n", ".x.\n", "... Counter({7: 5547, 6: 1449, 5: 1380, 3: 1176, 8: 926}) \n", "\n", "xxo\n", "xx.\n", ".oo Counter({5: 21, 6: 17}) \n", "\n", "xo.\n", ".xx\n", ".o. Counter({8: 1, 2: 1, 3: 1, 6: 1}) \n", "\n", "xx.\n", ".oo\n", ".ox Counter({2: 437, 3: 256, 6: 1}) \n", "\n", "xx.\n", ".o.\n", "xoo Counter({2: 613, 5: 180, 3: 73}) \n", "\n", "xo.\n", ".xo\n", "... Counter({6: 9004, 8: 7799, 2: 4862, 3: 812, 7: 112}) \n", "\n", "x..\n", ".xo\n", "... Counter({1: 1, 2: 1, 3: 1, 6: 1, 7: 1, 8: 1}) \n", "\n", "x.o\n", "...\n", "o.x Counter({4: 5301, 1: 1, 3: 1, 5: 1, 7: 1}) \n", "\n", "xx.\n", ".oo\n", ".x. Counter({2: 9, 3: 9, 6: 2, 8: 1}) \n", "\n", "xxo\n", ".ox\n", ".o. Counter({6: 9, 8: 2, 3: 1}) \n", "\n", "xx.\n", "ox.\n", "oo. Counter({8: 795, 2: 465, 5: 1}) \n", "\n", "xx.\n", "...\n", "oo. Counter({8: 1136, 2: 854, 3: 1, 4: 1, 5: 1}) \n", "\n", "xx.\n", "...\n", "..o Counter({2: 13, 5: 5, 7: 2, 3: 1, 4: 1, 6: 1}) \n", "\n", "x.o\n", "...\n", ".x. Counter({8: 5, 3: 3, 1: 1, 4: 1, 5: 1, 6: 1}) \n", "\n", "ox.\n", ".ox\n", ".x. Counter({6: 10, 3: 5, 8: 3, 2: 2}) \n", "\n", "xx.\n", "x.o\n", ".oo Counter({6: 6, 2: 4, 4: 1}) \n", "\n", "...\n", "...\n", "... Counter({4: 169091, 2: 143376, 0: 96169, 8: 51596, 6: 21545, 3: 17, 7: 7, 5: 2, 1: 1}) \n", "\n", "xx.\n", "oxx\n", ".oo Counter({6: 42, 2: 3}) \n", "\n", "xx.\n", "o.x\n", "..o Counter({7: 4, 2: 3, 4: 3, 6: 2}) \n", "\n", "oxo\n", "xx.\n", ".o. Counter({5: 2170, 8: 10, 6: 8}) \n", "\n", "ox.\n", ".xx\n", "o.. Counter({3: 27, 7: 3, 8: 1, 2: 1}) \n", "\n", "xxo\n", "..o\n", "... Counter({7: 2, 8: 1, 3: 1, 4: 1, 6: 1}) \n", "\n", "xox\n", "oo.\n", "x.x Counter({5: 15, 7: 9}) \n", "\n", "xxo\n", "oo.\n", "x.x Counter({5: 27, 7: 3}) \n", "\n", "x..\n", ".xo\n", "..o Counter({2: 11283, 1: 1, 3: 1, 6: 1, 7: 1}) \n", "\n", "ox.\n", ".xx\n", ".o. Counter({8: 1, 2: 1, 3: 1, 6: 1}) \n", "\n", "x..\n", ".o.\n", "..x Counter({7: 16, 1: 6, 5: 3, 2: 1, 3: 1, 6: 1}) \n", "\n", "xx.\n", "o..\n", ".ox Counter({5: 3, 4: 2, 2: 1, 6: 1}) \n", "\n", "x.x\n", ".x.\n", "oo. Counter({8: 26, 1: 2, 3: 1, 5: 1}) \n", "\n", "xo.\n", ".xx\n", ".oo Counter({6: 1058, 3: 743, 2: 1}) \n", "\n", "xx.\n", "...\n", ".o. Counter({6: 4, 8: 4, 2: 3, 3: 1, 4: 1, 5: 1}) \n", "\n", "xxo\n", "...\n", "o.. Counter({4: 2135, 8: 1, 3: 1, 5: 1, 7: 1}) \n", "\n", "xox\n", "o.o\n", "xox Counter({4: 5}) \n", "\n", "ox.\n", ".x.\n", ".o. Counter({6: 5744, 3: 3058, 5: 5, 8: 4, 2: 1}) \n", "\n", "xo.\n", "oox\n", ".x. Counter({8: 5, 2: 5, 6: 5}) \n", "\n", "ox.\n", "...\n", "... Counter({4: 17, 8: 9, 6: 5, 2: 3, 3: 3, 7: 3, 5: 2}) \n", "\n", "xox\n", ".o.\n", "x.. Counter({3: 35, 7: 16, 5: 3, 8: 1}) \n", "\n", "xo.\n", ".ox\n", ".xo Counter({3: 6, 6: 5, 2: 3}) \n", "\n", "xx.\n", "..o\n", "ox. Counter({2: 3, 8: 2, 3: 2, 4: 2}) \n", "\n", "xo.\n", "o.x\n", ".x. Counter({8: 3, 2: 3, 6: 3, 4: 2}) \n", "\n", "xx.\n", "oox\n", "..o Counter({2: 56, 7: 7, 6: 5}) \n", "\n", "xx.\n", "o..\n", "o.x Counter({2: 3, 4: 1, 5: 1, 7: 1}) \n", "\n", "x.o\n", ".ox\n", "... Counter({6: 27, 1: 2, 8: 1, 3: 1, 7: 1}) \n", "\n", "xxo\n", "o.x\n", ".o. Counter({4: 9, 8: 4, 6: 3}) \n", "\n", "xxo\n", "o..\n", "ox. Counter({4: 238, 8: 1, 5: 1}) \n", "\n", "x..\n", ".xo\n", ".o. Counter({8: 6289, 6: 2415, 1: 1008, 3: 567, 2: 473}) \n", "\n", "xx.\n", "o..\n", ".o. Counter({8: 301, 4: 281, 2: 216, 6: 63, 5: 20}) \n", "\n", "x.o\n", "...\n", ".xo Counter({5: 2, 1: 1, 3: 1, 4: 1, 6: 1}) \n", "\n", "xo.\n", ".xx\n", "oo. Counter({3: 1374, 8: 458, 2: 1}) \n", "\n", "xx.\n", "o.x\n", "oxo Counter({4: 2, 2: 1}) \n", "\n", "x.o\n", ".xx\n", ".oo Counter({3: 3607, 6: 13, 1: 1}) \n", "\n", "xx.\n", "...\n", ".oo Counter({2: 33, 6: 12, 3: 1, 4: 1, 5: 1}) \n", "\n", "xx.\n", "o..\n", "oxo Counter({4: 191, 2: 161, 5: 50}) \n", "\n", "xx.\n", "oox\n", ".o. Counter({2: 16, 6: 4, 8: 3}) \n", "\n", "oxo\n", "x.x\n", "oxo Counter({4: 4}) \n", "\n", "xox\n", "ox.\n", "o.. Counter({8: 8065, 5: 31, 7: 19}) \n", "\n", "xxo\n", "x.o\n", "... Counter({6: 5, 8: 4, 4: 2, 7: 1}) \n", "\n", "xxo\n", ".o.\n", "... Counter({6: 4, 8: 1, 3: 1, 5: 1, 7: 1}) \n", "\n", "xx.\n", ".oo\n", "xox Counter({3: 20, 2: 1}) \n", "\n", "xx.\n", ".o.\n", "..o Counter({2: 11, 6: 4, 7: 4, 5: 3, 3: 2}) \n", "\n", "xx.\n", "o..\n", ".xo Counter({4: 2, 2: 1, 5: 1, 6: 1}) \n", "\n", "xxo\n", "xxo\n", "o.. Counter({8: 36, 7: 1}) \n", "\n", "oxo\n", "x.x\n", "... Counter({8: 3, 4: 3, 6: 3, 7: 3}) \n", "\n", "xx.\n", "o.x\n", "o.o Counter({2: 209, 7: 104, 4: 1}) \n", "\n", "xo.\n", "..x\n", "o.. Counter({8: 6, 7: 5, 2: 4, 4: 4, 3: 2}) \n", "\n", "xox\n", "oo.\n", "x.. Counter({8: 1, 5: 1, 7: 1}) \n", "\n", "xxo\n", "..o\n", "x.. Counter({3: 9, 8: 5, 4: 1, 7: 1}) \n", "\n", "xx.\n", ".o.\n", "oox Counter({2: 1149, 3: 1, 5: 1}) \n", "\n", "xx.\n", "..o\n", ".xo Counter({2: 4, 3: 3, 4: 3, 6: 3}) \n", "\n", "xoo\n", ".x.\n", "ox. Counter({3: 1421, 8: 960, 5: 941}) \n", "\n", "o..\n", "..x\n", ".x. Counter({4: 7, 6: 7, 2: 3, 3: 3, 1: 2, 8: 2}) \n", "\n", "xxo\n", ".o.\n", "xox Counter({3: 3, 5: 1}) \n", "\n", "xx.\n", "oxo\n", "x.o Counter({2: 32, 7: 1}) \n", "\n", "xx.\n", "oox\n", "... Counter({2: 6, 7: 2, 8: 1, 6: 1}) \n", "\n", "xo.\n", ".x.\n", ".xo Counter({2: 1, 3: 1, 5: 1, 6: 1}) \n", "\n", "xox\n", "...\n", "x.o Counter({3: 1, 4: 1, 5: 1, 7: 1}) \n", "\n", "xxo\n", "oox\n", "... Counter({6: 3, 8: 1, 7: 1}) \n", "\n", "xo.\n", ".o.\n", "..x Counter({7: 1359, 2: 1, 3: 1, 5: 1, 6: 1}) \n", "\n", "xx.\n", ".oo\n", "x.. Counter({3: 7, 7: 5, 8: 4, 2: 1}) \n", "\n", "xxo\n", "xx.\n", "o.o Counter({7: 20, 5: 4}) \n", "\n", "xxo\n", "o.x\n", "..o Counter({7: 17, 4: 12, 6: 3}) \n", "\n", "xoo\n", "..x\n", ".x. Counter({8: 3, 3: 3, 6: 3, 4: 1}) \n", "\n", "xxo\n", ".oo\n", ".x. Counter({8: 1, 3: 1, 6: 1}) \n", "\n", "ox.\n", "...\n", "ox. Counter({3: 4, 8: 3, 2: 3, 4: 3, 5: 3}) \n", "\n", "ox.\n", "..x\n", "... Counter({6: 8, 3: 4, 4: 4, 7: 2, 8: 2, 2: 1}) \n", "\n", "xox\n", "oxo\n", "... Counter({6: 3277, 8: 3078, 7: 992}) \n", "\n", "xox\n", "ox.\n", "ox. Counter({8: 3, 5: 1}) \n", "\n", "xx.\n", ".o.\n", "o.x Counter({2: 14, 3: 3, 5: 2, 7: 1}) \n", "\n", "ox.\n", "xxo\n", "..o Counter({7: 1687, 2: 1093, 6: 1}) \n", "\n", "xx.\n", "...\n", "o.o Counter({2: 1659, 7: 387, 3: 1, 4: 1, 5: 1}) \n", "\n", "xxo\n", "x.o\n", "o.x Counter({4: 10, 7: 2}) \n", "\n", "xo.\n", ".x.\n", "... Counter({2: 1, 3: 1, 5: 1, 6: 1, 7: 1, 8: 1}) \n", "\n", "xoo\n", ".xx\n", "oxo Counter({3: 5454}) \n", "\n", "xxo\n", "xoo\n", ".x. Counter({6: 8, 8: 3}) \n", "\n", "xo.\n", "..x\n", "..o Counter({3: 12, 6: 5, 4: 4, 7: 3, 2: 1}) \n", "\n", "xx.\n", "oox\n", ".ox Counter({2: 3, 6: 3}) \n", "\n", "xxo\n", "ox.\n", ".o. Counter({8: 2248, 6: 40, 5: 15}) \n", "\n", "oo.\n", "oxx\n", ".x. Counter({8: 1, 2: 1, 6: 1}) \n", "\n", "xxo\n", "o.o\n", "xx. Counter({8: 10, 4: 3}) \n", "\n", "x..\n", ".xx\n", ".oo Counter({6: 22, 3: 3, 1: 1, 2: 1}) \n", "\n", "xxo\n", "xo.\n", ".o. Counter({6: 4, 5: 3, 8: 2}) \n", "\n", "x.o\n", ".x.\n", "... Counter({1: 1, 3: 1, 5: 1, 6: 1, 7: 1, 8: 1}) \n", "\n", "xox\n", "o..\n", "..x Counter({7: 5, 4: 4, 5: 4, 6: 1}) \n", "\n", "xxo\n", "xoo\n", ".ox Counter({6: 573}) \n", "\n", "xxo\n", ".o.\n", "..x Counter({3: 14, 6: 12, 5: 11, 7: 6}) \n", "\n", "xo.\n", "..x\n", "ox. Counter({4: 4, 2: 3, 8: 2, 3: 2}) \n", "\n", "xxo\n", "ox.\n", "xo. Counter({8: 3, 5: 1}) \n", "\n", "xoo\n", "..x\n", "x.o Counter({3: 1052, 4: 14, 7: 8}) \n", "\n", "ox.\n", "xox\n", "... Counter({6: 10, 8: 7, 2: 6, 7: 4}) \n", "\n", "xo.\n", ".xo\n", "x.o Counter({3: 4267, 2: 3500, 7: 1}) \n", "\n", "xox\n", "o.o\n", "x.x Counter({4: 10, 7: 1}) \n", "\n", "xxo\n", ".x.\n", ".o. Counter({8: 21, 5: 2, 3: 1, 6: 1}) \n", "\n", "xoo\n", ".x.\n", "x.o Counter({3: 6781, 5: 16, 7: 1}) \n", "\n", "ox.\n", "x.x\n", ".o. Counter({8: 4, 4: 4, 6: 3, 2: 2}) \n", "\n", "xo.\n", ".x.\n", "ox. Counter({8: 1, 2: 1, 3: 1, 5: 1}) \n", "\n", "xo.\n", "...\n", "o.x Counter({4: 5884, 2: 3915, 5: 1416, 7: 211, 3: 1}) \n", "\n", "xx.\n", ".oo\n", "xo. Counter({2: 583, 3: 226, 8: 1}) \n", "\n", "xx.\n", "o.x\n", "o.. Counter({2: 3, 8: 2, 4: 2, 7: 2}) \n", "\n", "xxo\n", "oxo\n", "x.. Counter({8: 29, 7: 1}) \n", "\n", "xxo\n", "x.x\n", "oo. Counter({4: 8, 8: 5}) \n", "\n", "xxo\n", "o..\n", ".ox Counter({4: 268, 6: 10, 5: 7}) \n", "\n", "oxo\n", "x.x\n", "ox. Counter({4: 5, 8: 3}) \n", "\n", "xx.\n", "oo.\n", ".ox Counter({2: 643, 5: 23, 6: 1}) \n", "\n", "xxo\n", "o..\n", "xox Counter({4: 3, 5: 1}) \n", "\n", "ox.\n", "...\n", ".x. Counter({4: 7, 2: 5, 5: 5, 3: 2, 8: 2, 6: 1}) \n", "\n", "xx.\n", ".xo\n", "..o Counter({2: 29, 3: 1, 6: 1, 7: 1}) \n", "\n", "ox.\n", "oxx\n", "..o Counter({7: 220, 6: 53, 2: 1}) \n", "\n", "xxo\n", ".xo\n", "o.. Counter({8: 1364, 7: 451, 3: 1}) \n", "\n", "xx.\n", "o.o\n", ".ox Counter({2: 268, 4: 108, 6: 1}) \n", "\n", "xo.\n", "...\n", "..x Counter({4: 11, 2: 1, 3: 1, 5: 1, 6: 1, 7: 1}) \n", "\n", "xo.\n", "o.x\n", "... Counter({8: 319, 4: 46, 2: 31, 6: 8, 7: 8}) \n", "\n", "xxo\n", "xoo\n", "..x Counter({6: 13, 7: 1}) \n", "\n", "xxo\n", "..o\n", "..x Counter({4: 7, 3: 3, 6: 3, 7: 2}) \n", "\n", "ox.\n", "x.x\n", "..o Counter({2: 4, 4: 3, 6: 3, 7: 3}) \n", "\n", ".x.\n", "xo.\n", "... Counter({0: 20, 6: 8, 2: 2, 7: 2, 8: 2, 5: 1}) \n", "\n", "ox.\n", ".xx\n", "oo. Counter({3: 17, 2: 2, 8: 1}) \n", "\n", "xxo\n", "xo.\n", ".ox Counter({6: 15, 5: 1}) \n", "\n", "xxo\n", "oxx\n", "o.. Counter({8: 1, 7: 1}) \n", "\n", "x.o\n", "..x\n", "..o Counter({4: 10, 3: 6, 6: 4, 7: 4, 1: 1}) \n", "\n", "xo.\n", "oxx\n", ".xo Counter({2: 3, 6: 3}) \n", "\n", "xxo\n", "o..\n", ".x. Counter({8: 4, 6: 4, 4: 3, 5: 3}) \n", "\n", "xxo\n", ".xo\n", "... Counter({8: 20, 7: 4, 6: 2, 3: 1}) \n", "\n", "xox\n", "o.o\n", ".x. Counter({4: 33, 8: 1, 6: 1}) \n", "\n", "xoo\n", ".x.\n", ".xo Counter({5: 58, 3: 1, 6: 1}) \n", "\n", "xx.\n", ".o.\n", ".xo Counter({2: 5, 3: 3, 5: 3, 6: 2}) \n", "\n", "xox\n", ".o.\n", "ox. Counter({5: 476, 8: 421, 3: 3}) \n", "\n", "x.o\n", "..x\n", "o.. Counter({4: 12, 7: 3, 8: 2, 1: 1, 3: 1}) \n", "\n", "xx.\n", "oo.\n", "xo. Counter({2: 834, 5: 27, 8: 1}) \n", "\n", "xxo\n", ".xo\n", "xo. Counter({8: 31, 3: 1}) \n", "\n", "xx.\n", "ox.\n", ".oo Counter({2: 2648, 6: 39, 5: 1}) \n", "\n", "oxo\n", "xx.\n", "..o Counter({7: 1973, 5: 813, 6: 1}) \n", "\n", "xx.\n", "o.o\n", "... Counter({4: 529, 2: 371, 7: 2, 8: 1, 6: 1}) \n", "\n", "xo.\n", ".xx\n", "o.. Counter({8: 1, 2: 1, 3: 1, 7: 1}) \n", "\n", "xxo\n", ".xx\n", "oo. Counter({8: 27, 3: 1}) \n", "\n", "ox.\n", "x.o\n", "... Counter({8: 5, 4: 5, 7: 2, 2: 1, 6: 1}) \n", "\n", "xx.\n", "oo.\n", "o.x Counter({2: 448, 5: 1, 7: 1}) \n", "\n", "xox\n", "...\n", "xoo Counter({4: 7758, 3: 3191, 5: 1}) \n", "\n", "xx.\n", "o..\n", "..o Counter({2: 481, 4: 152, 7: 127, 5: 52, 6: 6}) \n", "\n", "xxo\n", "..x\n", "oo. Counter({8: 1, 3: 1, 4: 1}) \n", "\n", "xx.\n", ".xo\n", "o.. Counter({8: 1, 2: 1, 3: 1, 7: 1}) \n", "\n", "xx.\n", ".ox\n", ".oo Counter({6: 10, 2: 6, 3: 1}) \n", "\n", "xxo\n", "o.x\n", "ox. Counter({4: 8, 8: 2}) \n", "\n", "xxo\n", ".x.\n", "oo. Counter({8: 1084, 3: 1, 5: 1}) \n", "\n", "ox.\n", ".o.\n", ".x. Counter({8: 1, 2: 1, 3: 1, 5: 1, 6: 1}) \n", "\n", "xx.\n", "oo.\n", "ox. Counter({2: 216, 8: 1, 5: 1}) \n", "\n", "xx.\n", "o..\n", "x.o Counter({2: 4, 5: 3, 7: 3, 4: 2}) \n", "\n", "xoo\n", "..x\n", "... Counter({3: 14, 6: 5, 4: 3, 8: 1, 7: 1}) \n", "\n", "xxo\n", "...\n", "... Counter({6: 7, 8: 5, 4: 3, 5: 3, 7: 3, 3: 2}) \n", "\n", "xx.\n", "oox\n", "oox Counter({2: 488}) \n", "\n", "xxo\n", "o..\n", ".xo Counter({4: 21, 5: 9, 6: 1}) \n", "\n", "xoo\n", ".xx\n", "xoo Counter({3: 5055}) \n", "\n", "xxo\n", "oo.\n", "xox Counter({5: 3}) \n", "\n", "x.x\n", "...\n", ".o. Counter({3: 5, 1: 4, 4: 3, 5: 3, 6: 3, 8: 3}) \n", "\n", "x..\n", ".ox\n", "... Counter({2: 22, 7: 19, 1: 11, 6: 2, 8: 2, 3: 1}) \n", "\n", "xx.\n", "o.x\n", ".o. Counter({2: 2, 6: 2, 8: 1, 4: 1}) \n", "\n", "xo.\n", ".xx\n", "o.o Counter({3: 849, 7: 10, 2: 1}) \n", "\n", "x.o\n", ".xx\n", "o.o Counter({7: 2380, 3: 1231, 1: 1}) \n", "\n", "ox.\n", "o.x\n", ".x. Counter({6: 6, 8: 3, 2: 3, 4: 2}) \n", "\n", "oxo\n", "x..\n", ".x. Counter({4: 5, 6: 5, 8: 1, 5: 1}) \n", "\n", "ox.\n", "..x\n", "..o Counter({2: 3, 3: 3, 4: 3, 6: 3, 7: 3}) \n", "\n", "xxo\n", "oo.\n", ".xx Counter({6: 18, 5: 7}) \n", "\n", "x..\n", ".x.\n", "..o Counter({1: 1, 2: 1, 3: 1, 5: 1, 6: 1, 7: 1}) \n", "\n", "xx.\n", ".ox\n", ".o. Counter({2: 8, 8: 1, 3: 1, 6: 1}) \n", "\n", "xo.\n", ".o.\n", "x.x Counter({7: 16, 3: 3, 2: 2, 5: 1}) \n", "\n", "ox.\n", "xxo\n", ".o. Counter({2: 135, 6: 135, 8: 3}) \n", "\n", "xx.\n", "x.o\n", ".o. Counter({8: 3, 2: 3, 4: 3, 6: 3}) \n", "\n", "x.x\n", "...\n", "oo. Counter({8: 12967, 1: 628, 3: 1, 4: 1, 5: 1}) \n", "\n", "xxo\n", "o.o\n", "oxx Counter({4: 12}) \n", "\n", "xxo\n", "xo.\n", "..o Counter({6: 9, 5: 1, 7: 1}) \n", "\n", "xxo\n", "xox\n", ".o. Counter({6: 15, 8: 1}) \n", "\n", "ox.\n", "o.x\n", "... Counter({8: 4, 2: 4, 6: 3, 7: 3, 4: 2}) \n", "\n", "xxo\n", ".oo\n", "xx. Counter({8: 10, 3: 4}) \n", "\n", "xxo\n", "xox\n", ".oo Counter({6: 15}) \n", "\n", "xx.\n", "o.o\n", "xo. Counter({4: 470, 2: 61, 8: 1}) \n", "\n", "xx.\n", ".oo\n", "ox. Counter({2: 64, 3: 2, 8: 1}) \n", "\n", "xxo\n", "..x\n", ".o. Counter({8: 3, 3: 3, 4: 3, 6: 3}) \n", "\n", "xox\n", ".o.\n", "... Counter({7: 1645, 8: 1, 3: 1, 5: 1, 6: 1}) \n", "\n", "xxo\n", "oox\n", "..x Counter({6: 14, 7: 3}) \n", "\n", "xoo\n", ".x.\n", "x.. Counter({8: 1, 3: 1, 5: 1, 7: 1}) \n", "\n", "xx.\n", "oo.\n", "xox Counter({5: 36, 2: 3}) \n", "\n", "xxo\n", "o.x\n", "o.. Counter({4: 271, 8: 1, 7: 1}) \n", "\n", "xoo\n", "...\n", "x.x Counter({3: 1, 4: 1, 5: 1, 7: 1}) \n", "\n", "xx.\n", "o.o\n", ".x. Counter({4: 8, 8: 1, 2: 1, 6: 1}) \n", "\n", "x.o\n", "..x\n", "oxo Counter({4: 4, 3: 3, 1: 1}) \n", "\n", "xx.\n", "x.o\n", "..o Counter({2: 5, 6: 2, 4: 1, 7: 1}) \n", "\n", "xxo\n", "o..\n", "oxx Counter({4: 9, 5: 1}) \n", "\n", "xxo\n", "..x\n", ".oo Counter({6: 4, 3: 1, 4: 1}) \n", "\n", "xxo\n", "oox\n", "xxo Counter() \n", "\n", "xx.\n", ".xo\n", "oo. Counter({2: 733, 8: 730, 3: 1}) \n", "\n", "xx.\n", "oxo\n", "o.. Counter({8: 1336, 7: 1154, 2: 789}) \n", "\n", "o..\n", ".xx\n", "... Counter({1: 1, 2: 1, 3: 1, 6: 1, 7: 1, 8: 1}) \n", "\n", "oxo\n", "x..\n", "... Counter({8: 3, 4: 3, 5: 3, 6: 3, 7: 3}) \n", "\n", "xox\n", "...\n", "xo. Counter({4: 10, 3: 2, 8: 1, 5: 1}) \n", "\n", "ox.\n", "x..\n", "..o Counter({4: 5, 5: 3, 7: 3, 2: 2, 6: 2}) \n", "\n", "xxo\n", "..o\n", "ox. Counter({4: 66, 8: 1, 3: 1}) \n", "\n", ".x.\n", "oo.\n", ".x. Counter({8: 3, 0: 2, 2: 2, 5: 1, 6: 1}) \n", "\n", "xx.\n", "..o\n", "o.x Counter({2: 3, 4: 3, 3: 1, 7: 1}) \n", "\n", "xoo\n", ".xo\n", "x.. Counter({3: 6391, 8: 1963, 7: 1}) \n", "\n", "xx.\n", "..o\n", "..o Counter({2: 9, 3: 5, 6: 3, 7: 2, 4: 1}) \n", "\n", "ox.\n", ".x.\n", "o.. Counter({7: 9629, 3: 1815, 8: 1, 2: 1, 5: 1}) \n", "\n", "xoo\n", "...\n", "x.. Counter({3: 8521, 8: 7775, 5: 3258, 4: 2559, 7: 434}) \n", "\n", "xx.\n", "...\n", "xoo Counter({3: 2, 2: 1, 4: 1, 5: 1}) \n", "\n", "xxo\n", ".o.\n", "xxo Counter({5: 4, 3: 3}) \n", "\n", "xxo\n", "..x\n", "xoo Counter({3: 3, 4: 1}) \n", "\n", "xxo\n", ".x.\n", "o.o Counter({7: 1059, 3: 1, 5: 1}) \n", "\n", "oo.\n", ".xx\n", ".x. Counter({3: 19, 2: 12, 8: 1, 6: 1}) \n", "\n", "xx.\n", "oox\n", "xo. Counter({2: 3, 8: 1}) \n", "\n", "xxo\n", "o..\n", "xxo Counter({5: 6, 4: 3}) \n", "\n", "xoo\n", ".xx\n", "o.. Counter({7: 2918, 8: 1029, 3: 913}) \n", "\n", "xxo\n", "x.o\n", ".o. Counter({6: 7, 8: 6, 4: 2}) \n", "\n", ".x.\n", ".o.\n", "... Counter({6: 7, 5: 2, 8: 2, 0: 1, 2: 1, 3: 1, 7: 1}) \n", "\n", "xo.\n", ".xo\n", "x.. Counter({8: 1, 2: 1, 3: 1, 7: 1}) \n", "\n", "xxo\n", "oxx\n", ".oo Counter({6: 3}) \n", "\n", "xx.\n", "..o\n", "o.. Counter({2: 1259, 8: 331, 7: 229, 4: 226, 3: 1}) \n", "\n", "xo.\n", "...\n", "x.. Counter({4: 2, 2: 1, 3: 1, 5: 1, 7: 1, 8: 1}) \n", "\n", "xo.\n", "oxx\n", ".o. Counter({6: 679, 2: 637, 8: 288}) \n", "\n", "xxo\n", "..x\n", "oxo Counter({4: 9, 3: 1}) \n", "\n", "xxo\n", "x.o\n", "oox Counter({4: 281}) \n", "\n", "xox\n", "...\n", "ox. Counter({8: 3, 4: 2, 5: 2, 3: 1}) \n", "\n", "xx.\n", "xoo\n", ".o. Counter({6: 7, 8: 5, 2: 3}) \n", "\n", "xx.\n", "..o\n", "oox Counter({3: 519, 2: 453, 4: 373}) \n", "\n", "xxo\n", "oxo\n", "xo. Counter({8: 3853}) \n", "\n", "xox\n", "oo.\n", "..x Counter({5: 976, 6: 1, 7: 1}) \n", "\n", "xx.\n", ".ox\n", "xoo Counter({2: 1, 3: 1}) \n", "\n", "xoo\n", ".x.\n", ".x. Counter({8: 1, 3: 1, 5: 1, 6: 1}) \n", "\n", "xx.\n", ".oo\n", "..x Counter({3: 12, 2: 4, 6: 3, 7: 1}) \n", "\n", "xoo\n", "ox.\n", ".x. Counter({8: 684, 5: 19, 6: 9}) \n", "\n", "xxo\n", "...\n", "xo. Counter({3: 3, 4: 2, 8: 1, 5: 1}) \n", "\n", "x.o\n", ".x.\n", "o.. Counter({5: 1938, 7: 1811, 8: 1224, 3: 581, 1: 149}) \n", "\n", "ox.\n", "..x\n", ".o. Counter({8: 3, 3: 3, 4: 3, 2: 2, 6: 2}) \n", "\n", "oo.\n", ".xx\n", "... Counter({2: 1454, 3: 1024, 6: 2, 8: 1, 7: 1}) \n", "\n", "x.x\n", "...\n", "o.. Counter({1: 1, 3: 1, 4: 1, 5: 1, 7: 1, 8: 1}) \n", "\n", ".x.\n", "o..\n", "... Counter({4: 13, 6: 9, 5: 7, 2: 6, 7: 4, 0: 2, 8: 2}) \n", "\n", "xx.\n", ".o.\n", "ox. Counter({2: 20, 8: 2, 3: 1, 5: 1}) \n", "\n", "xo.\n", ".x.\n", "..o Counter({3: 7742, 6: 3122, 5: 703, 7: 13, 2: 1}) \n", "\n", "o..\n", ".ox\n", ".x. Counter({8: 5, 6: 3, 2: 2, 1: 1, 3: 1}) \n", "\n", "oo.\n", "..x\n", ".x. Counter({4: 5, 2: 3, 6: 3, 8: 1, 3: 1}) \n", "\n", "xo.\n", ".xx\n", "oxo Counter({3: 3, 2: 1}) \n", "\n", "xo.\n", "ox.\n", "... Counter({8: 5654, 2: 4331, 6: 765, 7: 258, 5: 236}) \n", "\n", "x.o\n", ".xx\n", "oxo Counter({1: 1, 3: 1}) \n", "\n", "xx.\n", "oo.\n", "x.. Counter({5: 48, 2: 10, 7: 2, 8: 1}) \n", "\n", "xo.\n", "..x\n", "x.o Counter({2: 3, 3: 3, 4: 3, 7: 3}) \n", "\n", "xxo\n", ".ox\n", "xo. Counter({3: 3, 8: 1}) \n", "\n", "xxo\n", "o..\n", "x.o Counter({5: 3, 4: 1, 7: 1}) \n", "\n", "xxo\n", "oox\n", "x.. Counter({8: 3, 7: 3}) \n", "\n", "x.o\n", ".x.\n", "..o Counter({5: 4986, 3: 2, 1: 1, 6: 1, 7: 1}) \n", "\n", "xx.\n", ".xo\n", "xoo Counter({2: 24, 3: 1}) \n", "\n", "xoo\n", "...\n", "..x Counter({4: 4849, 6: 3456, 3: 1628, 7: 1459, 5: 1}) \n", "\n", "xxo\n", ".xx\n", ".oo Counter({6: 25, 3: 3}) \n", "\n", "xox\n", "...\n", "oxo Counter({3: 3, 4: 3, 5: 3}) \n", "\n", "x..\n", "..x\n", "..o Counter({4: 5, 6: 5, 7: 5, 2: 4, 1: 3, 3: 3}) \n", "\n", "xoo\n", "oxx\n", ".xo Counter({6: 3}) \n", "\n", "xxo\n", ".ox\n", "xoo Counter({3: 599}) \n", "\n", "xx.\n", "oo.\n", "..x Counter({5: 14, 2: 10, 7: 3, 6: 2}) \n", "\n", "x.x\n", ".o.\n", ".o. Counter({1: 8237, 8: 1, 3: 1, 5: 1, 6: 1}) \n", "\n", "xoo\n", ".x.\n", "xo. Counter({5: 6175, 8: 4209, 3: 2172}) \n", "\n", "xxo\n", ".oo\n", "x.x Counter({3: 21, 7: 1}) \n", "\n", "xx.\n", "o.o\n", "x.o Counter({2: 16, 4: 1, 7: 1}) \n", "\n", "ox.\n", ".ox\n", "ox. Counter({8: 1, 2: 1, 3: 1}) \n", "\n", "xx.\n", ".o.\n", "x.o Counter({2: 1, 3: 1, 5: 1, 7: 1}) \n", "\n", "oxo\n", "x.x\n", ".o. Counter({4: 4, 8: 3, 6: 3}) \n", "\n", "xox\n", "...\n", "... Counter({4: 4, 5: 4, 7: 2, 3: 1, 6: 1, 8: 1}) \n", "\n", "xxo\n", "x..\n", "o.. Counter({8: 5, 5: 5, 4: 3, 7: 3}) \n", "\n", "ox.\n", "..x\n", "ox. Counter({2: 4, 3: 3, 4: 3, 8: 2}) \n", "\n", "xx.\n", "oox\n", "o.. Counter({2: 231, 8: 1, 7: 1}) \n", "\n", "xx.\n", "ox.\n", "o.o Counter({7: 1846, 2: 1163, 5: 1}) \n", "\n", "x.x\n", ".o.\n", "... Counter({1: 31, 3: 1, 5: 1, 6: 1, 7: 1, 8: 1}) \n", "\n", "oxo\n", "xx.\n", "... Counter({8: 1, 5: 1, 6: 1, 7: 1}) \n", "\n", "xx.\n", "xoo\n", "... Counter({2: 3, 8: 1, 6: 1, 7: 1}) \n", "\n", "xxo\n", "oo.\n", ".x. Counter({8: 1, 5: 1, 6: 1}) \n", "\n", "xx.\n", "..o\n", "oxo Counter({2: 100, 4: 66, 3: 1}) \n", "\n", "xxo\n", ".oo\n", "..x Counter({3: 1, 6: 1, 7: 1}) \n", "\n", "xxo\n", "x..\n", ".oo Counter({6: 8, 4: 2, 5: 2}) \n", "\n", "ox.\n", "..x\n", "o.. Counter({3: 4, 7: 4, 8: 3, 2: 3, 4: 3}) \n", "\n", "x.o\n", "..x\n", "... Counter({4: 6, 1: 1, 3: 1, 6: 1, 7: 1, 8: 1}) \n", "\n", "xx.\n", "..o\n", "x.o Counter({2: 9, 3: 4, 4: 3, 7: 2}) \n", "\n", "xo.\n", ".ox\n", "x.o Counter({3: 355, 7: 6, 2: 1}) \n", "\n", "xo.\n", "..o\n", ".x. Counter({6: 242, 8: 118, 4: 38, 2: 12, 3: 3}) \n", "\n", "xxo\n", "..o\n", "xo. Counter({8: 310, 3: 47, 4: 1}) \n", "\n" ] } ], "source": [ "for b in p_floor1m:\n", " if b != 'human?':\n", " print(show_board(b), p_floor1m[b], '\\n')" ] }, { "cell_type": "code", "execution_count": 325, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "('x', 'o', 'o', 'o', 'x', 'x', 'x', 'x', 'o')" ] }, "execution_count": 325, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# p1 = new_menace()\n", "# p2 = new_menace()\n", "# g = new_game(p1, p2)\n", "g = new_game(p_floor1, p_floor0)\n", "play_game(g)\n", "g['board']" ] }, { "cell_type": "code", "execution_count": 326, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "[{'board': ('.', '.', '.', '.', '.', '.', '.', '.', '.'),\n", " 'move': 4,\n", " 'player1?': True},\n", " {'board': ('.', '.', '.', '.', 'x', '.', '.', '.', '.'),\n", " 'move': 8,\n", " 'player1?': False},\n", " {'board': ('.', '.', '.', '.', 'x', '.', '.', '.', 'o'),\n", " 'move': 7,\n", " 'player1?': True},\n", " {'board': ('.', '.', '.', '.', 'x', '.', '.', 'x', 'o'),\n", " 'move': 1,\n", " 'player1?': False},\n", " {'board': ('.', 'o', '.', '.', 'x', '.', '.', 'x', 'o'),\n", " 'move': 5,\n", " 'player1?': True},\n", " {'board': ('.', 'o', '.', '.', 'x', 'x', '.', 'x', 'o'),\n", " 'move': 3,\n", " 'player1?': False},\n", " {'board': ('.', 'o', '.', 'o', 'x', 'x', '.', 'x', 'o'),\n", " 'move': 6,\n", " 'player1?': True},\n", " {'board': ('.', 'o', '.', 'o', 'x', 'x', 'x', 'x', 'o'),\n", " 'move': 2,\n", " 'player1?': False},\n", " {'board': ('.', 'o', 'o', 'o', 'x', 'x', 'x', 'x', 'o'),\n", " 'move': 0,\n", " 'player1?': True}]" ] }, "execution_count": 326, "metadata": {}, "output_type": "execute_result" } ], "source": [ "g['history']" ] }, { "cell_type": "code", "execution_count": 310, "metadata": { "collapsed": true }, "outputs": [], "source": [ "update_players(g)" ] }, { "cell_type": "code", "execution_count": 311, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "... ...\n", "... ...\n", "... ... 7 Counter({0: 3, 1: 3, 2: 3, 3: 3, 4: 3, 5: 3, 6: 3, 8: 3, 7: 2}) \n", "\n", "... .x.\n", "... ...\n", ".x. ... 5 Counter({3: 4, 0: 3, 2: 3, 4: 3, 5: 3, 6: 3, 7: 3, 8: 3}) \n", "\n", "... .x.\n", "..o o..\n", ".x. ... 3 Counter({0: 3, 2: 3, 4: 3, 6: 3, 7: 3, 8: 3, 5: 2}) \n", "\n", "... .x.\n", "x.o x.o\n", ".x. ... 2 Counter({8: 4, 0: 3, 2: 3, 4: 3, 6: 3, 7: 3}) \n", "\n", "..o oo.\n", "x.o ..x\n", ".x. .x. 1 Counter({8: 3, 2: 3, 4: 3, 6: 3, 3: 2}) \n", "\n", ".xo ox.\n", "x.o o.x\n", ".x. .x. 6 Counter({8: 4, 2: 3, 4: 3, 6: 3}) \n", "\n", ".xo ox.\n", "x.o x.x\n", "ox. .oo 0 Counter({4: 3, 6: 3, 2: 2}) \n", "\n", "xxo xxo\n", "x.o x.x\n", "ox. oo. 8 Counter({8: 4, 4: 3}) \n", "\n" ] } ], "source": [ "for m in g['history']:\n", " b, r, f = canonical(m['board'])\n", " if m['player1?']:\n", " print(show_boards([m['board'], b]), m['move'], p1[b], '\\n')\n", " else:\n", " print(show_boards([m['board'], b]), m['move'], p2[b], '\\n')" ] }, { "cell_type": "code", "execution_count": 323, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "... ... ... ...\n", "... ... ... ...\n", "... ... .x. .x. 7 7\n", "... ...\n", "... ...\n", ".+. .+. 0 False \n", "\n", "\n", "... .x. ... .x.\n", "... ... ..o o..\n", ".x. ... .x. ... 5 3\n", "... ...\n", "..+ +..\n", "... ... 2 False \n", "\n", "\n", "... .x. ... .x.\n", "..o o.. x.o o.x\n", ".x. ... .x. ... 3 5\n", "... ...\n", "+.. ..+\n", "... ... 2 False \n", "\n", "\n", "... .x. ..o .x.\n", "x.o x.o x.o x.o\n", ".x. ... .x. ..o 2 8\n", "..+ ...\n", "... ...\n", "... ..+ 2 True \n", "\n", "\n", "..o oo. .xo oo.\n", "x.o ..x x.o x.x\n", ".x. .x. .x. .x. 1 3\n", ".+. ...\n", "... +..\n", "... ... 3 False \n", "\n", "\n", ".xo ox. .xo ox.\n", "x.o o.x x.o o.x\n", ".x. .x. ox. .xo 6 8\n", "... ...\n", "... ...\n", "+.. ..+ 0 True \n", "\n", "\n", ".xo ox. xxo oxx\n", "x.o x.x x.o x.x\n", "ox. .oo ox. .oo 0 2\n", "+.. ..+\n", "... ...\n", "... ... 1 False \n", "\n", "\n" ] } ], "source": [ "for i in range(len(g['history']) - 1):\n", " m = g['history'][i]\n", " n = g['history'][i+1]\n", " board, r, f = canonical(m['board'])\n", " move_board = apply_move(empty_board(), m['move'], '+')\n", " cmove_board = transform(move_board, r, f)\n", " cmove = cmove_board.index('+')\n", "\n", " print(show_boards([m['board'], board, n['board'], transform(n['board'], r, f)]), m['move'], cmove)\n", " print(show_boards([move_board, cmove_board]), r, f, '\\n\\n')" ] }, { "cell_type": "code", "execution_count": 327, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "0 Counter({4: 44929, 6: 301, 3: 71, 5: 55, 8: 34, 1: 25, 7: 16, 0: 6, 2: 5})\n", "1 Counter({0: 1, 1: 1, 2: 1, 3: 1, 5: 1, 6: 1, 7: 1, 8: 1})\n", "2 Counter({3: 10669, 1: 6873, 2: 2541, 5: 847, 6: 582, 8: 413, 7: 123})\n", "3 Counter({2: 1, 3: 1, 5: 1, 6: 1, 7: 1, 8: 1})\n", "4 Counter({6: 1266, 3: 1114, 8: 17, 2: 1, 5: 1})\n", "5 Counter({8: 1, 2: 1, 6: 1, 7: 1})\n", "6 Counter({2: 68, 6: 17, 8: 3})\n", "7 Counter({8: 3, 6: 1})\n", "8 Counter({6: 3})\n" ] } ], "source": [ "for i, m in enumerate(g['history']):\n", " print(i, p_floor1[canonical(m['board'])[0]])" ] }, { "cell_type": "code", "execution_count": 330, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ ".o. ox.\n", "oxx xxo\n", ".xo .o.\n" ] } ], "source": [ "tb = g['history'][6]['board']\n", "print(show_boards([tb, canonical(tb)[0]]))" ] }, { "cell_type": "code", "execution_count": 337, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Counter({0: 3, 2: 15, 6: 82})" ] }, "execution_count": 337, "metadata": {}, "output_type": "execute_result" } ], "source": [ "g = new_game(p_floor1, p_floor0)\n", "g['board'] = tb\n", "collections.Counter(menace_move(g) for _ in range(100))" ] }, { "cell_type": "code", "execution_count": 338, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Counter({2: 79, 6: 18, 8: 3})" ] }, "execution_count": 338, "metadata": {}, "output_type": "execute_result" } ], "source": [ "g = new_game(p_floor1, p_floor0)\n", "g['board'] = canonical(tb)[0]\n", "collections.Counter(menace_move(g) for _ in range(100))" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.5.2+" } }, "nbformat": 4, "nbformat_minor": 2 }