Skip to content

Instantly share code, notes, and snippets.

@jmandel
Last active August 29, 2015 14:23
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save jmandel/3533cbd380ac1e896aa2 to your computer and use it in GitHub Desktop.
Save jmandel/3533cbd380ac1e896aa2 to your computer and use it in GitHub Desktop.
Card Game
Display the source blob
Display the rendered blob
Raw
{
"metadata": {
"name": "",
"signature": "sha256:56003f56e4955c9494ab3102629d022b54098bb5e682c4525e43608dd4129868"
},
"nbformat": 3,
"nbformat_minor": 0,
"worksheets": [
{
"cells": [
{
"cell_type": "code",
"collapsed": false,
"input": [
"%matplotlib inline\n",
"import pylab\n",
"import numpy as np\n",
"import json\n",
"\n",
"is_even = lambda x: x%2 == 0\n",
"is_odd = lambda x: not is_even(x)\n",
"\n",
"def keep_even_player_even(even_choices, odd_choices):\n",
" if filter(is_even, odd_choices):\n",
" return (max(even_choices), filter(is_even, odd_choices)[0])\n",
" return (max(even_choices), min(odd_choices)) \n",
"\n",
"def keep_odd_player_odd(even_choices, odd_choices):\n",
" if filter(is_odd, even_choices):\n",
" return (filter(is_odd, even_choices)[0], min(odd_choices))\n",
" return (max(even_choices), min(odd_choices))\n",
"\n",
"def print_state(s):\n",
" s = json.loads(s)\n",
" even, odd = s[0], s[1]\n",
" print \"Player 1: \", even\n",
" print \"Player 2: \", odd\n",
" print \"---\"\n",
"\n",
"class Game(object):\n",
" def __init__(self, n, strategy):\n",
" self.choose = strategy\n",
" self.even_player = []\n",
" self.odd_player = []\n",
" self.n = n\n",
" for i in range(1,n+1):\n",
" if is_even(i): self.even_player.append([i])\n",
" else: self.odd_player.append([i])\n",
" if is_even(n): self.odd_player.reverse() \n",
" self.seen_states = [self.dump_state()]\n",
"\n",
" def dump_state(self):\n",
" return json.dumps([self.even_player, self.odd_player])\n",
" \n",
" def move(self):\n",
" # print_state(self.dump_state())\n",
" even_choices, self.even_player = [self.even_player[0], self.even_player[1:]]\n",
" odd_choices, self.odd_player = [self.odd_player[0], self.odd_player[1:]]\n",
" even_choice, odd_choice = self.choose(even_choices, odd_choices)\n",
" \n",
" even_remaining = list(set(even_choices) - set([even_choice]))\n",
" even_remaining = [even_remaining] if even_remaining else []\n",
" even_remaining.sort()\n",
" self.even_player = even_remaining + self.even_player\n",
" \n",
" odd_remaining = list(set(odd_choices) - set([odd_choice]))\n",
" odd_remaining = [odd_remaining] if odd_remaining else []\n",
" odd_remaining.sort()\n",
" self.odd_player = odd_remaining + self.odd_player\n",
" \n",
" winner = self.even_player if even_choice > odd_choice else self.odd_player\n",
" winner.append([even_choice, odd_choice])\n",
" \n",
" current_state = self.dump_state()\n",
" found_cycle = current_state in self.seen_states\n",
" self.seen_states.append(current_state)\n",
" if found_cycle:\n",
" return True\n",
" return False\n",
" \n",
" def converge(self, limit = None):\n",
" for i in range(limit or self.n * 2000):\n",
" if self.move(): return\n",
" raise \"Failed to converge\"\n"
],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 1
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"## Plot cycles 'til convergence\n",
"def plot_convergence(sequence):\n",
" times_to_converge = []\n",
" for i in sequence:\n",
" game = Game(i, keep_odd_player_odd if i%2 else keep_even_player_even)\n",
" game.converge()\n",
" times_to_converge.append((i, len(game.seen_states)))\n",
" pylab.bar(\n",
" [x[0] for x in times_to_converge],\n",
" [x[1] * 1.0 for x in times_to_converge])"
],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 2
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"## Convergence for all decks\n",
"plot_convergence(range(3, 50))"
],
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "display_data",
"png": "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\n/d+HOgAAAABJRU5ErkJggg==\n",
"text": [
"<matplotlib.figure.Figure at 0x7fe24a411650>"
]
}
],
"prompt_number": 3
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"## Convergence for odd-length decks\n",
"plot_convergence(range(3, 50, 2))"
],
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "display_data",
"png": "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\nSUVORK5CYII=\n",
"text": [
"<matplotlib.figure.Figure at 0x7fe22c782e10>"
]
}
],
"prompt_number": 4
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"## Convergence for even-length decks that are =0mod%4 (4, 8, 12...)\n",
"plot_convergence(range(4, 50, 4))"
],
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "display_data",
"png": "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\n",
"text": [
"<matplotlib.figure.Figure at 0x7fe22c78b6d0>"
]
}
],
"prompt_number": 5
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"## Convergence for even-length decks that are =2mod4 (6, 10, 14 ...)\n",
"plot_convergence(range(6, 50, 4))"
],
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "display_data",
"png": "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\n",
"text": [
"<matplotlib.figure.Figure at 0x7fe22c91fb50>"
]
}
],
"prompt_number": 6
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"N = 10\n",
"game = Game(N, keep_even_player_even)\n",
"game.converge()\n",
"print \"N=%s coverges in %s\"%(N, len(game.seen_states))\n",
"for s in game.seen_states:\n",
" print_state(s)\n"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
"N=10 coverges in 66\n",
"Player 1: [[2], [4], [6], [8], [10]]\n",
"Player 2: [[9], [7], [5], [3], [1]]\n",
"---\n",
"Player 1: [[4], [6], [8], [10]]\n",
"Player 2: [[7], [5], [3], [1], [2, 9]]\n",
"---\n",
"Player 1: [[6], [8], [10]]\n",
"Player 2: [[5], [3], [1], [2, 9], [4, 7]]\n",
"---\n",
"Player 1: [[8], [10], [6, 5]]\n",
"Player 2: [[3], [1], [2, 9], [4, 7]]\n",
"---\n",
"Player 1: [[10], [6, 5], [8, 3]]\n",
"Player 2: [[1], [2, 9], [4, 7]]\n",
"---\n",
"Player 1: [[6, 5], [8, 3], [10, 1]]\n",
"Player 2: [[2, 9], [4, 7]]\n",
"---\n",
"Player 1: [[5], [8, 3], [10, 1], [6, 2]]\n",
"Player 2: [[9], [4, 7]]\n",
"---\n",
"Player 1: [[8, 3], [10, 1], [6, 2]]\n",
"Player 2: [[4, 7], [5, 9]]\n",
"---\n",
"Player 1: [[3], [10, 1], [6, 2], [8, 4]]\n",
"Player 2: [[7], [5, 9]]\n",
"---\n",
"Player 1: [[10, 1], [6, 2], [8, 4]]\n",
"Player 2: [[5, 9], [3, 7]]\n",
"---\n",
"Player 1: [[1], [6, 2], [8, 4], [10, 5]]\n",
"Player 2: [[9], [3, 7]]\n",
"---\n",
"Player 1: [[6, 2], [8, 4], [10, 5]]\n",
"Player 2: [[3, 7], [1, 9]]\n",
"---\n",
"Player 1: [[2], [8, 4], [10, 5], [6, 3]]\n",
"Player 2: [[7], [1, 9]]\n",
"---\n",
"Player 1: [[8, 4], [10, 5], [6, 3]]\n",
"Player 2: [[1, 9], [2, 7]]\n",
"---\n",
"Player 1: [[4], [10, 5], [6, 3], [8, 1]]\n",
"Player 2: [[9], [2, 7]]\n",
"---\n",
"Player 1: [[10, 5], [6, 3], [8, 1]]\n",
"Player 2: [[2, 7], [4, 9]]\n",
"---\n",
"Player 1: [[5], [6, 3], [8, 1], [10, 2]]\n",
"Player 2: [[7], [4, 9]]\n",
"---\n",
"Player 1: [[6, 3], [8, 1], [10, 2]]\n",
"Player 2: [[4, 9], [5, 7]]\n",
"---\n",
"Player 1: [[3], [8, 1], [10, 2], [6, 4]]\n",
"Player 2: [[9], [5, 7]]\n",
"---\n",
"Player 1: [[8, 1], [10, 2], [6, 4]]\n",
"Player 2: [[5, 7], [3, 9]]\n",
"---\n",
"Player 1: [[1], [10, 2], [6, 4], [8, 5]]\n",
"Player 2: [[7], [3, 9]]\n",
"---\n",
"Player 1: [[10, 2], [6, 4], [8, 5]]\n",
"Player 2: [[3, 9], [1, 7]]\n",
"---\n",
"Player 1: [[2], [6, 4], [8, 5], [10, 3]]\n",
"Player 2: [[9], [1, 7]]\n",
"---\n",
"Player 1: [[6, 4], [8, 5], [10, 3]]\n",
"Player 2: [[1, 7], [2, 9]]\n",
"---\n",
"Player 1: [[4], [8, 5], [10, 3], [6, 1]]\n",
"Player 2: [[7], [2, 9]]\n",
"---\n",
"Player 1: [[8, 5], [10, 3], [6, 1]]\n",
"Player 2: [[2, 9], [4, 7]]\n",
"---\n",
"Player 1: [[5], [10, 3], [6, 1], [8, 2]]\n",
"Player 2: [[9], [4, 7]]\n",
"---\n",
"Player 1: [[10, 3], [6, 1], [8, 2]]\n",
"Player 2: [[4, 7], [5, 9]]\n",
"---\n",
"Player 1: [[3], [6, 1], [8, 2], [10, 4]]\n",
"Player 2: [[7], [5, 9]]\n",
"---\n",
"Player 1: [[6, 1], [8, 2], [10, 4]]\n",
"Player 2: [[5, 9], [3, 7]]\n",
"---\n",
"Player 1: [[1], [8, 2], [10, 4], [6, 5]]\n",
"Player 2: [[9], [3, 7]]\n",
"---\n",
"Player 1: [[8, 2], [10, 4], [6, 5]]\n",
"Player 2: [[3, 7], [1, 9]]\n",
"---\n",
"Player 1: [[2], [10, 4], [6, 5], [8, 3]]\n",
"Player 2: [[7], [1, 9]]\n",
"---\n",
"Player 1: [[10, 4], [6, 5], [8, 3]]\n",
"Player 2: [[1, 9], [2, 7]]\n",
"---\n",
"Player 1: [[4], [6, 5], [8, 3], [10, 1]]\n",
"Player 2: [[9], [2, 7]]\n",
"---\n",
"Player 1: [[6, 5], [8, 3], [10, 1]]\n",
"Player 2: [[2, 7], [4, 9]]\n",
"---\n",
"Player 1: [[5], [8, 3], [10, 1], [6, 2]]\n",
"Player 2: [[7], [4, 9]]\n",
"---\n",
"Player 1: [[8, 3], [10, 1], [6, 2]]\n",
"Player 2: [[4, 9], [5, 7]]\n",
"---\n",
"Player 1: [[3], [10, 1], [6, 2], [8, 4]]\n",
"Player 2: [[9], [5, 7]]\n",
"---\n",
"Player 1: [[10, 1], [6, 2], [8, 4]]\n",
"Player 2: [[5, 7], [3, 9]]\n",
"---\n",
"Player 1: [[1], [6, 2], [8, 4], [10, 5]]\n",
"Player 2: [[7], [3, 9]]\n",
"---\n",
"Player 1: [[6, 2], [8, 4], [10, 5]]\n",
"Player 2: [[3, 9], [1, 7]]\n",
"---\n",
"Player 1: [[2], [8, 4], [10, 5], [6, 3]]\n",
"Player 2: [[9], [1, 7]]\n",
"---\n",
"Player 1: [[8, 4], [10, 5], [6, 3]]\n",
"Player 2: [[1, 7], [2, 9]]\n",
"---\n",
"Player 1: [[4], [10, 5], [6, 3], [8, 1]]\n",
"Player 2: [[7], [2, 9]]\n",
"---\n",
"Player 1: [[10, 5], [6, 3], [8, 1]]\n",
"Player 2: [[2, 9], [4, 7]]\n",
"---\n",
"Player 1: [[5], [6, 3], [8, 1], [10, 2]]\n",
"Player 2: [[9], [4, 7]]\n",
"---\n",
"Player 1: [[6, 3], [8, 1], [10, 2]]\n",
"Player 2: [[4, 7], [5, 9]]\n",
"---\n",
"Player 1: [[3], [8, 1], [10, 2], [6, 4]]\n",
"Player 2: [[7], [5, 9]]\n",
"---\n",
"Player 1: [[8, 1], [10, 2], [6, 4]]\n",
"Player 2: [[5, 9], [3, 7]]\n",
"---\n",
"Player 1: [[1], [10, 2], [6, 4], [8, 5]]\n",
"Player 2: [[9], [3, 7]]\n",
"---\n",
"Player 1: [[10, 2], [6, 4], [8, 5]]\n",
"Player 2: [[3, 7], [1, 9]]\n",
"---\n",
"Player 1: [[2], [6, 4], [8, 5], [10, 3]]\n",
"Player 2: [[7], [1, 9]]\n",
"---\n",
"Player 1: [[6, 4], [8, 5], [10, 3]]\n",
"Player 2: [[1, 9], [2, 7]]\n",
"---\n",
"Player 1: [[4], [8, 5], [10, 3], [6, 1]]\n",
"Player 2: [[9], [2, 7]]\n",
"---\n",
"Player 1: [[8, 5], [10, 3], [6, 1]]\n",
"Player 2: [[2, 7], [4, 9]]\n",
"---\n",
"Player 1: [[5], [10, 3], [6, 1], [8, 2]]\n",
"Player 2: [[7], [4, 9]]\n",
"---\n",
"Player 1: [[10, 3], [6, 1], [8, 2]]\n",
"Player 2: [[4, 9], [5, 7]]\n",
"---\n",
"Player 1: [[3], [6, 1], [8, 2], [10, 4]]\n",
"Player 2: [[9], [5, 7]]\n",
"---\n",
"Player 1: [[6, 1], [8, 2], [10, 4]]\n",
"Player 2: [[5, 7], [3, 9]]\n",
"---\n",
"Player 1: [[1], [8, 2], [10, 4], [6, 5]]\n",
"Player 2: [[7], [3, 9]]\n",
"---\n",
"Player 1: [[8, 2], [10, 4], [6, 5]]\n",
"Player 2: [[3, 9], [1, 7]]\n",
"---\n",
"Player 1: [[2], [10, 4], [6, 5], [8, 3]]\n",
"Player 2: [[9], [1, 7]]\n",
"---\n",
"Player 1: [[10, 4], [6, 5], [8, 3]]\n",
"Player 2: [[1, 7], [2, 9]]\n",
"---\n",
"Player 1: [[4], [6, 5], [8, 3], [10, 1]]\n",
"Player 2: [[7], [2, 9]]\n",
"---\n",
"Player 1: [[6, 5], [8, 3], [10, 1]]\n",
"Player 2: [[2, 9], [4, 7]]\n",
"---\n"
]
}
],
"prompt_number": 7
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"N = 51\n",
"game = Game(N, keep_odd_player_odd)\n",
"game.converge()\n",
"print \"N=%s coverges in %s\"%(N, len(game.seen_states))\n",
"for s in game.seen_states:\n",
" print_state(s)\n"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
"N=51 coverges in 76\n",
"Player 1: [[2], [4], [6], [8], [10], [12], [14], [16], [18], [20], [22], [24], [26], [28], [30], [32], [34], [36], [38], [40], [42], [44], [46], [48], [50]]\n",
"Player 2: [[1], [3], [5], [7], [9], [11], [13], [15], [17], [19], [21], [23], [25], [27], [29], [31], [33], [35], [37], [39], [41], [43], [45], [47], [49], [51]]\n",
"---\n",
"Player 1: [[4], [6], [8], [10], [12], [14], [16], [18], [20], [22], [24], [26], [28], [30], [32], [34], [36], [38], [40], [42], [44], [46], [48], [50], [2, 1]]\n",
"Player 2: [[3], [5], [7], [9], [11], [13], [15], [17], [19], [21], [23], [25], [27], [29], [31], [33], [35], [37], [39], [41], [43], [45], [47], [49], [51]]\n",
"---\n",
"Player 1: [[6], [8], [10], [12], [14], [16], [18], [20], [22], [24], [26], [28], [30], [32], [34], [36], [38], [40], [42], [44], [46], [48], [50], [2, 1], [4, 3]]\n",
"Player 2: [[5], [7], [9], [11], [13], [15], [17], [19], [21], [23], [25], [27], [29], [31], [33], [35], [37], [39], [41], [43], [45], [47], [49], [51]]\n",
"---\n",
"Player 1: [[8], [10], [12], [14], [16], [18], [20], [22], [24], [26], [28], [30], [32], [34], [36], [38], [40], [42], [44], [46], [48], [50], [2, 1], [4, 3], [6, 5]]\n",
"Player 2: [[7], [9], [11], [13], [15], [17], [19], [21], [23], [25], [27], [29], [31], [33], [35], [37], [39], [41], [43], [45], [47], [49], [51]]\n",
"---\n",
"Player 1: [[10], [12], [14], [16], [18], [20], [22], [24], [26], [28], [30], [32], [34], [36], [38], [40], [42], [44], [46], [48], [50], [2, 1], [4, 3], [6, 5], [8, 7]]\n",
"Player 2: [[9], [11], [13], [15], [17], [19], [21], [23], [25], [27], [29], [31], [33], [35], [37], [39], [41], [43], [45], [47], [49], [51]]\n",
"---\n",
"Player 1: [[12], [14], [16], [18], [20], [22], [24], [26], [28], [30], [32], [34], [36], [38], [40], [42], [44], [46], [48], [50], [2, 1], [4, 3], [6, 5], [8, 7], [10, 9]]\n",
"Player 2: [[11], [13], [15], [17], [19], [21], [23], [25], [27], [29], [31], [33], [35], [37], [39], [41], [43], [45], [47], [49], [51]]\n",
"---\n",
"Player 1: [[14], [16], [18], [20], [22], [24], [26], [28], [30], [32], [34], [36], [38], [40], [42], [44], [46], [48], [50], [2, 1], [4, 3], [6, 5], [8, 7], [10, 9], [12, 11]]\n",
"Player 2: [[13], [15], [17], [19], [21], [23], [25], [27], [29], [31], [33], [35], [37], [39], [41], [43], [45], [47], [49], [51]]\n",
"---\n",
"Player 1: [[16], [18], [20], [22], [24], [26], [28], [30], [32], [34], [36], [38], [40], [42], [44], [46], [48], [50], [2, 1], [4, 3], [6, 5], [8, 7], [10, 9], [12, 11], [14, 13]]\n",
"Player 2: [[15], [17], [19], [21], [23], [25], [27], [29], [31], [33], [35], [37], [39], [41], [43], [45], [47], [49], [51]]\n",
"---\n",
"Player 1: [[18], [20], [22], [24], [26], [28], [30], [32], [34], [36], [38], [40], [42], [44], [46], [48], [50], [2, 1], [4, 3], [6, 5], [8, 7], [10, 9], [12, 11], [14, 13], [16, 15]]\n",
"Player 2: [[17], [19], [21], [23], [25], [27], [29], [31], [33], [35], [37], [39], [41], [43], [45], [47], [49], [51]]\n",
"---\n",
"Player 1: [[20], [22], [24], [26], [28], [30], [32], [34], [36], [38], [40], [42], [44], [46], [48], [50], [2, 1], [4, 3], [6, 5], [8, 7], [10, 9], [12, 11], [14, 13], [16, 15], [18, 17]]\n",
"Player 2: [[19], [21], [23], [25], [27], [29], [31], [33], [35], [37], [39], [41], [43], [45], [47], [49], [51]]\n",
"---\n",
"Player 1: [[22], [24], [26], [28], [30], [32], [34], [36], [38], [40], [42], [44], [46], [48], [50], [2, 1], [4, 3], [6, 5], [8, 7], [10, 9], [12, 11], [14, 13], [16, 15], [18, 17], [20, 19]]\n",
"Player 2: [[21], [23], [25], [27], [29], [31], [33], [35], [37], [39], [41], [43], [45], [47], [49], [51]]\n",
"---\n",
"Player 1: [[24], [26], [28], [30], [32], [34], [36], [38], [40], [42], [44], [46], [48], [50], [2, 1], [4, 3], [6, 5], [8, 7], [10, 9], [12, 11], [14, 13], [16, 15], [18, 17], [20, 19], [22, 21]]\n",
"Player 2: [[23], [25], [27], [29], [31], [33], [35], [37], [39], [41], [43], [45], [47], [49], [51]]\n",
"---\n",
"Player 1: [[26], [28], [30], [32], [34], [36], [38], [40], [42], [44], [46], [48], [50], [2, 1], [4, 3], [6, 5], [8, 7], [10, 9], [12, 11], [14, 13], [16, 15], [18, 17], [20, 19], [22, 21], [24, 23]]\n",
"Player 2: [[25], [27], [29], [31], [33], [35], [37], [39], [41], [43], [45], [47], [49], [51]]\n",
"---\n",
"Player 1: [[28], [30], [32], [34], [36], [38], [40], [42], [44], [46], [48], [50], [2, 1], [4, 3], [6, 5], [8, 7], [10, 9], [12, 11], [14, 13], [16, 15], [18, 17], [20, 19], [22, 21], [24, 23], [26, 25]]\n",
"Player 2: [[27], [29], [31], [33], [35], [37], [39], [41], [43], [45], [47], [49], [51]]\n",
"---\n",
"Player 1: [[30], [32], [34], [36], [38], [40], [42], [44], [46], [48], [50], [2, 1], [4, 3], [6, 5], [8, 7], [10, 9], [12, 11], [14, 13], [16, 15], [18, 17], [20, 19], [22, 21], [24, 23], [26, 25], [28, 27]]\n",
"Player 2: [[29], [31], [33], [35], [37], [39], [41], [43], [45], [47], [49], [51]]\n",
"---\n",
"Player 1: [[32], [34], [36], [38], [40], [42], [44], [46], [48], [50], [2, 1], [4, 3], [6, 5], [8, 7], [10, 9], [12, 11], [14, 13], [16, 15], [18, 17], [20, 19], [22, 21], [24, 23], [26, 25], [28, 27], [30, 29]]\n",
"Player 2: [[31], [33], [35], [37], [39], [41], [43], [45], [47], [49], [51]]\n",
"---\n",
"Player 1: [[34], [36], [38], [40], [42], [44], [46], [48], [50], [2, 1], [4, 3], [6, 5], [8, 7], [10, 9], [12, 11], [14, 13], [16, 15], [18, 17], [20, 19], [22, 21], [24, 23], [26, 25], [28, 27], [30, 29], [32, 31]]\n",
"Player 2: [[33], [35], [37], [39], [41], [43], [45], [47], [49], [51]]\n",
"---\n",
"Player 1: [[36], [38], [40], [42], [44], [46], [48], [50], [2, 1], [4, 3], [6, 5], [8, 7], [10, 9], [12, 11], [14, 13], [16, 15], [18, 17], [20, 19], [22, 21], [24, 23], [26, 25], [28, 27], [30, 29], [32, 31], [34, 33]]\n",
"Player 2: [[35], [37], [39], [41], [43], [45], [47], [49], [51]]\n",
"---\n",
"Player 1: [[38], [40], [42], [44], [46], [48], [50], [2, 1], [4, 3], [6, 5], [8, 7], [10, 9], [12, 11], [14, 13], [16, 15], [18, 17], [20, 19], [22, 21], [24, 23], [26, 25], [28, 27], [30, 29], [32, 31], [34, 33], [36, 35]]\n",
"Player 2: [[37], [39], [41], [43], [45], [47], [49], [51]]\n",
"---\n",
"Player 1: [[40], [42], [44], [46], [48], [50], [2, 1], [4, 3], [6, 5], [8, 7], [10, 9], [12, 11], [14, 13], [16, 15], [18, 17], [20, 19], [22, 21], [24, 23], [26, 25], [28, 27], [30, 29], [32, 31], [34, 33], [36, 35], [38, 37]]\n",
"Player 2: [[39], [41], [43], [45], [47], [49], [51]]\n",
"---\n",
"Player 1: [[42], [44], [46], [48], [50], [2, 1], [4, 3], [6, 5], [8, 7], [10, 9], [12, 11], [14, 13], [16, 15], [18, 17], [20, 19], [22, 21], [24, 23], [26, 25], [28, 27], [30, 29], [32, 31], [34, 33], [36, 35], [38, 37], [40, 39]]\n",
"Player 2: [[41], [43], [45], [47], [49], [51]]\n",
"---\n",
"Player 1: [[44], [46], [48], [50], [2, 1], [4, 3], [6, 5], [8, 7], [10, 9], [12, 11], [14, 13], [16, 15], [18, 17], [20, 19], [22, 21], [24, 23], [26, 25], [28, 27], [30, 29], [32, 31], [34, 33], [36, 35], [38, 37], [40, 39], [42, 41]]\n",
"Player 2: [[43], [45], [47], [49], [51]]\n",
"---\n",
"Player 1: [[46], [48], [50], [2, 1], [4, 3], [6, 5], [8, 7], [10, 9], [12, 11], [14, 13], [16, 15], [18, 17], [20, 19], [22, 21], [24, 23], [26, 25], [28, 27], [30, 29], [32, 31], [34, 33], [36, 35], [38, 37], [40, 39], [42, 41], [44, 43]]\n",
"Player 2: [[45], [47], [49], [51]]\n",
"---\n",
"Player 1: [[48], [50], [2, 1], [4, 3], [6, 5], [8, 7], [10, 9], [12, 11], [14, 13], [16, 15], [18, 17], [20, 19], [22, 21], [24, 23], [26, 25], [28, 27], [30, 29], [32, 31], [34, 33], [36, 35], [38, 37], [40, 39], [42, 41], [44, 43], [46, 45]]\n",
"Player 2: [[47], [49], [51]]\n",
"---\n",
"Player 1: [[50], [2, 1], [4, 3], [6, 5], [8, 7], [10, 9], [12, 11], [14, 13], [16, 15], [18, 17], [20, 19], [22, 21], [24, 23], [26, 25], [28, 27], [30, 29], [32, 31], [34, 33], [36, 35], [38, 37], [40, 39], [42, 41], [44, 43], [46, 45], [48, 47]]\n",
"Player 2: [[49], [51]]\n",
"---\n",
"Player 1: [[2, 1], [4, 3], [6, 5], [8, 7], [10, 9], [12, 11], [14, 13], [16, 15], [18, 17], [20, 19], [22, 21], [24, 23], [26, 25], [28, 27], [30, 29], [32, 31], [34, 33], [36, 35], [38, 37], [40, 39], [42, 41], [44, 43], [46, 45], [48, 47], [50, 49]]\n",
"Player 2: [[51]]\n",
"---\n",
"Player 1: [[2], [4, 3], [6, 5], [8, 7], [10, 9], [12, 11], [14, 13], [16, 15], [18, 17], [20, 19], [22, 21], [24, 23], [26, 25], [28, 27], [30, 29], [32, 31], [34, 33], [36, 35], [38, 37], [40, 39], [42, 41], [44, 43], [46, 45], [48, 47], [50, 49]]\n",
"Player 2: [[1, 51]]\n",
"---\n",
"Player 1: [[4, 3], [6, 5], [8, 7], [10, 9], [12, 11], [14, 13], [16, 15], [18, 17], [20, 19], [22, 21], [24, 23], [26, 25], [28, 27], [30, 29], [32, 31], [34, 33], [36, 35], [38, 37], [40, 39], [42, 41], [44, 43], [46, 45], [48, 47], [50, 49], [2, 1]]\n",
"Player 2: [[51]]\n",
"---\n",
"Player 1: [[4], [6, 5], [8, 7], [10, 9], [12, 11], [14, 13], [16, 15], [18, 17], [20, 19], [22, 21], [24, 23], [26, 25], [28, 27], [30, 29], [32, 31], [34, 33], [36, 35], [38, 37], [40, 39], [42, 41], [44, 43], [46, 45], [48, 47], [50, 49], [2, 1]]\n",
"Player 2: [[3, 51]]\n",
"---\n",
"Player 1: [[6, 5], [8, 7], [10, 9], [12, 11], [14, 13], [16, 15], [18, 17], [20, 19], [22, 21], [24, 23], [26, 25], [28, 27], [30, 29], [32, 31], [34, 33], [36, 35], [38, 37], [40, 39], [42, 41], [44, 43], [46, 45], [48, 47], [50, 49], [2, 1], [4, 3]]\n",
"Player 2: [[51]]\n",
"---\n",
"Player 1: [[6], [8, 7], [10, 9], [12, 11], [14, 13], [16, 15], [18, 17], [20, 19], [22, 21], [24, 23], [26, 25], [28, 27], [30, 29], [32, 31], [34, 33], [36, 35], [38, 37], [40, 39], [42, 41], [44, 43], [46, 45], [48, 47], [50, 49], [2, 1], [4, 3]]\n",
"Player 2: [[5, 51]]\n",
"---\n",
"Player 1: [[8, 7], [10, 9], [12, 11], [14, 13], [16, 15], [18, 17], [20, 19], [22, 21], [24, 23], [26, 25], [28, 27], [30, 29], [32, 31], [34, 33], [36, 35], [38, 37], [40, 39], [42, 41], [44, 43], [46, 45], [48, 47], [50, 49], [2, 1], [4, 3], [6, 5]]\n",
"Player 2: [[51]]\n",
"---\n",
"Player 1: [[8], [10, 9], [12, 11], [14, 13], [16, 15], [18, 17], [20, 19], [22, 21], [24, 23], [26, 25], [28, 27], [30, 29], [32, 31], [34, 33], [36, 35], [38, 37], [40, 39], [42, 41], [44, 43], [46, 45], [48, 47], [50, 49], [2, 1], [4, 3], [6, 5]]\n",
"Player 2: [[7, 51]]\n",
"---\n",
"Player 1: [[10, 9], [12, 11], [14, 13], [16, 15], [18, 17], [20, 19], [22, 21], [24, 23], [26, 25], [28, 27], [30, 29], [32, 31], [34, 33], [36, 35], [38, 37], [40, 39], [42, 41], [44, 43], [46, 45], [48, 47], [50, 49], [2, 1], [4, 3], [6, 5], [8, 7]]\n",
"Player 2: [[51]]\n",
"---\n",
"Player 1: [[10], [12, 11], [14, 13], [16, 15], [18, 17], [20, 19], [22, 21], [24, 23], [26, 25], [28, 27], [30, 29], [32, 31], [34, 33], [36, 35], [38, 37], [40, 39], [42, 41], [44, 43], [46, 45], [48, 47], [50, 49], [2, 1], [4, 3], [6, 5], [8, 7]]\n",
"Player 2: [[9, 51]]\n",
"---\n",
"Player 1: [[12, 11], [14, 13], [16, 15], [18, 17], [20, 19], [22, 21], [24, 23], [26, 25], [28, 27], [30, 29], [32, 31], [34, 33], [36, 35], [38, 37], [40, 39], [42, 41], [44, 43], [46, 45], [48, 47], [50, 49], [2, 1], [4, 3], [6, 5], [8, 7], [10, 9]]\n",
"Player 2: [[51]]\n",
"---\n",
"Player 1: [[12], [14, 13], [16, 15], [18, 17], [20, 19], [22, 21], [24, 23], [26, 25], [28, 27], [30, 29], [32, 31], [34, 33], [36, 35], [38, 37], [40, 39], [42, 41], [44, 43], [46, 45], [48, 47], [50, 49], [2, 1], [4, 3], [6, 5], [8, 7], [10, 9]]\n",
"Player 2: [[11, 51]]\n",
"---\n",
"Player 1: [[14, 13], [16, 15], [18, 17], [20, 19], [22, 21], [24, 23], [26, 25], [28, 27], [30, 29], [32, 31], [34, 33], [36, 35], [38, 37], [40, 39], [42, 41], [44, 43], [46, 45], [48, 47], [50, 49], [2, 1], [4, 3], [6, 5], [8, 7], [10, 9], [12, 11]]\n",
"Player 2: [[51]]\n",
"---\n",
"Player 1: [[14], [16, 15], [18, 17], [20, 19], [22, 21], [24, 23], [26, 25], [28, 27], [30, 29], [32, 31], [34, 33], [36, 35], [38, 37], [40, 39], [42, 41], [44, 43], [46, 45], [48, 47], [50, 49], [2, 1], [4, 3], [6, 5], [8, 7], [10, 9], [12, 11]]\n",
"Player 2: [[13, 51]]\n",
"---\n",
"Player 1: [[16, 15], [18, 17], [20, 19], [22, 21], [24, 23], [26, 25], [28, 27], [30, 29], [32, 31], [34, 33], [36, 35], [38, 37], [40, 39], [42, 41], [44, 43], [46, 45], [48, 47], [50, 49], [2, 1], [4, 3], [6, 5], [8, 7], [10, 9], [12, 11], [14, 13]]\n",
"Player 2: [[51]]\n",
"---\n",
"Player 1: [[16], [18, 17], [20, 19], [22, 21], [24, 23], [26, 25], [28, 27], [30, 29], [32, 31], [34, 33], [36, 35], [38, 37], [40, 39], [42, 41], [44, 43], [46, 45], [48, 47], [50, 49], [2, 1], [4, 3], [6, 5], [8, 7], [10, 9], [12, 11], [14, 13]]\n",
"Player 2: [[15, 51]]\n",
"---\n",
"Player 1: [[18, 17], [20, 19], [22, 21], [24, 23], [26, 25], [28, 27], [30, 29], [32, 31], [34, 33], [36, 35], [38, 37], [40, 39], [42, 41], [44, 43], [46, 45], [48, 47], [50, 49], [2, 1], [4, 3], [6, 5], [8, 7], [10, 9], [12, 11], [14, 13], [16, 15]]\n",
"Player 2: [[51]]\n",
"---\n",
"Player 1: [[18], [20, 19], [22, 21], [24, 23], [26, 25], [28, 27], [30, 29], [32, 31], [34, 33], [36, 35], [38, 37], [40, 39], [42, 41], [44, 43], [46, 45], [48, 47], [50, 49], [2, 1], [4, 3], [6, 5], [8, 7], [10, 9], [12, 11], [14, 13], [16, 15]]\n",
"Player 2: [[17, 51]]\n",
"---\n",
"Player 1: [[20, 19], [22, 21], [24, 23], [26, 25], [28, 27], [30, 29], [32, 31], [34, 33], [36, 35], [38, 37], [40, 39], [42, 41], [44, 43], [46, 45], [48, 47], [50, 49], [2, 1], [4, 3], [6, 5], [8, 7], [10, 9], [12, 11], [14, 13], [16, 15], [18, 17]]\n",
"Player 2: [[51]]\n",
"---\n",
"Player 1: [[20], [22, 21], [24, 23], [26, 25], [28, 27], [30, 29], [32, 31], [34, 33], [36, 35], [38, 37], [40, 39], [42, 41], [44, 43], [46, 45], [48, 47], [50, 49], [2, 1], [4, 3], [6, 5], [8, 7], [10, 9], [12, 11], [14, 13], [16, 15], [18, 17]]\n",
"Player 2: [[19, 51]]\n",
"---\n",
"Player 1: [[22, 21], [24, 23], [26, 25], [28, 27], [30, 29], [32, 31], [34, 33], [36, 35], [38, 37], [40, 39], [42, 41], [44, 43], [46, 45], [48, 47], [50, 49], [2, 1], [4, 3], [6, 5], [8, 7], [10, 9], [12, 11], [14, 13], [16, 15], [18, 17], [20, 19]]\n",
"Player 2: [[51]]\n",
"---\n",
"Player 1: [[22], [24, 23], [26, 25], [28, 27], [30, 29], [32, 31], [34, 33], [36, 35], [38, 37], [40, 39], [42, 41], [44, 43], [46, 45], [48, 47], [50, 49], [2, 1], [4, 3], [6, 5], [8, 7], [10, 9], [12, 11], [14, 13], [16, 15], [18, 17], [20, 19]]\n",
"Player 2: [[21, 51]]\n",
"---\n",
"Player 1: [[24, 23], [26, 25], [28, 27], [30, 29], [32, 31], [34, 33], [36, 35], [38, 37], [40, 39], [42, 41], [44, 43], [46, 45], [48, 47], [50, 49], [2, 1], [4, 3], [6, 5], [8, 7], [10, 9], [12, 11], [14, 13], [16, 15], [18, 17], [20, 19], [22, 21]]\n",
"Player 2: [[51]]\n",
"---\n",
"Player 1: [[24], [26, 25], [28, 27], [30, 29], [32, 31], [34, 33], [36, 35], [38, 37], [40, 39], [42, 41], [44, 43], [46, 45], [48, 47], [50, 49], [2, 1], [4, 3], [6, 5], [8, 7], [10, 9], [12, 11], [14, 13], [16, 15], [18, 17], [20, 19], [22, 21]]\n",
"Player 2: [[23, 51]]\n",
"---\n",
"Player 1: [[26, 25], [28, 27], [30, 29], [32, 31], [34, 33], [36, 35], [38, 37], [40, 39], [42, 41], [44, 43], [46, 45], [48, 47], [50, 49], [2, 1], [4, 3], [6, 5], [8, 7], [10, 9], [12, 11], [14, 13], [16, 15], [18, 17], [20, 19], [22, 21], [24, 23]]\n",
"Player 2: [[51]]\n",
"---\n",
"Player 1: [[26], [28, 27], [30, 29], [32, 31], [34, 33], [36, 35], [38, 37], [40, 39], [42, 41], [44, 43], [46, 45], [48, 47], [50, 49], [2, 1], [4, 3], [6, 5], [8, 7], [10, 9], [12, 11], [14, 13], [16, 15], [18, 17], [20, 19], [22, 21], [24, 23]]\n",
"Player 2: [[25, 51]]\n",
"---\n",
"Player 1: [[28, 27], [30, 29], [32, 31], [34, 33], [36, 35], [38, 37], [40, 39], [42, 41], [44, 43], [46, 45], [48, 47], [50, 49], [2, 1], [4, 3], [6, 5], [8, 7], [10, 9], [12, 11], [14, 13], [16, 15], [18, 17], [20, 19], [22, 21], [24, 23], [26, 25]]\n",
"Player 2: [[51]]\n",
"---\n",
"Player 1: [[28], [30, 29], [32, 31], [34, 33], [36, 35], [38, 37], [40, 39], [42, 41], [44, 43], [46, 45], [48, 47], [50, 49], [2, 1], [4, 3], [6, 5], [8, 7], [10, 9], [12, 11], [14, 13], [16, 15], [18, 17], [20, 19], [22, 21], [24, 23], [26, 25]]\n",
"Player 2: [[27, 51]]\n",
"---\n",
"Player 1: [[30, 29], [32, 31], [34, 33], [36, 35], [38, 37], [40, 39], [42, 41], [44, 43], [46, 45], [48, 47], [50, 49], [2, 1], [4, 3], [6, 5], [8, 7], [10, 9], [12, 11], [14, 13], [16, 15], [18, 17], [20, 19], [22, 21], [24, 23], [26, 25], [28, 27]]\n",
"Player 2: [[51]]\n",
"---\n",
"Player 1: [[30], [32, 31], [34, 33], [36, 35], [38, 37], [40, 39], [42, 41], [44, 43], [46, 45], [48, 47], [50, 49], [2, 1], [4, 3], [6, 5], [8, 7], [10, 9], [12, 11], [14, 13], [16, 15], [18, 17], [20, 19], [22, 21], [24, 23], [26, 25], [28, 27]]\n",
"Player 2: [[29, 51]]\n",
"---\n",
"Player 1: [[32, 31], [34, 33], [36, 35], [38, 37], [40, 39], [42, 41], [44, 43], [46, 45], [48, 47], [50, 49], [2, 1], [4, 3], [6, 5], [8, 7], [10, 9], [12, 11], [14, 13], [16, 15], [18, 17], [20, 19], [22, 21], [24, 23], [26, 25], [28, 27], [30, 29]]\n",
"Player 2: [[51]]\n",
"---\n",
"Player 1: [[32], [34, 33], [36, 35], [38, 37], [40, 39], [42, 41], [44, 43], [46, 45], [48, 47], [50, 49], [2, 1], [4, 3], [6, 5], [8, 7], [10, 9], [12, 11], [14, 13], [16, 15], [18, 17], [20, 19], [22, 21], [24, 23], [26, 25], [28, 27], [30, 29]]\n",
"Player 2: [[31, 51]]\n",
"---\n",
"Player 1: [[34, 33], [36, 35], [38, 37], [40, 39], [42, 41], [44, 43], [46, 45], [48, 47], [50, 49], [2, 1], [4, 3], [6, 5], [8, 7], [10, 9], [12, 11], [14, 13], [16, 15], [18, 17], [20, 19], [22, 21], [24, 23], [26, 25], [28, 27], [30, 29], [32, 31]]\n",
"Player 2: [[51]]\n",
"---\n",
"Player 1: [[34], [36, 35], [38, 37], [40, 39], [42, 41], [44, 43], [46, 45], [48, 47], [50, 49], [2, 1], [4, 3], [6, 5], [8, 7], [10, 9], [12, 11], [14, 13], [16, 15], [18, 17], [20, 19], [22, 21], [24, 23], [26, 25], [28, 27], [30, 29], [32, 31]]\n",
"Player 2: [[33, 51]]\n",
"---\n",
"Player 1: [[36, 35], [38, 37], [40, 39], [42, 41], [44, 43], [46, 45], [48, 47], [50, 49], [2, 1], [4, 3], [6, 5], [8, 7], [10, 9], [12, 11], [14, 13], [16, 15], [18, 17], [20, 19], [22, 21], [24, 23], [26, 25], [28, 27], [30, 29], [32, 31], [34, 33]]\n",
"Player 2: [[51]]\n",
"---\n",
"Player 1: [[36], [38, 37], [40, 39], [42, 41], [44, 43], [46, 45], [48, 47], [50, 49], [2, 1], [4, 3], [6, 5], [8, 7], [10, 9], [12, 11], [14, 13], [16, 15], [18, 17], [20, 19], [22, 21], [24, 23], [26, 25], [28, 27], [30, 29], [32, 31], [34, 33]]\n",
"Player 2: [[35, 51]]\n",
"---\n",
"Player 1: [[38, 37], [40, 39], [42, 41], [44, 43], [46, 45], [48, 47], [50, 49], [2, 1], [4, 3], [6, 5], [8, 7], [10, 9], [12, 11], [14, 13], [16, 15], [18, 17], [20, 19], [22, 21], [24, 23], [26, 25], [28, 27], [30, 29], [32, 31], [34, 33], [36, 35]]\n",
"Player 2: [[51]]\n",
"---\n",
"Player 1: [[38], [40, 39], [42, 41], [44, 43], [46, 45], [48, 47], [50, 49], [2, 1], [4, 3], [6, 5], [8, 7], [10, 9], [12, 11], [14, 13], [16, 15], [18, 17], [20, 19], [22, 21], [24, 23], [26, 25], [28, 27], [30, 29], [32, 31], [34, 33], [36, 35]]\n",
"Player 2: [[37, 51]]\n",
"---\n",
"Player 1: [[40, 39], [42, 41], [44, 43], [46, 45], [48, 47], [50, 49], [2, 1], [4, 3], [6, 5], [8, 7], [10, 9], [12, 11], [14, 13], [16, 15], [18, 17], [20, 19], [22, 21], [24, 23], [26, 25], [28, 27], [30, 29], [32, 31], [34, 33], [36, 35], [38, 37]]\n",
"Player 2: [[51]]\n",
"---\n",
"Player 1: [[40], [42, 41], [44, 43], [46, 45], [48, 47], [50, 49], [2, 1], [4, 3], [6, 5], [8, 7], [10, 9], [12, 11], [14, 13], [16, 15], [18, 17], [20, 19], [22, 21], [24, 23], [26, 25], [28, 27], [30, 29], [32, 31], [34, 33], [36, 35], [38, 37]]\n",
"Player 2: [[39, 51]]\n",
"---\n",
"Player 1: [[42, 41], [44, 43], [46, 45], [48, 47], [50, 49], [2, 1], [4, 3], [6, 5], [8, 7], [10, 9], [12, 11], [14, 13], [16, 15], [18, 17], [20, 19], [22, 21], [24, 23], [26, 25], [28, 27], [30, 29], [32, 31], [34, 33], [36, 35], [38, 37], [40, 39]]\n",
"Player 2: [[51]]\n",
"---\n",
"Player 1: [[42], [44, 43], [46, 45], [48, 47], [50, 49], [2, 1], [4, 3], [6, 5], [8, 7], [10, 9], [12, 11], [14, 13], [16, 15], [18, 17], [20, 19], [22, 21], [24, 23], [26, 25], [28, 27], [30, 29], [32, 31], [34, 33], [36, 35], [38, 37], [40, 39]]\n",
"Player 2: [[41, 51]]\n",
"---\n",
"Player 1: [[44, 43], [46, 45], [48, 47], [50, 49], [2, 1], [4, 3], [6, 5], [8, 7], [10, 9], [12, 11], [14, 13], [16, 15], [18, 17], [20, 19], [22, 21], [24, 23], [26, 25], [28, 27], [30, 29], [32, 31], [34, 33], [36, 35], [38, 37], [40, 39], [42, 41]]\n",
"Player 2: [[51]]\n",
"---\n",
"Player 1: [[44], [46, 45], [48, 47], [50, 49], [2, 1], [4, 3], [6, 5], [8, 7], [10, 9], [12, 11], [14, 13], [16, 15], [18, 17], [20, 19], [22, 21], [24, 23], [26, 25], [28, 27], [30, 29], [32, 31], [34, 33], [36, 35], [38, 37], [40, 39], [42, 41]]\n",
"Player 2: [[43, 51]]\n",
"---\n",
"Player 1: [[46, 45], [48, 47], [50, 49], [2, 1], [4, 3], [6, 5], [8, 7], [10, 9], [12, 11], [14, 13], [16, 15], [18, 17], [20, 19], [22, 21], [24, 23], [26, 25], [28, 27], [30, 29], [32, 31], [34, 33], [36, 35], [38, 37], [40, 39], [42, 41], [44, 43]]\n",
"Player 2: [[51]]\n",
"---\n",
"Player 1: [[46], [48, 47], [50, 49], [2, 1], [4, 3], [6, 5], [8, 7], [10, 9], [12, 11], [14, 13], [16, 15], [18, 17], [20, 19], [22, 21], [24, 23], [26, 25], [28, 27], [30, 29], [32, 31], [34, 33], [36, 35], [38, 37], [40, 39], [42, 41], [44, 43]]\n",
"Player 2: [[45, 51]]\n",
"---\n",
"Player 1: [[48, 47], [50, 49], [2, 1], [4, 3], [6, 5], [8, 7], [10, 9], [12, 11], [14, 13], [16, 15], [18, 17], [20, 19], [22, 21], [24, 23], [26, 25], [28, 27], [30, 29], [32, 31], [34, 33], [36, 35], [38, 37], [40, 39], [42, 41], [44, 43], [46, 45]]\n",
"Player 2: [[51]]\n",
"---\n",
"Player 1: [[48], [50, 49], [2, 1], [4, 3], [6, 5], [8, 7], [10, 9], [12, 11], [14, 13], [16, 15], [18, 17], [20, 19], [22, 21], [24, 23], [26, 25], [28, 27], [30, 29], [32, 31], [34, 33], [36, 35], [38, 37], [40, 39], [42, 41], [44, 43], [46, 45]]\n",
"Player 2: [[47, 51]]\n",
"---\n",
"Player 1: [[50, 49], [2, 1], [4, 3], [6, 5], [8, 7], [10, 9], [12, 11], [14, 13], [16, 15], [18, 17], [20, 19], [22, 21], [24, 23], [26, 25], [28, 27], [30, 29], [32, 31], [34, 33], [36, 35], [38, 37], [40, 39], [42, 41], [44, 43], [46, 45], [48, 47]]\n",
"Player 2: [[51]]\n",
"---\n",
"Player 1: [[50], [2, 1], [4, 3], [6, 5], [8, 7], [10, 9], [12, 11], [14, 13], [16, 15], [18, 17], [20, 19], [22, 21], [24, 23], [26, 25], [28, 27], [30, 29], [32, 31], [34, 33], [36, 35], [38, 37], [40, 39], [42, 41], [44, 43], [46, 45], [48, 47]]\n",
"Player 2: [[49, 51]]\n",
"---\n",
"Player 1: [[2, 1], [4, 3], [6, 5], [8, 7], [10, 9], [12, 11], [14, 13], [16, 15], [18, 17], [20, 19], [22, 21], [24, 23], [26, 25], [28, 27], [30, 29], [32, 31], [34, 33], [36, 35], [38, 37], [40, 39], [42, 41], [44, 43], [46, 45], [48, 47], [50, 49]]\n",
"Player 2: [[51]]\n",
"---\n"
]
}
],
"prompt_number": 8
}
],
"metadata": {}
}
]
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment