diff --git a/ipynb/Scrabble.ipynb b/ipynb/Scrabble.ipynb
index 7dbea70..89efeb7 100644
--- a/ipynb/Scrabble.ipynb
+++ b/ipynb/Scrabble.ipynb
@@ -15,7 +15,7 @@
"\n",
"# Refactoring a Crossword Game Program\n",
"\n",
- "In my [CS 212 class](https://www.udacity.com/course/design-of-computer-programs--cs212) on Udacity, the [most complex lesson](https://www.udacity.com/course/viewer#!/c-cs212/l-48634860) involved a crossword game program (for games such as Scrabble® and Words with Friends®). The program was developed *incrementally*. First I asked \"what words can be made with a rack of seven letters, reagardless of the board?\", then I asked \"how can you place words onto a single row of the board?\", and finally, I, with the help of the students, developed a program to find the highest scoring play anywhere on the board. This approach made for a good sequence of exercises, each building on the previous one. But the code ended up being overly complicated—it accumlated [technical debt](https://en.wikipedia.org/wiki/Technical_debt)—because it kept around old ideas from each iteration.\n",
+ "In my [CS 212 class](https://www.udacity.com/course/design-of-computer-programs--cs212) on Udacity, the most complex lesson involved a [crossword game program](https://www.udacity.com/course/viewer#!/c-cs212/l-48634860) (for games such as Scrabble® and Words with Friends®). The program was developed *incrementally*. First I asked \"what words can be made with a rack of seven letters, reagardless of the board?\" Then I asked \"how can you place words onto a single row of the board?\" Finally, I, with the help of the students, developed a program to find the highest scoring play anywhere on the board. This approach made for a good sequence of exercises, each building on the previous one. But the code ended up being overly complicated—it accumlated [technical debt](https://en.wikipedia.org/wiki/Technical_debt)—because it kept around old ideas from each iteration.\n",
"\n",
"In this notebook I will refactor the program to pay off the technical debt.\n",
"\n",
@@ -31,9 +31,9 @@
"* **Board**: a grid of squares onto which players play tiles to make words. \n",
"* **Square**: a location on the board; a square can hold one tile. (In the code, the variable name `s` always stands for a square number, and `sq` for the contents of a square, which can be a tile or empty.)\n",
"* **Bonus**: some squares give you bonus scores: double or triple letter or word scores.\n",
- "* **Play**: a play consists of placing some tiles on the board to form a continuous string of letters in one direction (across or down), such that only valid words are formed, and such that one of the letters is placed on an anchor square.\n",
+ "* **Play**: a play consists of placing some tiles on the board to form a continuous string of letters in one direction (across or down), such that only valid dictionary words are formed, and such that one of the letters is placed on an anchor square.\n",
"* **Anchor square**: Every play must place a letter on an anchor square: either the center start square or a square that is adjacent to a tile previously played on the board. \n",
- "* **Direction:** Every play must be in either the across or down direction. (The variable `dir` always stands for a direction, and is `1` for across and `17` for down.)\n",
+ "* **Direction:** Every play must be in either the across or down direction. (The variable `dir` always stands for a direction.)\n",
"* **Cross word**: a word formed in the *other* direction from a play. For example, a play forms a word in the across direction, and in doing so, places a letter that extends a word in the down direction. Any new extended *cross word* must be in the dictionary.\n",
"* **Score**: the points awarded for a play, consisting of the sum of the word scores for each word created (the main word and possibly any cross words), plus a *bingo* bonus if all seven letters are used. \n",
"* **Word score**: Each word scores the sum of the letter scores for each tile (either placed by the player or already on the board but part of the word) times the word bonus score. The word bonus score starts at 1, and is multiplied by 2 for each double word square and 3 for each triple word square covered by a tile on this play.\n",
@@ -43,6 +43,7 @@
"rack is replenished with tiles until the player has 7 tiles or until the bag of tiles is empty.\n",
"* **Prefix**: a string of zero or more letters that starts some word in the dictionary. Not a concept that has to do\n",
"with the *rules* of the game; it will be important in our *algorithm* that finds valid plays.\n",
+ "* **HTML display**: a (hopefully) pretty display of the board.\n",
"\n",
"This notebook uses these imports:"
]
@@ -61,8 +62,8 @@
},
"outputs": [],
"source": [
- "from __future__ import division, print_function\n",
- "from collections import defaultdict, namedtuple\n",
+ "from collections import defaultdict, namedtuple\n",
+ "from statistics import mean, median\n",
"from IPython.display import HTML, display\n",
"import random"
]
@@ -81,7 +82,7 @@
"\n",
"# Dictionary and Words\n",
"\n",
- "We will represent the dictionary as a set of words. A word is an uppercase string of letters, like `'WORD'`. There are several standard dictionaries used by different communities of players; we will use the ENABLE dictionary—we can cache a local copy with this shell command:"
+ "We will represent the dictionary as a `set` of words. A word is an uppercase string of letters, like `'WORD'`. There are several standard dictionaries used by different communities of players; we will use the ENABLE dictionary—we can cache a local copy with this shell command:"
]
},
{
@@ -131,20 +132,35 @@
"source": [
"def Word(w) -> str: return w.strip().upper()\n",
"\n",
- "def is_word(word) -> bool: \n",
- " \"Is this a legal word in the dictionary?\"\n",
- " return word.upper() in DICTIONARY"
+ "DICTIONARY = {Word(w) for w in open('enable1.txt')}"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {
- "collapsed": true
+ "button": false,
+ "collapsed": false,
+ "deletable": true,
+ "new_sheet": false,
+ "run_control": {
+ "read_only": false
+ }
},
- "outputs": [],
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "172820"
+ ]
+ },
+ "execution_count": 4,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
"source": [
- "DICTIONARY = {Word(w) for w in open('enable1.txt')}"
+ "len(DICTIONARY)"
]
},
{
@@ -163,7 +179,16 @@
{
"data": {
"text/plain": [
- "172820"
+ "['MUTUALITY',\n",
+ " 'HYPERIMMUNIZE',\n",
+ " 'MULISH',\n",
+ " 'AIRSICK',\n",
+ " 'PERSISTS',\n",
+ " 'UNRIDABLE',\n",
+ " 'DECANES',\n",
+ " 'UNSETTLEDNESS',\n",
+ " 'PIANISSIMI',\n",
+ " 'IRENICS']"
]
},
"execution_count": 5,
@@ -172,7 +197,7 @@
}
],
"source": [
- "len(DICTIONARY)"
+ "random.sample(DICTIONARY, 10)"
]
},
{
@@ -187,43 +212,6 @@
"read_only": false
}
},
- "outputs": [
- {
- "data": {
- "text/plain": [
- "['RATANY',\n",
- " 'CONFERRING',\n",
- " 'PHOTOTOXICITIES',\n",
- " 'BESTIRS',\n",
- " 'STRENGTH',\n",
- " 'JACKSMELTS',\n",
- " 'INVERSION',\n",
- " 'PILEUP',\n",
- " 'EYEBARS',\n",
- " 'KNUCKLEHEADED']"
- ]
- },
- "execution_count": 6,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
- "source": [
- "random.sample(DICTIONARY, 10)"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 7,
- "metadata": {
- "button": false,
- "collapsed": false,
- "deletable": true,
- "new_sheet": false,
- "run_control": {
- "read_only": false
- }
- },
"outputs": [
{
"data": {
@@ -231,7 +219,7 @@
"True"
]
},
- "execution_count": 7,
+ "execution_count": 6,
"metadata": {},
"output_type": "execute_result"
}
@@ -257,12 +245,12 @@
"\n",
"The blank tile causes some complications. We'll represent a blank in a player's rack as the underscore character, `'_'`. But once the blank is played on the board, it must be used as if it was a specific letter. However, it doesn't score the points of the letter. I chose to use the lowercase version of the letter to represent this. That way, we know what letter the blank is standing for, and we can distinguish between scoring and non-scoring tiles. For example, `'EELRTT_'` is a rack that contains a blank; and `'LETTERs'` is a word played on the board that uses the blank to stand for the letter `S`. \n",
"\n",
- "We'll define `letters` to give all the distinct letters that can be made by a rack, and `remove` to remove letters from a rack (after they have been played)."
+ "We'll define `letters(rack)` to give all the distinct letters that can be made by a rack, and `is_word` to test if a word is in the dictionary. The `dict` `POINTS` tells how many points each letter is worth."
]
},
{
"cell_type": "code",
- "execution_count": 8,
+ "execution_count": 7,
"metadata": {
"button": false,
"collapsed": false,
@@ -279,24 +267,43 @@
"\n",
"def letters(rack) -> str:\n",
" \"All the distinct letters in a rack (including lowercase if there is a blank).\"\n",
- " if BLANK in rack:\n",
- " return cat(set(rack.replace(BLANK, ''))) + 'abcdefghijklmnopqrstuvwxyz'\n",
- " else:\n",
- " return cat(set(rack))\n",
+ " return cat(set(rack.replace(BLANK, 'abcdefghijklmnopqrstuvwxyz')))\n",
" \n",
- "def letters(rack) -> str:\n",
- " \"All the distinct letters in a rack (including lowercase if there is a blank).\"\n",
- " if BLANK in rack:\n",
- " return letters(rack.replace(BLANK, '')) + 'abcdefghijklmnopqrstuvwxyz'\n",
- " else:\n",
- " return cat(set(rack))\n",
- " \n",
- "def remove(tiles, rack) -> str:\n",
- " \"Return a copy of rack with the given tile(s) removed.\"\n",
- " for tile in tiles:\n",
- " if tile.islower(): tile = BLANK\n",
- " rack = rack.replace(tile, '', 1)\n",
- " return rack"
+ "def is_word(word) -> bool: \n",
+ " \"Is this a legal word in the dictionary?\"\n",
+ " return word.upper() in DICTIONARY\n",
+ "\n",
+ "POINTS = defaultdict(int, \n",
+ " A=1, B=3, C=3, D=2, E=1, F=4, G=2, H=4, I=1, J=8, K=5, L=1, M=3, \n",
+ " N=1, O=1, P=3, Q=10, R=1, S=1, T=1, U=1, V=4, W=4, X=8, Y=4, Z=10)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 8,
+ "metadata": {
+ "button": false,
+ "collapsed": false,
+ "deletable": true,
+ "new_sheet": false,
+ "run_control": {
+ "read_only": false
+ }
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "True"
+ ]
+ },
+ "execution_count": 8,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "is_word('LETTERs')"
]
},
{
@@ -315,7 +322,7 @@
{
"data": {
"text/plain": [
- "True"
+ "'KCAR'"
]
},
"execution_count": 9,
@@ -324,7 +331,7 @@
}
],
"source": [
- "is_word('LETTERs')"
+ "letters('RRAACCK')"
]
},
{
@@ -343,7 +350,7 @@
{
"data": {
"text/plain": [
- "'ERLST'"
+ "'rzvEbTathwfodRjLecgpixsymqlkun'"
]
},
"execution_count": 10,
@@ -351,92 +358,30 @@
"output_type": "execute_result"
}
],
- "source": [
- "letters('LETTERS')"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 11,
- "metadata": {
- "button": false,
- "collapsed": false,
- "deletable": true,
- "new_sheet": false,
- "run_control": {
- "read_only": false
- }
- },
- "outputs": [
- {
- "data": {
- "text/plain": [
- "'ERLTabcdefghijklmnopqrstuvwxyz'"
- ]
- },
- "execution_count": 11,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
"source": [
"letters('EELRTT_')"
]
},
{
"cell_type": "code",
- "execution_count": 12,
+ "execution_count": 11,
"metadata": {
- "button": false,
- "collapsed": false,
- "deletable": true,
- "new_sheet": false,
- "run_control": {
- "read_only": false
- }
+ "collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
- "'LTER'"
+ "10"
]
},
- "execution_count": 12,
+ "execution_count": 11,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
- "remove('SET', 'LETTERS')"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 13,
- "metadata": {
- "button": false,
- "collapsed": false,
- "deletable": true,
- "new_sheet": false,
- "run_control": {
- "read_only": false
- }
- },
- "outputs": [
- {
- "data": {
- "text/plain": [
- "'LE'"
- ]
- },
- "execution_count": 13,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
- "source": [
- "remove('TREaT', 'LETTER_') "
+ "POINTS['Q']"
]
},
{
@@ -455,7 +400,7 @@
"In the [previous version](https://www.udacity.com/course/viewer#!/c-cs212/l-48634860) of this program, the board was a two-dimensional matrix, and a square on the board was denoted by a `(row, col)` pair of indexes. There's nothing wrong with that representation, but for this version we will choose a different representation that is simpler in most ways:\n",
"\n",
"* The board is represented as a one-dimensional list of squares.\n",
- "* The default board is 15×15 squares, but\n",
+ "* The standard board is 15×15 squares, but\n",
"we will include a *border* around the outside, making the board size 17×17. \n",
"* Squares are denoted by integer indexes, from 0 to 288.\n",
"* To move in the `ACROSS` direction from one square to the next, increment the square index by 1.\n",
@@ -463,13 +408,14 @@
"* The border squares are filled with a symbol, `OFF`, indicating that they are off the board.\n",
"The advantage of the border is that the code never has to check if it is at the edge of the board; it can always\n",
"look at the neighboring square without fear of indexing off the end of the board.\n",
- "* Each square on the board is initially filled by a symbol indicating the bonus value of the square. When a tile is placed on a square,\n",
+ "* Each square on the board is initially filled by a symbol indicating the bonus value of the square: 1/2/3-dot characters for single/double/triple letter score; 2/3-dash characters for double and triple word score; and a star for the center starting position. When a tile is placed on a square,\n",
"the tile replaces the bonus value.\n",
"\n",
- "How will we implement this? We'll define `Board` as a subclass of `list` and give it two additional attributes: \n",
+ "How will we implement this? We'll define `Board` as a subclass of `list` and give it three additional attributes: \n",
"\n",
"- `down`: the increment to move in the down direction; 17 for a standard board.\n",
"- `directions`: the four increments to move to any neighboring square; `(1, 17, -1, -17)` in a standard board.\n",
+ "- `bingo`: the number of points you get for using all 7 letters.\n",
"\n",
"Jupyter/Ipython notebooks have a special convention for displaying objects in HTML. We will adopt it as a method of `Board`:\n",
"\n",
@@ -478,7 +424,7 @@
},
{
"cell_type": "code",
- "execution_count": 14,
+ "execution_count": 12,
"metadata": {
"button": false,
"collapsed": false,
@@ -491,9 +437,9 @@
"outputs": [],
"source": [
"ACROSS = 1 # The 'across' direction; 'down' depends on the size of the board\n",
- "OFF = '#' # A square that is off the board\n",
- "EMPTY = '.:;-=*'\n",
- "SL, DL, TL, DW, TW, STAR = EMPTY # Single/double/triple letter; double/triple word; star\n",
+ "OFF = '█' # A square that is off the board\n",
+ "(SL, DL, TL, DW, TW, STAR) = EMPTY = ( # Single/double/triple letter; double/triple word; star\n",
+ " '.', ':', '∴', '=', '≡', '*') \n",
"\n",
"Square = int # Squares are implemented as integer indexes.\n",
"Direction = int # Directions are implemented as integer increments\n",
@@ -523,110 +469,14 @@
}
},
"source": [
- "We'll define the standard boards for Words with Friends® and Scrabble®:"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 15,
- "metadata": {
- "button": false,
- "collapsed": true,
- "deletable": true,
- "new_sheet": false,
- "run_control": {
- "read_only": false
- }
- },
- "outputs": [],
- "source": [
- "WWF = Board(\"\"\"\n",
- "# # # # # # # # # # # # # # # # #\n",
- "# . . . = . . ; . ; . . = . . . #\n",
- "# . . : . . - . . . - . . : . . #\n",
- "# . : . . : . . . . . : . . : . #\n",
- "# = . . ; . . . - . . . ; . . = #\n",
- "# . . : . . . : . : . . . : . . #\n",
- "# . - . . . ; . . . ; . . . - . #\n",
- "# ; . . . : . . . . . : . . . ; #\n",
- "# . . . - . . . * . . . - . . . #\n",
- "# ; . . . : . . . . . : . . . ; #\n",
- "# . - . . . ; . . . ; . . . - . #\n",
- "# . . : . . . : . : . . . : . . #\n",
- "# = . . ; . . . - . . . ; . . = #\n",
- "# . : . . : . . . . . : . . : . #\n",
- "# . . : . . - . . . - . . : . . #\n",
- "# . . . = . . ; . ; . . = . . . #\n",
- "# # # # # # # # # # # # # # # # #\n",
- "\"\"\".split(), bingo=35)"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 16,
- "metadata": {
- "collapsed": true
- },
- "outputs": [],
- "source": [
- "SCRABBLE = Board(\"\"\"\n",
- "# # # # # # # # # # # # # # # # #\n",
- "# = . . : . . . = . . . : . . = #\n",
- "# . - . . . ; . . . ; . . . - . #\n",
- "# . . - . . . : . : . . . - . . #\n",
- "# : . . - . . . : . . . - . . : #\n",
- "# . . . . - . . . . . - . . . . #\n",
- "# . ; . . . ; . . . ; . . . ; . #\n",
- "# . . : . . . : . : . . . : . . #\n",
- "# = . . : . . . * . . . : . . = #\n",
- "# . . : . . . : . : . . . : . . #\n",
- "# . ; . . . ; . . . ; . . . ; . #\n",
- "# . . . . - . . . . . - . . . . #\n",
- "# : . . - . . . : . . . - . . : #\n",
- "# . . - . . . : . : . . . - . . #\n",
- "# . - . . . ; . . . ; . . . - . #\n",
- "# = . . : . . . = . . . : . . = #\n",
- "# # # # # # # # # # # # # # # # #\n",
- "\"\"\".split(), bingo=50)"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 17,
- "metadata": {
- "button": false,
- "collapsed": false,
- "deletable": true,
- "new_sheet": false,
- "run_control": {
- "read_only": false
- }
- },
- "outputs": [],
- "source": [
- "assert len(WWF) == len(SCRABBLE) == 17 * 17\n",
- "assert all(sq in EMPTY or sq == OFF for sq in WWF + SCRABBLE)"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {
- "button": false,
- "deletable": true,
- "new_sheet": false,
- "run_control": {
- "read_only": false
- }
- },
- "source": [
- "# Displaying the Board in HTML\n",
+ "# HTML Display of the Board\n",
"\n",
- "I want to diaplay the board in HTML, as a table with different background colors for the bonus squares; and gold-colored letter tiles. I also want to display the point values for each letter on the tiles; I'll use a `defaultdict` of `{letter: int}` named `POINTS` for that."
+ "I want to diaplay the board in HTML, as a table with different background colors for the bonus squares; and gold-colored letter tiles. "
]
},
{
"cell_type": "code",
- "execution_count": 18,
+ "execution_count": 13,
"metadata": {
"button": false,
"collapsed": false,
@@ -642,34 +492,42 @@
" \"An HTML representation of the board.\"\n",
" size = board.down - 2\n",
" squares = [square_html(sq) for sq in board if sq != OFF]\n",
- " row = ('
' + size * '{}')\n",
+ " return ('').format(*squares)\n",
" \n",
- "board_colors = {\n",
+ "def square_html(sq) -> str:\n",
+ " \"An HTML representation of a square.\"\n",
+ " color, size, text = (bonus_colors[sq] if sq in EMPTY else ('gold', 120, sq))\n",
+ " return ('''{}{}'''\n",
+ " .format(color, size, text, POINTS[text] or ''))\n",
+ "\n",
+ "bonus_colors = {\n",
" DL: ('lightblue', 66, 'DL'),\n",
" TL: ('lightgreen', 66, 'TL'),\n",
" DW: ('lightcoral', 66, 'DW'),\n",
" TW: ('orange', 66, 'TW'),\n",
" SL: ('whitesmoke', 66, ''),\n",
- " STAR: ('violet', 100, '✭')}\n",
- "\n",
- "def square_html(sq) -> str:\n",
- " \"An HTML representation of a square.\"\n",
- " color, size, text = board_colors.get(sq, ('gold', 120, sq))\n",
- " if text.isupper(): \n",
- " text = '{}{}'.format(text, POINTS.get(text, ''))\n",
- " params = \"width:25px; height:25px; text-align:center; padding:0px;\"\n",
- " style = \"background-color:{}; font-size:{}%\".format(color, size, text)\n",
- " return ' | ' + text\n",
- "\n",
- "POINTS = defaultdict(int, \n",
- " A=1, B=3, C=3, D=2, E=1, F=4, G=2, H=4, I=1, J=8, K=5, L=1, M=3, \n",
- " N=1, O=1, P=3, Q=10, R=1, S=1, T=1, U=1, V=4, W=4, X=8, Y=4, Z=10)"
+ " STAR: ('violet', 99, '✭')}"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "button": false,
+ "deletable": true,
+ "new_sheet": false,
+ "run_control": {
+ "read_only": false
+ }
+ },
+ "source": [
+ "We'll define the standard boards for Words with Friends® and Scrabble®:"
]
},
{
"cell_type": "code",
- "execution_count": 19,
+ "execution_count": 14,
"metadata": {
"button": false,
"collapsed": false,
@@ -683,95 +541,320 @@
{
"data": {
"text/html": [
- " | | | TW | | | TL | | TL | | | TW | | | | | | DL | | | DW | | | | DW | | | DL | | | | DL | | | DL | | | | | | DL | | | DL | | TW | | | TL | | | | DW | | | | TL | | | TW | | | DL | | | | DL | | DL | | | | DL | | | | DW | | | | TL | | | | TL | | | | DW | | TL | | | | DL | | | | | | DL | | | | TL | | | | DW | | | | ✭ | | | | DW | | | | TL | | | | DL | | | | | | DL | | | | TL | | DW | | | | TL | | | | TL | | | | DW | | | | DL | | | | DL | | DL | | | | DL | | | TW | | | TL | | | | DW | | | | TL | | | TW | | DL | | | DL | | | | | | DL | | | DL | | | | DL | | | DW | | | | DW | | | DL | | | | | | TW | | | TL | | TL | | | TW | | | | "
+ " | | | TW | | | TL | | TL | | | TW | | | | | | DL | | | DW | | | | DW | | | DL | | | | DL | | | DL | | | | | | DL | | | DL | | TW | | | TL | | | | DW | | | | TL | | | TW | | | DL | | | | DL | | DL | | | | DL | | | | DW | | | | TL | | | | TL | | | | DW | | TL | | | | DL | | | | | | DL | | | | TL | | | | DW | | | | ✭ | | | | DW | | | | TL | | | | DL | | | | | | DL | | | | TL | | DW | | | | TL | | | | TL | | | | DW | | | | DL | | | | DL | | DL | | | | DL | | | TW | | | TL | | | | DW | | | | TL | | | TW | | DL | | | DL | | | | | | DL | | | DL | | | | DL | | | DW | | | | DW | | | DL | | | | | | TW | | | TL | | TL | | | TW | | | | "
],
"text/plain": [
- "['#',\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",
- " '=',\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",
- " '.',\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",
" '.',\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",
@@ -787,26 +870,26 @@
" ':',\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",
@@ -820,13 +903,13 @@
" '.',\n",
" '.',\n",
" '.',\n",
- " ';',\n",
- " '#',\n",
- " '#',\n",
+ " '∴',\n",
+ " '█',\n",
+ " '█',\n",
" '.',\n",
" '.',\n",
" '.',\n",
- " '-',\n",
+ " '=',\n",
" '.',\n",
" '.',\n",
" '.',\n",
@@ -834,161 +917,181 @@
" '.',\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",
- " '-',\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",
+ " '.',\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",
" '.',\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",
+ " '.',\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",
- " '#',\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",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█']"
]
},
- "execution_count": 19,
+ "execution_count": 14,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
+ "WWF = Board(\"\"\"\n",
+ "█ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █\n",
+ "█ . . . ≡ . . ∴ . ∴ . . ≡ . . . █\n",
+ "█ . . : . . = . . . = . . : . . █\n",
+ "█ . : . . : . . . . . : . . : . █\n",
+ "█ ≡ . . ∴ . . . = . . . ∴ . . ≡ █\n",
+ "█ . . : . . . : . : . . . : . . █\n",
+ "█ . = . . . ∴ . . . ∴ . . . = . █\n",
+ "█ ∴ . . . : . . . . . : . . . ∴ █\n",
+ "█ . . . = . . . * . . . = . . . █\n",
+ "█ ∴ . . . : . . . . . : . . . ∴ █\n",
+ "█ . = . . . ∴ . . . ∴ . . . = . █\n",
+ "█ . . : . . . : . : . . . : . . █\n",
+ "█ ≡ . . ∴ . . . = . . . ∴ . . ≡ █\n",
+ "█ . : . . : . . . . . : . . : . █\n",
+ "█ . . : . . = . . . = . . : . . █\n",
+ "█ . . . ≡ . . ∴ . ∴ . . ≡ . . . █\n",
+ "█ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █\n",
+ "\"\"\".split(), bingo=35)\n",
+ "\n",
"WWF"
]
},
{
"cell_type": "code",
- "execution_count": 20,
+ "execution_count": 15,
"metadata": {
"collapsed": false
},
@@ -996,34 +1099,306 @@
{
"data": {
"text/html": [
- "TW | | | DL | | | | TW | | | | DL | | | TW | | DW | | | | TL | | | | TL | | | | DW | | | | DW | | | | DL | | DL | | | | DW | | | DL | | | DW | | | | DL | | | | DW | | | DL | | | | | DW | | | | | | DW | | | | | | TL | | | | TL | | | | TL | | | | TL | | | | DL | | | | DL | | DL | | | | DL | | | TW | | | DL | | | | ✭ | | | | DL | | | TW | | | DL | | | | DL | | DL | | | | DL | | | | TL | | | | TL | | | | TL | | | | TL | | | | | | DW | | | | | | DW | | | | | DL | | | DW | | | | DL | | | | DW | | | DL | | | DW | | | | DL | | DL | | | | DW | | | | DW | | | | TL | | | | TL | | | | DW | | TW | | | DL | | | | TW | | | | DL | | | TW | "
+ "TW | | | DL | | | | TW | | | | DL | | | TW | | DW | | | | TL | | | | TL | | | | DW | | | | DW | | | | DL | | DL | | | | DW | | | DL | | | DW | | | | DL | | | | DW | | | DL | | | | | DW | | | | | | DW | | | | | | TL | | | | TL | | | | TL | | | | TL | | | | DL | | | | DL | | DL | | | | DL | | | TW | | | DL | | | | ✭ | | | | DL | | | TW | | | DL | | | | DL | | DL | | | | DL | | | | TL | | | | TL | | | | TL | | | | TL | | | | | | DW | | | | | | DW | | | | | DL | | | DW | | | | DL | | | | DW | | | DL | | | DW | | | | DL | | DL | | | | DW | | | | DW | | | | TL | | | | TL | | | | DW | | TW | | | DL | | | | TW | | | | DL | | | TW | "
],
"text/plain": [
- "['#',\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",
" '.',\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",
+ " '.',\n",
+ " ':',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '=',\n",
+ " '.',\n",
+ " '.',\n",
+ " '█',\n",
+ " '█',\n",
+ " ':',\n",
+ " '.',\n",
+ " '.',\n",
" '=',\n",
" '.',\n",
" '.',\n",
@@ -1031,114 +1406,67 @@
" ':',\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",
- " '#',\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",
- " ';',\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",
+ " '=',\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",
+ " '█',\n",
+ " '█',\n",
+ " '≡',\n",
+ " '.',\n",
+ " '.',\n",
" ':',\n",
" '.',\n",
" '.',\n",
@@ -1150,9 +1478,9 @@
" ':',\n",
" '.',\n",
" '.',\n",
- " '=',\n",
- " '#',\n",
- " '#',\n",
+ " '≡',\n",
+ " '█',\n",
+ " '█',\n",
" '.',\n",
" '.',\n",
" ':',\n",
@@ -1168,97 +1496,32 @@
" ':',\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",
- " '.',\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",
- " '.',\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",
@@ -1266,36 +1529,121 @@
" '.',\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",
+ " '█',\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",
+ " '.',\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",
+ " '█']"
]
},
- "execution_count": 20,
+ "execution_count": 15,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
+ "SCRABBLE = Board(\"\"\"\n",
+ "█ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █\n",
+ "█ ≡ . . : . . . ≡ . . . : . . ≡ █\n",
+ "█ . = . . . ∴ . . . ∴ . . . = . █\n",
+ "█ . . = . . . : . : . . . = . . █\n",
+ "█ : . . = . . . : . . . = . . : █\n",
+ "█ . . . . = . . . . . = . . . . █\n",
+ "█ . ∴ . . . ∴ . . . ∴ . . . ∴ . █\n",
+ "█ . . : . . . : . : . . . : . . █\n",
+ "█ ≡ . . : . . . * . . . : . . ≡ █\n",
+ "█ . . : . . . : . : . . . : . . █\n",
+ "█ . ∴ . . . ∴ . . . ∴ . . . ∴ . █\n",
+ "█ . . . . = . . . . . = . . . . █\n",
+ "█ : . . = . . . : . . . = . . : █\n",
+ "█ . . = . . . : . : . . . = . . █\n",
+ "█ . = . . . ∴ . . . ∴ . . . = . █\n",
+ "█ ≡ . . : . . . ≡ . . . : . . ≡ █\n",
+ "█ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █\n",
+ "\"\"\".split(), bingo=50)\n",
+ "\n",
"SCRABBLE"
]
},
@@ -1323,7 +1671,7 @@
},
{
"cell_type": "code",
- "execution_count": 21,
+ "execution_count": 16,
"metadata": {
"button": false,
"collapsed": true,
@@ -1363,7 +1711,7 @@
},
{
"cell_type": "code",
- "execution_count": 22,
+ "execution_count": 17,
"metadata": {
"button": false,
"collapsed": false,
@@ -1377,95 +1725,320 @@
{
"data": {
"text/html": [
- " | | | TW | | | TL | | TL | | | TW | | | | | | DL | | | DW | | | | DW | | | DL | | | | DL | | | DL | | | | | | DL | | | DL | | TW | | | TL | | | | DW | | | | TL | | | TW | | | DL | | | | DL | | DL | | | | DL | | | | DW | | | | TL | | | | TL | | | | DW | B3 | TL | | | | DL | | | | | | DL | T1 | O1 | U1 | R1 | | G2 | | DW | | | | B3 | E1 | | C3 | DW | | | I1 | TL | A1 | | | M3 | | | | N1 | | H4 | E1 | A1 | R1 | D2 | | V4 | I1 | R1 | U1 | L1 | e | N1 | T1 | TL | I1 | | | DW | L1 | | E1 | DL | | S1 | | DL | | E1 | | L1 | Y4 | T1 | H4 | E1 | TW | | | TL | E1 | | | DW | R1 | E1 | D2 | TL | | | S1 | | DL | | | S1 | | | | | | R1 | | | DL | | | | DL | | | DW | | | | DW | E1 | | DL | | | | | | TW | | | TL | | TL | | N1 | TW | | | | "
+ " | | | TW | | | TL | | TL | | | TW | | | | | | DL | | | DW | | | | DW | | | DL | | | | DL | | | DL | | | | | | DL | | | DL | | TW | | | TL | | | | DW | | | | TL | | | TW | | | DL | | | | DL | | DL | | | | DL | | | | DW | | | | TL | | | | TL | | | | DW | B3 | TL | | | | DL | | | | | | DL | T1 | O1 | U1 | R1 | | G2 | | DW | | | | B3 | E1 | | C3 | DW | | | I1 | TL | A1 | | | M3 | | | | N1 | | H4 | E1 | A1 | R1 | D2 | | V4 | I1 | R1 | U1 | L1 | e | N1 | T1 | TL | I1 | | | DW | L1 | | E1 | DL | | S1 | | DL | | E1 | | L1 | | DL | | E1 | TW | | | TL | E1 | | | DW | R1 | E1 | D2 | TL | | | S1 | | DL | | | S1 | | | | | | R1 | | | DL | | | | DL | | | DW | | | | DW | E1 | | DL | | | | | | TW | | | TL | | TL | | N1 | TW | | | | "
],
"text/plain": [
- "['#',\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",
- " '=',\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",
- " '.',\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",
" '.',\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",
@@ -1481,26 +2054,26 @@
" ':',\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",
" 'B',\n",
- " '#',\n",
- " '#',\n",
- " ';',\n",
+ " '█',\n",
+ " '█',\n",
+ " '∴',\n",
" '.',\n",
" '.',\n",
" '.',\n",
@@ -1515,12 +2088,12 @@
" 'O',\n",
" 'U',\n",
" 'R',\n",
- " '#',\n",
- " '#',\n",
+ " '█',\n",
+ " '█',\n",
" '.',\n",
" 'G',\n",
" '.',\n",
- " '-',\n",
+ " '=',\n",
" '.',\n",
" '.',\n",
" '.',\n",
@@ -1528,13 +2101,13 @@
" 'E',\n",
" '.',\n",
" 'C',\n",
- " '-',\n",
+ " '=',\n",
" '.',\n",
" '.',\n",
" 'I',\n",
- " '#',\n",
- " '#',\n",
- " ';',\n",
+ " '█',\n",
+ " '█',\n",
+ " '∴',\n",
" 'A',\n",
" '.',\n",
" '.',\n",
@@ -1549,8 +2122,8 @@
" 'A',\n",
" 'R',\n",
" 'D',\n",
- " '#',\n",
- " '#',\n",
+ " '█',\n",
+ " '█',\n",
" '.',\n",
" 'V',\n",
" 'I',\n",
@@ -1560,14 +2133,14 @@
" 'e',\n",
" 'N',\n",
" 'T',\n",
- " ';',\n",
+ " '∴',\n",
" 'I',\n",
" '.',\n",
" '.',\n",
- " '-',\n",
+ " '=',\n",
" 'L',\n",
- " '#',\n",
- " '#',\n",
+ " '█',\n",
+ " '█',\n",
" '.',\n",
" 'E',\n",
" ':',\n",
@@ -1579,29 +2152,29 @@
" 'E',\n",
" '.',\n",
" 'L',\n",
- " 'Y',\n",
- " 'T',\n",
- " 'H',\n",
+ " '.',\n",
+ " ':',\n",
+ " '.',\n",
" 'E',\n",
- " '#',\n",
- " '#',\n",
+ " '█',\n",
+ " '█',\n",
+ " '≡',\n",
+ " '.',\n",
+ " '.',\n",
+ " '∴',\n",
+ " 'E',\n",
+ " '.',\n",
+ " '.',\n",
" '=',\n",
- " '.',\n",
- " '.',\n",
- " ';',\n",
- " 'E',\n",
- " '.',\n",
- " '.',\n",
- " '-',\n",
" 'R',\n",
" 'E',\n",
" 'D',\n",
- " ';',\n",
+ " '∴',\n",
" '.',\n",
" '.',\n",
" 'S',\n",
- " '#',\n",
- " '#',\n",
+ " '█',\n",
+ " '█',\n",
" '.',\n",
" ':',\n",
" '.',\n",
@@ -1617,61 +2190,61 @@
" '.',\n",
" ':',\n",
" '.',\n",
- " '#',\n",
- " '#',\n",
+ " '█',\n",
+ " '█',\n",
" '.',\n",
" '.',\n",
" ':',\n",
" '.',\n",
" '.',\n",
- " '-',\n",
+ " '=',\n",
" '.',\n",
" '.',\n",
" '.',\n",
- " '-',\n",
+ " '=',\n",
" 'E',\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",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#']"
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█']"
]
},
- "execution_count": 22,
+ "execution_count": 17,
"metadata": {},
"output_type": "execute_result"
}
@@ -1684,7 +2257,6 @@
" Play(158, DOWN, 'MUSES', ''),\n",
" Play(172, ACROSS, 'VIRULeNT', ''),\n",
" Play(213, ACROSS, 'RED', ''),\n",
- " Play(198, ACROSS, 'LYTHE', ''),\n",
" Play(147, DOWN, 'CHILDREN', ''),\n",
" Play(164, ACROSS, 'HEARD', ''),\n",
" Play(117, DOWN, 'BRIDLES', ''),\n",
@@ -1707,338 +2279,17 @@
}
},
"source": [
- "# Strategy for Finding Legal Plays\n",
+ "# Strategy for Finding All Legal Plays\n",
"\n",
"This is our strategy for finding all possible legal plays on a board:\n",
"\n",
"1. Find all *anchor squares* on the board. An anchor square is an empty square that is adjacent to a letter on the board—every legal move must place a letter on an anchor square. (One exception: on the game's first play, there are no letters on the board, and the `STAR` square in the center counts as the only anchor square.)\n",
- "2. Using just the letters in the rack, find all *prefixes* of words in the dictionary. For example, with the rack `ABC`, we find that `B`, `BA`, and `BAC` are all prefixes of the word `BACK` (and the rack contains other prefixes of other words as well).\n",
+ "2. Using just the letters in the rack, find all *prefixes* of words in the dictionary. For example, with the rack `ABC`, we find that `B`, `BA`, and `BAC` are all prefixes of the word `BACK` (and the rack contains other prefixes of other words as well, such as `CA` and `CAB`).\n",
"3. For each anchor square and for both directions (across and down):\n",
" - Try each prefix before the anchor (that is, to the left or above the anchor). Don't allow a prefix to extend to another anchor or off the board. That means we won't have to worry about *cross words* for the prefix. If there are already letters on the board before the anchor point, use them as the (only possible) prefix rather than using the prefixes from the rack. For each prefix that fits:\n",
- " - Starting at the anchor, march forward (or down) one square at a time, trying to fill empty squares with each possible letter from the rack that forms a valid prefix of a word in the dictionary. If the march forward hits letters that are already on the board, make sure they form a valid prefix too. Also check that any cross words are valid words. When we make a complete word (with an empty or `OFF` square ahead), yield the play that made the word.\n",
+ " - Starting at the anchor, march across (or down) one square at a time, trying to fill empty squares with each possible letter from the rack that forms a valid prefix of a word in the dictionary. If the march hits letters that are already on the board, make sure they form a valid prefix too. Also check that any cross words are valid words. When we make a complete word (with an empty or `OFF` square ahead), yield the play that made the word.\n",
" \n",
- "So, each legal play will have zero or more prefix letters (which either all come from the rack or all were already on the board), followed by one letter from the rack covering an anchor square, followed by zero or more additional letters (which can be a mix of letters from the rack and letters already on the board), followed by an empty or `OFF` square."
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {
- "button": false,
- "deletable": true,
- "new_sheet": false,
- "run_control": {
- "read_only": false
- }
- },
- "source": [
- "# Prefixes\n",
- "\n",
- "Here we define the set of all prefixes of all words in the dictionary, and investigate the set:"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 23,
- "metadata": {
- "button": false,
- "collapsed": true,
- "deletable": true,
- "new_sheet": false,
- "run_control": {
- "read_only": false
- }
- },
- "outputs": [],
- "source": [
- "def dict_prefixes(dictionary) -> set:\n",
- " \"The set of all prefixes of each word in a dictionary.\"\n",
- " return {word[:i] for word in dictionary for i in range(len(word))}\n",
- "\n",
- "PREFIXES = dict_prefixes(DICTIONARY)"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 24,
- "metadata": {
- "button": false,
- "collapsed": false,
- "deletable": true,
- "new_sheet": false,
- "run_control": {
- "read_only": false
- }
- },
- "outputs": [
- {
- "data": {
- "text/plain": [
- "276374"
- ]
- },
- "execution_count": 24,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
- "source": [
- "len(PREFIXES)"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 25,
- "metadata": {
- "collapsed": false
- },
- "outputs": [
- {
- "data": {
- "text/plain": [
- "1.5992014813100335"
- ]
- },
- "execution_count": 25,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
- "source": [
- "len(PREFIXES) / len(DICTIONARY)"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 26,
- "metadata": {
- "collapsed": false
- },
- "outputs": [
- {
- "data": {
- "text/plain": [
- "['TOASTM',\n",
- " 'SYNTAX',\n",
- " 'BOOGEYM',\n",
- " 'MASSAS',\n",
- " 'TONS',\n",
- " 'PYROT',\n",
- " 'ETHNOCENTRICIT',\n",
- " 'TROOPIA',\n",
- " 'EVENTFULNES',\n",
- " 'PENITENTIA']"
- ]
- },
- "execution_count": 26,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
- "source": [
- "random.sample(PREFIXES, 10)"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {
- "button": false,
- "deletable": true,
- "new_sheet": false,
- "run_control": {
- "read_only": false
- }
- },
- "source": [
- "Here are all the prefixes from a tiny dictionary of three words. Note that the empty string is a prefix, and we include `HELP` because it is a prefix of `HELPER`, but we don't include `HELPER`, because there is no letter we can add to `HELPER` to make a word in this dictionary:"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 27,
- "metadata": {
- "button": false,
- "collapsed": false,
- "deletable": true,
- "new_sheet": false,
- "run_control": {
- "read_only": false
- }
- },
- "outputs": [
- {
- "data": {
- "text/plain": [
- "{'', 'H', 'HE', 'HEL', 'HELL', 'HELP', 'HELPE'}"
- ]
- },
- "execution_count": 27,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
- "source": [
- "dict_prefixes({'HELLO', 'HELP', 'HELPER'})"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {
- "button": false,
- "deletable": true,
- "new_sheet": false,
- "run_control": {
- "read_only": false
- }
- },
- "source": [
- "The function `rack_prefixes` gives the set of prefixes that can be made just from the letters in the rack. Most of the work is done by `extend_prefixes`, which accumulates a set of prefixes into `results`:"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 28,
- "metadata": {
- "button": false,
- "collapsed": true,
- "deletable": true,
- "new_sheet": false,
- "run_control": {
- "read_only": false
- }
- },
- "outputs": [],
- "source": [
- "def rack_prefixes(rack) -> set: \n",
- " \"All word prefixes that can be made by the rack.\"\n",
- " return extend_prefixes('', rack, set())\n",
- "\n",
- "def extend_prefixes(prefix, rack, results) -> set:\n",
- " if prefix.upper() in PREFIXES:\n",
- " results.add(prefix)\n",
- " for L in letters(rack):\n",
- " extend_prefixes(prefix+L, remove(L, rack), results)\n",
- " return results"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 29,
- "metadata": {
- "button": false,
- "collapsed": false,
- "deletable": true,
- "new_sheet": false,
- "run_control": {
- "read_only": false
- }
- },
- "outputs": [
- {
- "data": {
- "text/plain": [
- "{'', 'A', 'AB', 'AC', 'B', 'BA', 'BAC', 'C', 'CA', 'CAB'}"
- ]
- },
- "execution_count": 29,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
- "source": [
- "rack = 'ABC'\n",
- "rack_prefixes(rack)"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {
- "button": false,
- "deletable": true,
- "new_sheet": false,
- "run_control": {
- "read_only": false
- }
- },
- "source": [
- "The number of prefixes in a rack is usually on the order of a hundred, unless there is a blank in the rack:"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 30,
- "metadata": {
- "button": false,
- "collapsed": false,
- "deletable": true,
- "new_sheet": false,
- "run_control": {
- "read_only": false
- }
- },
- "outputs": [
- {
- "data": {
- "text/plain": [
- "155"
- ]
- },
- "execution_count": 30,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
- "source": [
- "len(rack_prefixes('LETTERS'))"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 31,
- "metadata": {
- "collapsed": false
- },
- "outputs": [
- {
- "data": {
- "text/plain": [
- "120"
- ]
- },
- "execution_count": 31,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
- "source": [
- "len(rack_prefixes('HJRIPUM'))"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 32,
- "metadata": {
- "button": false,
- "collapsed": false,
- "deletable": true,
- "new_sheet": false,
- "run_control": {
- "read_only": false
- }
- },
- "outputs": [
- {
- "data": {
- "text/plain": [
- "1590"
- ]
- },
- "execution_count": 32,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
- "source": [
- "len(rack_prefixes('LETTER_'))"
+ "So, each legal play will have zero or more prefix letters (which either all come from the rack or all were already on the board), followed by one letter from the rack covering an anchor square, followed by zero or more additional letters (which can be a mix of letters from the rack and letters already on the board). A legal play must be proceeded and followed by either an empty or `OFF` square."
]
},
{
@@ -2059,7 +2310,7 @@
},
{
"cell_type": "code",
- "execution_count": 33,
+ "execution_count": 18,
"metadata": {
"button": false,
"collapsed": false,
@@ -2083,7 +2334,7 @@
},
{
"cell_type": "code",
- "execution_count": 34,
+ "execution_count": 19,
"metadata": {
"button": false,
"collapsed": false,
@@ -2100,7 +2351,7 @@
"[144]"
]
},
- "execution_count": 34,
+ "execution_count": 19,
"metadata": {},
"output_type": "execute_result"
}
@@ -2121,14 +2372,35 @@
}
},
"source": [
- "# Plays on Example Board\n",
+ "# Prefixes\n",
"\n",
- "Let's work through the process of finding plays on the example `board`. First, we'll find all the anchors:"
+ "Here we define the set of all prefixes of all words in the dictionary, and investigate the set:"
]
},
{
"cell_type": "code",
- "execution_count": 35,
+ "execution_count": 20,
+ "metadata": {
+ "button": false,
+ "collapsed": true,
+ "deletable": true,
+ "new_sheet": false,
+ "run_control": {
+ "read_only": false
+ }
+ },
+ "outputs": [],
+ "source": [
+ "def dict_prefixes(dictionary) -> set:\n",
+ " \"The set of all prefixes of each word in a dictionary.\"\n",
+ " return {word[:i] for word in dictionary for i in range(len(word))}\n",
+ "\n",
+ "PREFIXES = dict_prefixes(DICTIONARY)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 21,
"metadata": {
"button": false,
"collapsed": false,
@@ -2142,10 +2414,347 @@
{
"data": {
"text/plain": [
- "53"
+ "276374"
]
},
- "execution_count": 35,
+ "execution_count": 21,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "len(PREFIXES)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 22,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "['REDRAWER',\n",
+ " 'TRIVE',\n",
+ " 'MENT',\n",
+ " 'CORPO',\n",
+ " 'TALESME',\n",
+ " 'DAVENPO',\n",
+ " 'TEMPORIZATIO',\n",
+ " 'PLURA',\n",
+ " 'CRUP',\n",
+ " 'SPOOR']"
+ ]
+ },
+ "execution_count": 22,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "random.sample(PREFIXES, 10)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "button": false,
+ "deletable": true,
+ "new_sheet": false,
+ "run_control": {
+ "read_only": false
+ }
+ },
+ "source": [
+ "Here are all the prefixes from a tiny dictionary of three words. Note that the empty string is a prefix, and `HELP` is included because it is a prefix of `HELPER`, but `HELPER` is not included because there is no letter we can add to `HELPER` to make a word in this dictionary:"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 23,
+ "metadata": {
+ "button": false,
+ "collapsed": false,
+ "deletable": true,
+ "new_sheet": false,
+ "run_control": {
+ "read_only": false
+ }
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "{'', 'H', 'HE', 'HEL', 'HELL', 'HELP', 'HELPE'}"
+ ]
+ },
+ "execution_count": 23,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "dict_prefixes({'HELLO', 'HELP', 'HELPER'})"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "button": false,
+ "deletable": true,
+ "new_sheet": false,
+ "run_control": {
+ "read_only": false
+ }
+ },
+ "source": [
+ "The function `rack_prefixes` gives the set of prefixes that can be made just from the letters in the rack (returning them in shortest-first order). Most of the work is done by `extend_prefixes`, which accumulates a set of prefixes into `results`. The function `remove(tiles, rack)` removes letters from a rack (after they have been played)."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 24,
+ "metadata": {
+ "button": false,
+ "collapsed": true,
+ "deletable": true,
+ "new_sheet": false,
+ "run_control": {
+ "read_only": false
+ }
+ },
+ "outputs": [],
+ "source": [
+ "def rack_prefixes(rack) -> set: \n",
+ " \"All word prefixes that can be made by the rack.\"\n",
+ " return sorted(set(extend_prefixes('', rack, set())), key=len)\n",
+ "\n",
+ "def extend_prefixes(prefix, rack, results) -> set:\n",
+ " \"Add possible prefixes to `results`.\"\n",
+ " if prefix.upper() in PREFIXES:\n",
+ " results.add(prefix)\n",
+ " for L in letters(rack):\n",
+ " extend_prefixes(prefix+L, remove(L, rack), results)\n",
+ " return results\n",
+ "\n",
+ "def remove(tiles, rack) -> str:\n",
+ " \"Return a copy of rack with the given tile(s) removed.\"\n",
+ " for tile in tiles:\n",
+ " if tile.islower(): tile = BLANK\n",
+ " rack = rack.replace(tile, '', 1)\n",
+ " return rack"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 25,
+ "metadata": {
+ "button": false,
+ "collapsed": false,
+ "deletable": true,
+ "new_sheet": false,
+ "run_control": {
+ "read_only": false
+ }
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "['', 'A', 'B', 'C', 'BA', 'AB', 'CA', 'AC', 'CAB', 'BAC']"
+ ]
+ },
+ "execution_count": 25,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "rack = 'ABC'\n",
+ "rack_prefixes(rack)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "button": false,
+ "deletable": true,
+ "new_sheet": false,
+ "run_control": {
+ "read_only": false
+ }
+ },
+ "source": [
+ "The number of prefixes in a rack is usually on the order of a hundred or two:"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 26,
+ "metadata": {
+ "button": false,
+ "collapsed": false,
+ "deletable": true,
+ "new_sheet": false,
+ "run_control": {
+ "read_only": false
+ }
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "155"
+ ]
+ },
+ "execution_count": 26,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "len(rack_prefixes('LETTERS'))"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 27,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "196"
+ ]
+ },
+ "execution_count": 27,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "len(rack_prefixes('ERYINNA'))"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 28,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "178"
+ ]
+ },
+ "execution_count": 28,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "len(rack_prefixes('XNMNAIE'))"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "Unless there is a blank in the rack, in which case it is more like a thousand or two:"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 29,
+ "metadata": {
+ "button": false,
+ "collapsed": false,
+ "deletable": true,
+ "new_sheet": false,
+ "run_control": {
+ "read_only": false
+ }
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "1590"
+ ]
+ },
+ "execution_count": 29,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "len(rack_prefixes('LETTER_'))"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 30,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "1809"
+ ]
+ },
+ "execution_count": 30,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "len(rack_prefixes('ERYINN_'))"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "button": false,
+ "deletable": true,
+ "new_sheet": false,
+ "run_control": {
+ "read_only": false
+ }
+ },
+ "source": [
+ "# Plays on Example Board\n",
+ "\n",
+ "Let's work through the process of finding plays on the example `board`. First, we'll find all the anchors:"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 31,
+ "metadata": {
+ "button": false,
+ "collapsed": false,
+ "deletable": true,
+ "new_sheet": false,
+ "run_control": {
+ "read_only": false
+ }
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "54"
+ ]
+ },
+ "execution_count": 31,
"metadata": {},
"output_type": "execute_result"
}
@@ -2171,7 +2780,7 @@
},
{
"cell_type": "code",
- "execution_count": 36,
+ "execution_count": 32,
"metadata": {
"button": false,
"collapsed": false,
@@ -2185,95 +2794,320 @@
{
"data": {
"text/html": [
- " | | | TW | | | TL | | TL | | | TW | | | | | | DL | | | DW | | | | DW | | | DL | | | | DL | | | DL | | | | | | DL | | | DL | | TW | | | TL | | | | DW | | | | TL | | | TW | | | DL | | | | DL | | DL | | | | DL | | ✭ | | DW | | | | TL | | | | TL | | ✭ | ✭ | ✭ | B3 | TL | ✭ | | | DL | | | ✭ | ✭ | | ✭ | T1 | O1 | U1 | R1 | ✭ | G2 | ✭ | DW | ✭ | | ✭ | B3 | E1 | ✭ | C3 | ✭ | ✭ | ✭ | I1 | ✭ | A1 | ✭ | ✭ | M3 | ✭ | ✭ | ✭ | N1 | ✭ | H4 | E1 | A1 | R1 | D2 | ✭ | V4 | I1 | R1 | U1 | L1 | e | N1 | T1 | ✭ | I1 | ✭ | ✭ | ✭ | L1 | ✭ | E1 | ✭ | ✭ | S1 | ✭ | ✭ | ✭ | E1 | ✭ | L1 | Y4 | T1 | H4 | E1 | TW | ✭ | | ✭ | E1 | ✭ | | ✭ | R1 | E1 | D2 | ✭ | ✭ | ✭ | S1 | | DL | | ✭ | S1 | ✭ | | | ✭ | ✭ | R1 | ✭ | | DL | ✭ | | | DL | | ✭ | DW | | | | ✭ | E1 | ✭ | DL | | | | | | TW | | | TL | | TL | ✭ | N1 | ✭ | | | | "
+ " | | | TW | | | TL | | TL | | | TW | | | | | | DL | | | DW | | | | DW | | | DL | | | | DL | | | DL | | | | | | DL | | | DL | | TW | | | TL | | | | DW | | | | TL | | | TW | | | DL | | | | DL | | DL | | | | DL | | ✭ | | DW | | | | TL | | | | TL | | ✭ | ✭ | ✭ | B3 | TL | ✭ | | | DL | | | ✭ | ✭ | | ✭ | T1 | O1 | U1 | R1 | ✭ | G2 | ✭ | DW | ✭ | | ✭ | B3 | E1 | ✭ | C3 | ✭ | ✭ | ✭ | I1 | ✭ | A1 | ✭ | ✭ | M3 | ✭ | ✭ | ✭ | N1 | ✭ | H4 | E1 | A1 | R1 | D2 | ✭ | V4 | I1 | R1 | U1 | L1 | e | N1 | T1 | ✭ | I1 | ✭ | ✭ | ✭ | L1 | ✭ | E1 | ✭ | ✭ | S1 | ✭ | ✭ | ✭ | E1 | ✭ | L1 | ✭ | DL | ✭ | E1 | TW | ✭ | | ✭ | E1 | ✭ | | ✭ | R1 | E1 | D2 | ✭ | | ✭ | S1 | | DL | | ✭ | S1 | ✭ | | | ✭ | ✭ | R1 | ✭ | | DL | ✭ | | | DL | | ✭ | DW | | | | ✭ | E1 | ✭ | DL | | | | | | TW | | | TL | | TL | ✭ | N1 | ✭ | | | | "
],
"text/plain": [
- "['#',\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",
- " '=',\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",
- " '.',\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",
" '.',\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",
@@ -2289,26 +3123,26 @@
" ':',\n",
" '.',\n",
" '*',\n",
- " '#',\n",
- " '#',\n",
+ " '█',\n",
+ " '█',\n",
" '.',\n",
- " '-',\n",
+ " '=',\n",
" '.',\n",
" '.',\n",
" '.',\n",
- " ';',\n",
+ " '∴',\n",
" '.',\n",
" '.',\n",
" '.',\n",
- " ';',\n",
+ " '∴',\n",
" '.',\n",
" '*',\n",
" '*',\n",
" '*',\n",
" 'B',\n",
- " '#',\n",
- " '#',\n",
- " ';',\n",
+ " '█',\n",
+ " '█',\n",
+ " '∴',\n",
" '*',\n",
" '.',\n",
" '.',\n",
@@ -2323,12 +3157,12 @@
" 'O',\n",
" 'U',\n",
" 'R',\n",
- " '#',\n",
- " '#',\n",
+ " '█',\n",
+ " '█',\n",
" '*',\n",
" 'G',\n",
" '*',\n",
- " '-',\n",
+ " '=',\n",
" '*',\n",
" '.',\n",
" '*',\n",
@@ -2340,8 +3174,8 @@
" '*',\n",
" '*',\n",
" 'I',\n",
- " '#',\n",
- " '#',\n",
+ " '█',\n",
+ " '█',\n",
" '*',\n",
" 'A',\n",
" '*',\n",
@@ -2357,8 +3191,8 @@
" 'A',\n",
" 'R',\n",
" 'D',\n",
- " '#',\n",
- " '#',\n",
+ " '█',\n",
+ " '█',\n",
" '*',\n",
" 'V',\n",
" 'I',\n",
@@ -2374,8 +3208,8 @@
" '*',\n",
" '*',\n",
" 'L',\n",
- " '#',\n",
- " '#',\n",
+ " '█',\n",
+ " '█',\n",
" '*',\n",
" 'E',\n",
" '*',\n",
@@ -2387,13 +3221,13 @@
" 'E',\n",
" '*',\n",
" 'L',\n",
- " 'Y',\n",
- " 'T',\n",
- " 'H',\n",
+ " '*',\n",
+ " ':',\n",
+ " '*',\n",
" 'E',\n",
- " '#',\n",
- " '#',\n",
- " '=',\n",
+ " '█',\n",
+ " '█',\n",
+ " '≡',\n",
" '*',\n",
" '.',\n",
" '*',\n",
@@ -2405,11 +3239,11 @@
" 'E',\n",
" 'D',\n",
" '*',\n",
- " '*',\n",
+ " '.',\n",
" '*',\n",
" 'S',\n",
- " '#',\n",
- " '#',\n",
+ " '█',\n",
+ " '█',\n",
" '.',\n",
" ':',\n",
" '.',\n",
@@ -2425,14 +3259,14 @@
" '.',\n",
" ':',\n",
" '*',\n",
- " '#',\n",
- " '#',\n",
+ " '█',\n",
+ " '█',\n",
" '.',\n",
" '.',\n",
" ':',\n",
" '.',\n",
" '*',\n",
- " '-',\n",
+ " '=',\n",
" '.',\n",
" '.',\n",
" '.',\n",
@@ -2442,44 +3276,44 @@
" ':',\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",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#']"
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█']"
]
},
- "execution_count": 36,
+ "execution_count": 32,
"metadata": {},
"output_type": "execute_result"
}
@@ -2487,7 +3321,7 @@
"source": [
"board2 = Board(board)\n",
"for a in anchors:\n",
- " board2[a] = STAR\n",
+ " board2[a] = STAR\n",
" \n",
"board2"
]
@@ -2508,7 +3342,7 @@
},
{
"cell_type": "code",
- "execution_count": 37,
+ "execution_count": 33,
"metadata": {
"button": false,
"collapsed": false,
@@ -2525,7 +3359,7 @@
"88"
]
},
- "execution_count": 37,
+ "execution_count": 33,
"metadata": {},
"output_type": "execute_result"
}
@@ -2539,7 +3373,7 @@
},
{
"cell_type": "code",
- "execution_count": 38,
+ "execution_count": 34,
"metadata": {
"button": false,
"collapsed": false,
@@ -2553,10 +3387,10 @@
{
"data": {
"text/plain": [
- "' BANQ BH KANB KAC HACK ACK QAN BAH CAB CHAB BAN HACKB NA CH KHAN CAH AH ANKH H BHA CHAK CANK BAC KAH NAK KBA CN ABH ANK QA HAN NACH Q CAN BA BAK K HAC A AQ HAK BHAK CA NAB NAC AB BHAN KNAC C AK CHA KA HANK HACKN ACQ HANC N B ANC BANK KN HA KAN BACH CHAQ BACKH AN ABN KAB KACH KB AHC CHAN CAK BANKC BACK ANH KH ACKN AC BANC KNA KHA HAB ANCH ACH ACN'"
+ "' C H Q K A B N BA CA BH KH CN KB KA KN AB AQ CH NA AC HA AN AH AK QA CHA KAC KAN HAK KNA KAB BAH BHA CAB ANK AHC ABH HAC ANC KBA KAH CAK CAH NAC ACQ BAK ACN KHA NAK BAC CAN HAN ANH ACK NAB HAB ABN QAN BAN ACH ACKN HANK BANC KANB CHAN CHAK CANK NACH KACH BACH KNAC HANC KHAN HACK BACK BHAN ANCH ANKH CHAB BANQ BANK CHAQ BHAK HACKB BANKC BACKH HACKN'"
]
},
- "execution_count": 38,
+ "execution_count": 34,
"metadata": {},
"output_type": "execute_result"
}
@@ -2581,7 +3415,7 @@
},
{
"cell_type": "code",
- "execution_count": 39,
+ "execution_count": 35,
"metadata": {
"button": false,
"collapsed": false,
@@ -2595,95 +3429,320 @@
{
"data": {
"text/html": [
- " | | | TW | | | TL | | TL | | | TW | | | | | | DL | | | DW | | | | DW | | | DL | | | | DL | | | DL | | | | | | DL | | | DL | | TW | | | TL | | | | DW | | | | TL | | | TW | | | DL | | | | DL | | DL | | | | DL | | | | DW | | | | TL | | | | TL | | | | DW | B3 | TL | | | | DL | | | | | | DL | T1 | O1 | U1 | R1 | | G2 | | DW | ✭ | | | B3 | E1 | | C3 | DW | | | I1 | TL | A1 | | | M3 | | | | N1 | | H4 | E1 | A1 | R1 | D2 | | V4 | I1 | R1 | U1 | L1 | e | N1 | T1 | TL | I1 | | | DW | L1 | | E1 | DL | | S1 | | DL | | E1 | | L1 | Y4 | T1 | H4 | E1 | TW | | | TL | E1 | | | DW | R1 | E1 | D2 | TL | | | S1 | | DL | | | S1 | | | | | | R1 | | | DL | | | | DL | | | DW | | | | DW | E1 | | DL | | | | | | TW | | | TL | | TL | | N1 | TW | | | | "
+ " | | | TW | | | TL | | TL | | | TW | | | | | | DL | | | DW | | | | DW | | | DL | | | | DL | | | DL | | | | | | DL | | | DL | | TW | | | TL | | | | DW | | | | TL | | | TW | | | DL | | | | DL | | DL | | | | DL | | | | DW | | | | TL | | | | TL | | | | DW | B3 | TL | | | | DL | | | | | | DL | T1 | O1 | U1 | R1 | | G2 | | DW | ✭ | | | B3 | E1 | | C3 | DW | | | I1 | TL | A1 | | | M3 | | | | N1 | | H4 | E1 | A1 | R1 | D2 | | V4 | I1 | R1 | U1 | L1 | e | N1 | T1 | TL | I1 | | | DW | L1 | | E1 | DL | | S1 | | DL | | E1 | | L1 | | DL | | E1 | TW | | | TL | E1 | | | DW | R1 | E1 | D2 | TL | | | S1 | | DL | | | S1 | | | | | | R1 | | | DL | | | | DL | | | DW | | | | DW | E1 | | DL | | | | | | TW | | | TL | | TL | | N1 | TW | | | | "
],
"text/plain": [
- "['#',\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",
- " '=',\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",
- " '.',\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",
" '.',\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",
@@ -2699,26 +3758,26 @@
" ':',\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",
" 'B',\n",
- " '#',\n",
- " '#',\n",
- " ';',\n",
+ " '█',\n",
+ " '█',\n",
+ " '∴',\n",
" '.',\n",
" '.',\n",
" '.',\n",
@@ -2733,12 +3792,12 @@
" 'O',\n",
" 'U',\n",
" 'R',\n",
- " '#',\n",
- " '#',\n",
+ " '█',\n",
+ " '█',\n",
" '.',\n",
" 'G',\n",
" '.',\n",
- " '-',\n",
+ " '=',\n",
" '*',\n",
" '.',\n",
" '.',\n",
@@ -2746,13 +3805,13 @@
" 'E',\n",
" '.',\n",
" 'C',\n",
- " '-',\n",
+ " '=',\n",
" '.',\n",
" '.',\n",
" 'I',\n",
- " '#',\n",
- " '#',\n",
- " ';',\n",
+ " '█',\n",
+ " '█',\n",
+ " '∴',\n",
" 'A',\n",
" '.',\n",
" '.',\n",
@@ -2767,8 +3826,8 @@
" 'A',\n",
" 'R',\n",
" 'D',\n",
- " '#',\n",
- " '#',\n",
+ " '█',\n",
+ " '█',\n",
" '.',\n",
" 'V',\n",
" 'I',\n",
@@ -2778,14 +3837,14 @@
" 'e',\n",
" 'N',\n",
" 'T',\n",
- " ';',\n",
+ " '∴',\n",
" 'I',\n",
" '.',\n",
" '.',\n",
- " '-',\n",
+ " '=',\n",
" 'L',\n",
- " '#',\n",
- " '#',\n",
+ " '█',\n",
+ " '█',\n",
" '.',\n",
" 'E',\n",
" ':',\n",
@@ -2797,29 +3856,29 @@
" 'E',\n",
" '.',\n",
" 'L',\n",
- " 'Y',\n",
- " 'T',\n",
- " 'H',\n",
+ " '.',\n",
+ " ':',\n",
+ " '.',\n",
" 'E',\n",
- " '#',\n",
- " '#',\n",
+ " '█',\n",
+ " '█',\n",
+ " '≡',\n",
+ " '.',\n",
+ " '.',\n",
+ " '∴',\n",
+ " 'E',\n",
+ " '.',\n",
+ " '.',\n",
" '=',\n",
- " '.',\n",
- " '.',\n",
- " ';',\n",
- " 'E',\n",
- " '.',\n",
- " '.',\n",
- " '-',\n",
" 'R',\n",
" 'E',\n",
" 'D',\n",
- " ';',\n",
+ " '∴',\n",
" '.',\n",
" '.',\n",
" 'S',\n",
- " '#',\n",
- " '#',\n",
+ " '█',\n",
+ " '█',\n",
" '.',\n",
" ':',\n",
" '.',\n",
@@ -2835,61 +3894,61 @@
" '.',\n",
" ':',\n",
" '.',\n",
- " '#',\n",
- " '#',\n",
+ " '█',\n",
+ " '█',\n",
" '.',\n",
" '.',\n",
" ':',\n",
" '.',\n",
" '.',\n",
- " '-',\n",
+ " '=',\n",
" '.',\n",
" '.',\n",
" '.',\n",
- " '-',\n",
+ " '=',\n",
" 'E',\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",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#']"
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█']"
]
},
- "execution_count": 39,
+ "execution_count": 35,
"metadata": {},
"output_type": "execute_result"
}
@@ -2917,7 +3976,7 @@
},
{
"cell_type": "code",
- "execution_count": 40,
+ "execution_count": 36,
"metadata": {
"button": false,
"collapsed": false,
@@ -2931,95 +3990,320 @@
{
"data": {
"text/html": [
- " | | | TW | | | TL | | TL | | | TW | | | | | | DL | | | DW | | | | DW | | | DL | | | | DL | | | DL | | | | | | DL | | | DL | | TW | | | TL | | | | DW | | | | TL | | | TW | | | DL | | | | DL | | DL | | | | DL | | | | DW | | | | TL | | | | TL | | | | DW | B3 | TL | | | | DL | | | | | | DL | T1 | O1 | U1 | R1 | | G2 | | B3 | ✭ | | | B3 | E1 | | C3 | DW | | | I1 | TL | A1 | | | M3 | | | | N1 | | H4 | E1 | A1 | R1 | D2 | | V4 | I1 | R1 | U1 | L1 | e | N1 | T1 | TL | I1 | | | DW | L1 | | E1 | DL | | S1 | | DL | | E1 | | L1 | Y4 | T1 | H4 | E1 | TW | | | TL | E1 | | | DW | R1 | E1 | D2 | TL | | | S1 | | DL | | | S1 | | | | | | R1 | | | DL | | | | DL | | | DW | | | | DW | E1 | | DL | | | | | | TW | | | TL | | TL | | N1 | TW | | | | "
+ " | | | TW | | | TL | | TL | | | TW | | | | | | DL | | | DW | | | | DW | | | DL | | | | DL | | | DL | | | | | | DL | | | DL | | TW | | | TL | | | | DW | | | | TL | | | TW | | | DL | | | | DL | | DL | | | | DL | | | | DW | | | | TL | | | | TL | | | | DW | B3 | TL | | | | DL | | | | | | DL | T1 | O1 | U1 | R1 | | G2 | | B3 | ✭ | | | B3 | E1 | | C3 | DW | | | I1 | TL | A1 | | | M3 | | | | N1 | | H4 | E1 | A1 | R1 | D2 | | V4 | I1 | R1 | U1 | L1 | e | N1 | T1 | TL | I1 | | | DW | L1 | | E1 | DL | | S1 | | DL | | E1 | | L1 | | DL | | E1 | TW | | | TL | E1 | | | DW | R1 | E1 | D2 | TL | | | S1 | | DL | | | S1 | | | | | | R1 | | | DL | | | | DL | | | DW | | | | DW | E1 | | DL | | | | | | TW | | | TL | | TL | | N1 | TW | | | | "
],
"text/plain": [
- "['#',\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",
- " '=',\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",
- " '.',\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",
" '.',\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",
@@ -3035,26 +4319,26 @@
" ':',\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",
" 'B',\n",
- " '#',\n",
- " '#',\n",
- " ';',\n",
+ " '█',\n",
+ " '█',\n",
+ " '∴',\n",
" '.',\n",
" '.',\n",
" '.',\n",
@@ -3069,8 +4353,8 @@
" 'O',\n",
" 'U',\n",
" 'R',\n",
- " '#',\n",
- " '#',\n",
+ " '█',\n",
+ " '█',\n",
" '.',\n",
" 'G',\n",
" '.',\n",
@@ -3082,13 +4366,13 @@
" 'E',\n",
" '.',\n",
" 'C',\n",
- " '-',\n",
+ " '=',\n",
" '.',\n",
" '.',\n",
" 'I',\n",
- " '#',\n",
- " '#',\n",
- " ';',\n",
+ " '█',\n",
+ " '█',\n",
+ " '∴',\n",
" 'A',\n",
" '.',\n",
" '.',\n",
@@ -3103,8 +4387,8 @@
" 'A',\n",
" 'R',\n",
" 'D',\n",
- " '#',\n",
- " '#',\n",
+ " '█',\n",
+ " '█',\n",
" '.',\n",
" 'V',\n",
" 'I',\n",
@@ -3114,14 +4398,14 @@
" 'e',\n",
" 'N',\n",
" 'T',\n",
- " ';',\n",
+ " '∴',\n",
" 'I',\n",
" '.',\n",
" '.',\n",
- " '-',\n",
+ " '=',\n",
" 'L',\n",
- " '#',\n",
- " '#',\n",
+ " '█',\n",
+ " '█',\n",
" '.',\n",
" 'E',\n",
" ':',\n",
@@ -3133,29 +4417,29 @@
" 'E',\n",
" '.',\n",
" 'L',\n",
- " 'Y',\n",
- " 'T',\n",
- " 'H',\n",
+ " '.',\n",
+ " ':',\n",
+ " '.',\n",
" 'E',\n",
- " '#',\n",
- " '#',\n",
+ " '█',\n",
+ " '█',\n",
+ " '≡',\n",
+ " '.',\n",
+ " '.',\n",
+ " '∴',\n",
+ " 'E',\n",
+ " '.',\n",
+ " '.',\n",
" '=',\n",
- " '.',\n",
- " '.',\n",
- " ';',\n",
- " 'E',\n",
- " '.',\n",
- " '.',\n",
- " '-',\n",
" 'R',\n",
" 'E',\n",
" 'D',\n",
- " ';',\n",
+ " '∴',\n",
" '.',\n",
" '.',\n",
" 'S',\n",
- " '#',\n",
- " '#',\n",
+ " '█',\n",
+ " '█',\n",
" '.',\n",
" ':',\n",
" '.',\n",
@@ -3171,61 +4455,61 @@
" '.',\n",
" ':',\n",
" '.',\n",
- " '#',\n",
- " '#',\n",
+ " '█',\n",
+ " '█',\n",
" '.',\n",
" '.',\n",
" ':',\n",
" '.',\n",
" '.',\n",
- " '-',\n",
+ " '=',\n",
" '.',\n",
" '.',\n",
" '.',\n",
- " '-',\n",
+ " '=',\n",
" 'E',\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",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#']"
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█']"
]
},
- "execution_count": 40,
+ "execution_count": 36,
"metadata": {},
"output_type": "execute_result"
}
@@ -3251,7 +4535,7 @@
},
{
"cell_type": "code",
- "execution_count": 41,
+ "execution_count": 37,
"metadata": {
"button": false,
"collapsed": false,
@@ -3265,95 +4549,320 @@
{
"data": {
"text/html": [
- " | | | TW | | | TL | | TL | | | TW | | | | | | DL | | | DW | | | | DW | | | DL | | | | DL | | | DL | | | | | | DL | | | DL | | TW | | | TL | | | | DW | | | | TL | | | TW | | | DL | | | | DL | | DL | | | | DL | | | | DW | | | | TL | | | | TL | | | | DW | B3 | TL | | | | DL | | | | | | DL | T1 | O1 | U1 | R1 | | G2 | | B3 | A1 | | | B3 | E1 | | C3 | DW | | | I1 | TL | A1 | | | M3 | | | | N1 | | H4 | E1 | A1 | R1 | D2 | | V4 | I1 | R1 | U1 | L1 | e | N1 | T1 | TL | I1 | | | DW | L1 | | E1 | DL | | S1 | | DL | | E1 | | L1 | Y4 | T1 | H4 | E1 | TW | | | TL | E1 | | | DW | R1 | E1 | D2 | TL | | | S1 | | DL | | | S1 | | | | | | R1 | | | DL | | | | DL | | | DW | | | | DW | E1 | | DL | | | | | | TW | | | TL | | TL | | N1 | TW | | | | "
+ " | | | TW | | | TL | | TL | | | TW | | | | | | DL | | | DW | | | | DW | | | DL | | | | DL | | | DL | | | | | | DL | | | DL | | TW | | | TL | | | | DW | | | | TL | | | TW | | | DL | | | | DL | | DL | | | | DL | | | | DW | | | | TL | | | | TL | | | | DW | B3 | TL | | | | DL | | | | | | DL | T1 | O1 | U1 | R1 | | G2 | | B3 | A1 | | | B3 | E1 | | C3 | DW | | | I1 | TL | A1 | | | M3 | | | | N1 | | H4 | E1 | A1 | R1 | D2 | | V4 | I1 | R1 | U1 | L1 | e | N1 | T1 | TL | I1 | | | DW | L1 | | E1 | DL | | S1 | | DL | | E1 | | L1 | | DL | | E1 | TW | | | TL | E1 | | | DW | R1 | E1 | D2 | TL | | | S1 | | DL | | | S1 | | | | | | R1 | | | DL | | | | DL | | | DW | | | | DW | E1 | | DL | | | | | | TW | | | TL | | TL | | N1 | TW | | | | "
],
"text/plain": [
- "['#',\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",
- " '=',\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",
- " '.',\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",
" '.',\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",
@@ -3369,26 +4878,26 @@
" ':',\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",
" 'B',\n",
- " '#',\n",
- " '#',\n",
- " ';',\n",
+ " '█',\n",
+ " '█',\n",
+ " '∴',\n",
" '.',\n",
" '.',\n",
" '.',\n",
@@ -3403,8 +4912,8 @@
" 'O',\n",
" 'U',\n",
" 'R',\n",
- " '#',\n",
- " '#',\n",
+ " '█',\n",
+ " '█',\n",
" '.',\n",
" 'G',\n",
" '.',\n",
@@ -3416,13 +4925,13 @@
" 'E',\n",
" '.',\n",
" 'C',\n",
- " '-',\n",
+ " '=',\n",
" '.',\n",
" '.',\n",
" 'I',\n",
- " '#',\n",
- " '#',\n",
- " ';',\n",
+ " '█',\n",
+ " '█',\n",
+ " '∴',\n",
" 'A',\n",
" '.',\n",
" '.',\n",
@@ -3437,8 +4946,8 @@
" 'A',\n",
" 'R',\n",
" 'D',\n",
- " '#',\n",
- " '#',\n",
+ " '█',\n",
+ " '█',\n",
" '.',\n",
" 'V',\n",
" 'I',\n",
@@ -3448,14 +4957,14 @@
" 'e',\n",
" 'N',\n",
" 'T',\n",
- " ';',\n",
+ " '∴',\n",
" 'I',\n",
" '.',\n",
" '.',\n",
- " '-',\n",
+ " '=',\n",
" 'L',\n",
- " '#',\n",
- " '#',\n",
+ " '█',\n",
+ " '█',\n",
" '.',\n",
" 'E',\n",
" ':',\n",
@@ -3467,29 +4976,29 @@
" 'E',\n",
" '.',\n",
" 'L',\n",
- " 'Y',\n",
- " 'T',\n",
- " 'H',\n",
+ " '.',\n",
+ " ':',\n",
+ " '.',\n",
" 'E',\n",
- " '#',\n",
- " '#',\n",
+ " '█',\n",
+ " '█',\n",
+ " '≡',\n",
+ " '.',\n",
+ " '.',\n",
+ " '∴',\n",
+ " 'E',\n",
+ " '.',\n",
+ " '.',\n",
" '=',\n",
- " '.',\n",
- " '.',\n",
- " ';',\n",
- " 'E',\n",
- " '.',\n",
- " '.',\n",
- " '-',\n",
" 'R',\n",
" 'E',\n",
" 'D',\n",
- " ';',\n",
+ " '∴',\n",
" '.',\n",
" '.',\n",
" 'S',\n",
- " '#',\n",
- " '#',\n",
+ " '█',\n",
+ " '█',\n",
" '.',\n",
" ':',\n",
" '.',\n",
@@ -3505,61 +5014,61 @@
" '.',\n",
" ':',\n",
" '.',\n",
- " '#',\n",
- " '#',\n",
+ " '█',\n",
+ " '█',\n",
" '.',\n",
" '.',\n",
" ':',\n",
" '.',\n",
" '.',\n",
- " '-',\n",
+ " '=',\n",
" '.',\n",
" '.',\n",
" '.',\n",
- " '-',\n",
+ " '=',\n",
" 'E',\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",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#']"
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█']"
]
},
- "execution_count": 41,
+ "execution_count": 37,
"metadata": {},
"output_type": "execute_result"
}
@@ -3586,7 +5095,7 @@
},
{
"cell_type": "code",
- "execution_count": 42,
+ "execution_count": 38,
"metadata": {
"button": false,
"collapsed": false,
@@ -3600,95 +5109,320 @@
{
"data": {
"text/html": [
- " | | | TW | | | TL | | TL | | | TW | | | | | | DL | | | DW | | | | DW | | | DL | | | | DL | | | DL | | | | | | DL | | | DL | | TW | | | TL | | | | DW | | | | TL | | | TW | | | DL | | | | DL | | DL | | | | DL | | | | DW | | | | TL | | | | TL | | | | DW | B3 | TL | | | | DL | | | | | | DL | T1 | O1 | U1 | R1 | | G2 | | B3 | A1 | C3 | K5 | B3 | E1 | | C3 | DW | | | I1 | TL | A1 | | | M3 | | | | N1 | | H4 | E1 | A1 | R1 | D2 | | V4 | I1 | R1 | U1 | L1 | e | N1 | T1 | TL | I1 | | | DW | L1 | | E1 | DL | | S1 | | DL | | E1 | | L1 | Y4 | T1 | H4 | E1 | TW | | | TL | E1 | | | DW | R1 | E1 | D2 | TL | | | S1 | | DL | | | S1 | | | | | | R1 | | | DL | | | | DL | | | DW | | | | DW | E1 | | DL | | | | | | TW | | | TL | | TL | | N1 | TW | | | | "
+ " | | | TW | | | TL | | TL | | | TW | | | | | | DL | | | DW | | | | DW | | | DL | | | | DL | | | DL | | | | | | DL | | | DL | | TW | | | TL | | | | DW | | | | TL | | | TW | | | DL | | | | DL | | DL | | | | DL | | | | DW | | | | TL | | | | TL | | | | DW | B3 | TL | | | | DL | | | | | | DL | T1 | O1 | U1 | R1 | | G2 | | B3 | A1 | C3 | K5 | B3 | E1 | | C3 | DW | | | I1 | TL | A1 | | | M3 | | | | N1 | | H4 | E1 | A1 | R1 | D2 | | V4 | I1 | R1 | U1 | L1 | e | N1 | T1 | TL | I1 | | | DW | L1 | | E1 | DL | | S1 | | DL | | E1 | | L1 | | DL | | E1 | TW | | | TL | E1 | | | DW | R1 | E1 | D2 | TL | | | S1 | | DL | | | S1 | | | | | | R1 | | | DL | | | | DL | | | DW | | | | DW | E1 | | DL | | | | | | TW | | | TL | | TL | | N1 | TW | | | | "
],
"text/plain": [
- "['#',\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",
- " '=',\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",
- " '.',\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",
" '.',\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",
@@ -3704,26 +5438,26 @@
" ':',\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",
" 'B',\n",
- " '#',\n",
- " '#',\n",
- " ';',\n",
+ " '█',\n",
+ " '█',\n",
+ " '∴',\n",
" '.',\n",
" '.',\n",
" '.',\n",
@@ -3738,8 +5472,8 @@
" 'O',\n",
" 'U',\n",
" 'R',\n",
- " '#',\n",
- " '#',\n",
+ " '█',\n",
+ " '█',\n",
" '.',\n",
" 'G',\n",
" '.',\n",
@@ -3751,13 +5485,13 @@
" 'E',\n",
" '.',\n",
" 'C',\n",
- " '-',\n",
+ " '=',\n",
" '.',\n",
" '.',\n",
" 'I',\n",
- " '#',\n",
- " '#',\n",
- " ';',\n",
+ " '█',\n",
+ " '█',\n",
+ " '∴',\n",
" 'A',\n",
" '.',\n",
" '.',\n",
@@ -3772,8 +5506,8 @@
" 'A',\n",
" 'R',\n",
" 'D',\n",
- " '#',\n",
- " '#',\n",
+ " '█',\n",
+ " '█',\n",
" '.',\n",
" 'V',\n",
" 'I',\n",
@@ -3783,14 +5517,14 @@
" 'e',\n",
" 'N',\n",
" 'T',\n",
- " ';',\n",
+ " '∴',\n",
" 'I',\n",
" '.',\n",
" '.',\n",
- " '-',\n",
+ " '=',\n",
" 'L',\n",
- " '#',\n",
- " '#',\n",
+ " '█',\n",
+ " '█',\n",
" '.',\n",
" 'E',\n",
" ':',\n",
@@ -3802,29 +5536,29 @@
" 'E',\n",
" '.',\n",
" 'L',\n",
- " 'Y',\n",
- " 'T',\n",
- " 'H',\n",
+ " '.',\n",
+ " ':',\n",
+ " '.',\n",
" 'E',\n",
- " '#',\n",
- " '#',\n",
+ " '█',\n",
+ " '█',\n",
+ " '≡',\n",
+ " '.',\n",
+ " '.',\n",
+ " '∴',\n",
+ " 'E',\n",
+ " '.',\n",
+ " '.',\n",
" '=',\n",
- " '.',\n",
- " '.',\n",
- " ';',\n",
- " 'E',\n",
- " '.',\n",
- " '.',\n",
- " '-',\n",
" 'R',\n",
" 'E',\n",
" 'D',\n",
- " ';',\n",
+ " '∴',\n",
" '.',\n",
" '.',\n",
" 'S',\n",
- " '#',\n",
- " '#',\n",
+ " '█',\n",
+ " '█',\n",
" '.',\n",
" ':',\n",
" '.',\n",
@@ -3840,68 +5574,68 @@
" '.',\n",
" ':',\n",
" '.',\n",
- " '#',\n",
- " '#',\n",
+ " '█',\n",
+ " '█',\n",
" '.',\n",
" '.',\n",
" ':',\n",
" '.',\n",
" '.',\n",
- " '-',\n",
+ " '=',\n",
" '.',\n",
" '.',\n",
" '.',\n",
- " '-',\n",
+ " '=',\n",
" 'E',\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",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#']"
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█']"
]
},
- "execution_count": 42,
+ "execution_count": 38,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"board3[142:144] = 'CK'\n",
- "assert 'BACK' in PREFIXES\n",
+ "assert 'BACKBE' in PREFIXES\n",
"board3"
]
},
@@ -3921,7 +5655,7 @@
},
{
"cell_type": "code",
- "execution_count": 43,
+ "execution_count": 39,
"metadata": {
"button": false,
"collapsed": false,
@@ -3935,95 +5669,320 @@
{
"data": {
"text/html": [
- " | | | TW | | | TL | | TL | | | TW | | | | | | DL | | | DW | | | | DW | | | DL | | | | DL | | | DL | | | | | | DL | | | DL | | TW | | | TL | | | | DW | | | | TL | | | TW | | | DL | | | | DL | | DL | | | | DL | | | | DW | | | | TL | | | | TL | | | | DW | B3 | TL | | | | DL | | | | | | DL | T1 | O1 | U1 | R1 | | G2 | | B3 | A1 | C3 | K5 | B3 | E1 | N1 | C3 | DW | | | I1 | TL | A1 | | | M3 | | | | N1 | | H4 | E1 | A1 | R1 | D2 | | V4 | I1 | R1 | U1 | L1 | e | N1 | T1 | TL | I1 | | | DW | L1 | | E1 | DL | | S1 | | DL | | E1 | | L1 | Y4 | T1 | H4 | E1 | TW | | | TL | E1 | | | DW | R1 | E1 | D2 | TL | | | S1 | | DL | | | S1 | | | | | | R1 | | | DL | | | | DL | | | DW | | | | DW | E1 | | DL | | | | | | TW | | | TL | | TL | | N1 | TW | | | | "
+ " | | | TW | | | TL | | TL | | | TW | | | | | | DL | | | DW | | | | DW | | | DL | | | | DL | | | DL | | | | | | DL | | | DL | | TW | | | TL | | | | DW | | | | TL | | | TW | | | DL | | | | DL | | DL | | | | DL | | | | DW | | | | TL | | | | TL | | | | DW | B3 | TL | | | | DL | | | | | | DL | T1 | O1 | U1 | R1 | | G2 | | B3 | A1 | C3 | K5 | B3 | E1 | N1 | C3 | DW | | | I1 | TL | A1 | | | M3 | | | | N1 | | H4 | E1 | A1 | R1 | D2 | | V4 | I1 | R1 | U1 | L1 | e | N1 | T1 | TL | I1 | | | DW | L1 | | E1 | DL | | S1 | | DL | | E1 | | L1 | | DL | | E1 | TW | | | TL | E1 | | | DW | R1 | E1 | D2 | TL | | | S1 | | DL | | | S1 | | | | | | R1 | | | DL | | | | DL | | | DW | | | | DW | E1 | | DL | | | | | | TW | | | TL | | TL | | N1 | TW | | | | "
],
"text/plain": [
- "['#',\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",
- " '=',\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",
- " '.',\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",
" '.',\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",
@@ -4039,26 +5998,26 @@
" ':',\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",
" 'B',\n",
- " '#',\n",
- " '#',\n",
- " ';',\n",
+ " '█',\n",
+ " '█',\n",
+ " '∴',\n",
" '.',\n",
" '.',\n",
" '.',\n",
@@ -4073,8 +6032,8 @@
" 'O',\n",
" 'U',\n",
" 'R',\n",
- " '#',\n",
- " '#',\n",
+ " '█',\n",
+ " '█',\n",
" '.',\n",
" 'G',\n",
" '.',\n",
@@ -4086,13 +6045,13 @@
" 'E',\n",
" 'N',\n",
" 'C',\n",
- " '-',\n",
+ " '=',\n",
" '.',\n",
" '.',\n",
" 'I',\n",
- " '#',\n",
- " '#',\n",
- " ';',\n",
+ " '█',\n",
+ " '█',\n",
+ " '∴',\n",
" 'A',\n",
" '.',\n",
" '.',\n",
@@ -4107,8 +6066,8 @@
" 'A',\n",
" 'R',\n",
" 'D',\n",
- " '#',\n",
- " '#',\n",
+ " '█',\n",
+ " '█',\n",
" '.',\n",
" 'V',\n",
" 'I',\n",
@@ -4118,14 +6077,14 @@
" 'e',\n",
" 'N',\n",
" 'T',\n",
- " ';',\n",
+ " '∴',\n",
" 'I',\n",
" '.',\n",
" '.',\n",
- " '-',\n",
+ " '=',\n",
" 'L',\n",
- " '#',\n",
- " '#',\n",
+ " '█',\n",
+ " '█',\n",
" '.',\n",
" 'E',\n",
" ':',\n",
@@ -4137,29 +6096,29 @@
" 'E',\n",
" '.',\n",
" 'L',\n",
- " 'Y',\n",
- " 'T',\n",
- " 'H',\n",
+ " '.',\n",
+ " ':',\n",
+ " '.',\n",
" 'E',\n",
- " '#',\n",
- " '#',\n",
+ " '█',\n",
+ " '█',\n",
+ " '≡',\n",
+ " '.',\n",
+ " '.',\n",
+ " '∴',\n",
+ " 'E',\n",
+ " '.',\n",
+ " '.',\n",
" '=',\n",
- " '.',\n",
- " '.',\n",
- " ';',\n",
- " 'E',\n",
- " '.',\n",
- " '.',\n",
- " '-',\n",
" 'R',\n",
" 'E',\n",
" 'D',\n",
- " ';',\n",
+ " '∴',\n",
" '.',\n",
" '.',\n",
" 'S',\n",
- " '#',\n",
- " '#',\n",
+ " '█',\n",
+ " '█',\n",
" '.',\n",
" ':',\n",
" '.',\n",
@@ -4175,61 +6134,61 @@
" '.',\n",
" ':',\n",
" '.',\n",
- " '#',\n",
- " '#',\n",
+ " '█',\n",
+ " '█',\n",
" '.',\n",
" '.',\n",
" ':',\n",
" '.',\n",
" '.',\n",
- " '-',\n",
+ " '=',\n",
" '.',\n",
" '.',\n",
" '.',\n",
- " '-',\n",
+ " '=',\n",
" 'E',\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",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#']"
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█']"
]
},
- "execution_count": 43,
+ "execution_count": 39,
"metadata": {},
"output_type": "execute_result"
}
@@ -4256,7 +6215,7 @@
},
{
"cell_type": "code",
- "execution_count": 44,
+ "execution_count": 40,
"metadata": {
"button": false,
"collapsed": false,
@@ -4270,95 +6229,320 @@
{
"data": {
"text/html": [
- " | | | TW | | | TL | | TL | | | TW | | | | | | DL | | | DW | | | | DW | | | DL | | | | DL | | | DL | | | | | | DL | | | DL | | TW | | | TL | | | | DW | | | | TL | | | TW | | | DL | | | | DL | | DL | | | | DL | | | | DW | | | | TL | | | | TL | | | | DW | B3 | TL | | | | DL | | | | | | DL | T1 | O1 | U1 | R1 | | G2 | | B3 | A1 | C3 | K5 | B3 | E1 | N1 | C3 | H4 | | | I1 | TL | A1 | | | M3 | | | | N1 | | H4 | E1 | A1 | R1 | D2 | | V4 | I1 | R1 | U1 | L1 | e | N1 | T1 | TL | I1 | | | DW | L1 | | E1 | DL | | S1 | | DL | | E1 | | L1 | Y4 | T1 | H4 | E1 | TW | | | TL | E1 | | | DW | R1 | E1 | D2 | TL | | | S1 | | DL | | | S1 | | | | | | R1 | | | DL | | | | DL | | | DW | | | | DW | E1 | | DL | | | | | | TW | | | TL | | TL | | N1 | TW | | | | "
+ " | | | TW | | | TL | | TL | | | TW | | | | | | DL | | | DW | | | | DW | | | DL | | | | DL | | | DL | | | | | | DL | | | DL | | TW | | | TL | | | | DW | | | | TL | | | TW | | | DL | | | | DL | | DL | | | | DL | | | | DW | | | | TL | | | | TL | | | | DW | B3 | TL | | | | DL | | | | | | DL | T1 | O1 | U1 | R1 | | G2 | | B3 | A1 | C3 | K5 | B3 | E1 | N1 | C3 | H4 | | | I1 | TL | A1 | | | M3 | | | | N1 | | H4 | E1 | A1 | R1 | D2 | | V4 | I1 | R1 | U1 | L1 | e | N1 | T1 | TL | I1 | | | DW | L1 | | E1 | DL | | S1 | | DL | | E1 | | L1 | | DL | | E1 | TW | | | TL | E1 | | | DW | R1 | E1 | D2 | TL | | | S1 | | DL | | | S1 | | | | | | R1 | | | DL | | | | DL | | | DW | | | | DW | E1 | | DL | | | | | | TW | | | TL | | TL | | N1 | TW | | | | "
],
"text/plain": [
- "['#',\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",
- " '=',\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",
- " '.',\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",
" '.',\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",
@@ -4374,26 +6558,26 @@
" ':',\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",
" 'B',\n",
- " '#',\n",
- " '#',\n",
- " ';',\n",
+ " '█',\n",
+ " '█',\n",
+ " '∴',\n",
" '.',\n",
" '.',\n",
" '.',\n",
@@ -4408,8 +6592,8 @@
" 'O',\n",
" 'U',\n",
" 'R',\n",
- " '#',\n",
- " '#',\n",
+ " '█',\n",
+ " '█',\n",
" '.',\n",
" 'G',\n",
" '.',\n",
@@ -4425,9 +6609,9 @@
" '.',\n",
" '.',\n",
" 'I',\n",
- " '#',\n",
- " '#',\n",
- " ';',\n",
+ " '█',\n",
+ " '█',\n",
+ " '∴',\n",
" 'A',\n",
" '.',\n",
" '.',\n",
@@ -4442,8 +6626,8 @@
" 'A',\n",
" 'R',\n",
" 'D',\n",
- " '#',\n",
- " '#',\n",
+ " '█',\n",
+ " '█',\n",
" '.',\n",
" 'V',\n",
" 'I',\n",
@@ -4453,14 +6637,14 @@
" 'e',\n",
" 'N',\n",
" 'T',\n",
- " ';',\n",
+ " '∴',\n",
" 'I',\n",
" '.',\n",
" '.',\n",
- " '-',\n",
+ " '=',\n",
" 'L',\n",
- " '#',\n",
- " '#',\n",
+ " '█',\n",
+ " '█',\n",
" '.',\n",
" 'E',\n",
" ':',\n",
@@ -4472,29 +6656,29 @@
" 'E',\n",
" '.',\n",
" 'L',\n",
- " 'Y',\n",
- " 'T',\n",
- " 'H',\n",
+ " '.',\n",
+ " ':',\n",
+ " '.',\n",
" 'E',\n",
- " '#',\n",
- " '#',\n",
+ " '█',\n",
+ " '█',\n",
+ " '≡',\n",
+ " '.',\n",
+ " '.',\n",
+ " '∴',\n",
+ " 'E',\n",
+ " '.',\n",
+ " '.',\n",
" '=',\n",
- " '.',\n",
- " '.',\n",
- " ';',\n",
- " 'E',\n",
- " '.',\n",
- " '.',\n",
- " '-',\n",
" 'R',\n",
" 'E',\n",
" 'D',\n",
- " ';',\n",
+ " '∴',\n",
" '.',\n",
" '.',\n",
" 'S',\n",
- " '#',\n",
- " '#',\n",
+ " '█',\n",
+ " '█',\n",
" '.',\n",
" ':',\n",
" '.',\n",
@@ -4510,61 +6694,61 @@
" '.',\n",
" ':',\n",
" '.',\n",
- " '#',\n",
- " '#',\n",
+ " '█',\n",
+ " '█',\n",
" '.',\n",
" '.',\n",
" ':',\n",
" '.',\n",
" '.',\n",
- " '-',\n",
+ " '=',\n",
" '.',\n",
" '.',\n",
" '.',\n",
- " '-',\n",
+ " '=',\n",
" 'E',\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",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#']"
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█']"
]
},
- "execution_count": 44,
+ "execution_count": 40,
"metadata": {},
"output_type": "execute_result"
}
@@ -4595,7 +6779,7 @@
},
{
"cell_type": "code",
- "execution_count": 45,
+ "execution_count": 41,
"metadata": {
"button": false,
"collapsed": true,
@@ -4637,7 +6821,7 @@
},
{
"cell_type": "code",
- "execution_count": 46,
+ "execution_count": 42,
"metadata": {
"button": false,
"collapsed": false,
@@ -4657,8 +6841,9 @@
" else: # Prefixes from rack fit in space before anchor\n",
" maxlen = (anchor - scan_to_anchor(board, anchor, -dir)) // dir\n",
" for prefix in prefixes:\n",
- " if len(prefix) <= maxlen:\n",
- " yield Play(anchor - len(prefix) * dir, dir, prefix, remove(prefix, rack))"
+ " if len(prefix) > maxlen:\n",
+ " return\n",
+ " yield Play(anchor - len(prefix) * dir, dir, prefix, remove(prefix, rack))"
]
},
{
@@ -4677,7 +6862,7 @@
},
{
"cell_type": "code",
- "execution_count": 47,
+ "execution_count": 43,
"metadata": {
"button": false,
"collapsed": true,
@@ -4735,7 +6920,7 @@
},
{
"cell_type": "code",
- "execution_count": 48,
+ "execution_count": 44,
"metadata": {
"button": false,
"collapsed": true,
@@ -4758,7 +6943,7 @@
"\n",
"def valid_crossword(cword, L) -> bool:\n",
" \"Is placing letter L valid (with respective to the crossword)?\"\n",
- " return len(cword) == 1 or cword.replace('.', L).upper() in DICTIONARY\n",
+ " return len(cword) == 1 or is_word(cword.replace('.', L))\n",
"\n",
"def other(dir, board) -> Direction:\n",
" \"The other direction (across/down) on the board.\"\n",
@@ -4767,7 +6952,7 @@
},
{
"cell_type": "code",
- "execution_count": 49,
+ "execution_count": 45,
"metadata": {
"button": false,
"collapsed": false,
@@ -4784,7 +6969,7 @@
"'.MUSES'"
]
},
- "execution_count": 49,
+ "execution_count": 45,
"metadata": {},
"output_type": "execute_result"
}
@@ -4795,7 +6980,7 @@
},
{
"cell_type": "code",
- "execution_count": 50,
+ "execution_count": 46,
"metadata": {
"button": false,
"collapsed": false,
@@ -4812,7 +6997,7 @@
"'T.E'"
]
},
- "execution_count": 50,
+ "execution_count": 46,
"metadata": {},
"output_type": "execute_result"
}
@@ -4837,7 +7022,7 @@
},
{
"cell_type": "code",
- "execution_count": 51,
+ "execution_count": 47,
"metadata": {
"button": false,
"collapsed": false,
@@ -4854,7 +7039,7 @@
"True"
]
},
- "execution_count": 51,
+ "execution_count": 47,
"metadata": {},
"output_type": "execute_result"
}
@@ -4879,7 +7064,7 @@
},
{
"cell_type": "code",
- "execution_count": 52,
+ "execution_count": 48,
"metadata": {
"button": false,
"collapsed": false,
@@ -4903,7 +7088,7 @@
" Play(start=141, dir=1, letters='', rack='ABCHKNQ')}"
]
},
- "execution_count": 52,
+ "execution_count": 48,
"metadata": {},
"output_type": "execute_result"
}
@@ -4928,7 +7113,7 @@
},
{
"cell_type": "code",
- "execution_count": 53,
+ "execution_count": 49,
"metadata": {
"button": false,
"collapsed": false,
@@ -4948,7 +7133,7 @@
" Play(start=140, dir=1, letters='BAN', rack='CHKQ')}"
]
},
- "execution_count": 53,
+ "execution_count": 49,
"metadata": {},
"output_type": "execute_result"
}
@@ -4970,12 +7155,12 @@
"source": [
"# Scoring\n",
"\n",
- "Now we'll show how to count up the points made by a play. The score is the sum of the word score for the play, plus a bingo score if all seven letters are used, plus the sum of the word scores for any cross words. The word score is the sum of the letter scores (where each letter score may be doubled or tripled by a bonus square when the letter is first played on the square), all multiplied by any word bonus(es) encountered by the newly-placed letters."
+ "Now we'll show how to count up the points made by a play. The score is the sum of the word score for the play, plus the sum of the word scores for any cross words, plus a bingo score if all seven letters are used. The word score is the sum of the letter scores (where each letter score may be doubled or tripled by a bonus square when the letter is first played on the square), all multiplied by any word bonus(es) encountered by the newly-placed letters."
]
},
{
"cell_type": "code",
- "execution_count": 54,
+ "execution_count": 50,
"metadata": {
"button": false,
"collapsed": false,
@@ -5025,7 +7210,7 @@
},
{
"cell_type": "code",
- "execution_count": 55,
+ "execution_count": 51,
"metadata": {
"button": false,
"collapsed": false,
@@ -5043,8 +7228,8 @@
" \n",
"def enumerate_play(play) -> list:\n",
" \"List (square_number, letter) pairs for each tile in the play.\"\n",
- " return [(play.start + i * play.dir, L) \n",
- " for (i, L) in enumerate(play.letters)]\n",
+ " return [(play.start + i * play.dir, play.letters[i]) \n",
+ " for i in range(len(play.letters))]\n",
" \n",
"def cross_plays(board, play):\n",
" \"Generate all plays for words that cross this play.\"\n",
@@ -5072,7 +7257,7 @@
},
{
"cell_type": "code",
- "execution_count": 56,
+ "execution_count": 52,
"metadata": {
"button": false,
"collapsed": false,
@@ -5089,7 +7274,7 @@
"116"
]
},
- "execution_count": 56,
+ "execution_count": 52,
"metadata": {},
"output_type": "execute_result"
}
@@ -5114,7 +7299,7 @@
},
{
"cell_type": "code",
- "execution_count": 57,
+ "execution_count": 53,
"metadata": {
"button": false,
"collapsed": true,
@@ -5133,7 +7318,7 @@
},
{
"cell_type": "code",
- "execution_count": 58,
+ "execution_count": 54,
"metadata": {
"button": false,
"collapsed": false,
@@ -5150,7 +7335,7 @@
"Play(start=140, dir=1, letters='BACKBENCH', rack='Q')"
]
},
- "execution_count": 58,
+ "execution_count": 54,
"metadata": {},
"output_type": "execute_result"
}
@@ -5161,7 +7346,7 @@
},
{
"cell_type": "code",
- "execution_count": 59,
+ "execution_count": 55,
"metadata": {
"button": false,
"collapsed": false,
@@ -5175,95 +7360,320 @@
{
"data": {
"text/html": [
- " | | | TW | | | TL | | TL | | | TW | | | | | | DL | | | DW | | | | DW | | | DL | | | | DL | | | DL | | | | | | DL | | | DL | | TW | | | TL | | | | DW | | | | TL | | | TW | | | DL | | | | DL | | DL | | | | DL | | | | DW | | | | TL | | | | TL | | | | DW | B3 | TL | | | | DL | | | | | | DL | T1 | O1 | U1 | R1 | | G2 | | B3 | A1 | C3 | K5 | B3 | E1 | N1 | C3 | H4 | | | I1 | TL | A1 | | | M3 | | | | N1 | | H4 | E1 | A1 | R1 | D2 | | V4 | I1 | R1 | U1 | L1 | e | N1 | T1 | TL | I1 | | | DW | L1 | | E1 | DL | | S1 | | DL | | E1 | | L1 | Y4 | T1 | H4 | E1 | TW | | | TL | E1 | | | DW | R1 | E1 | D2 | TL | | | S1 | | DL | | | S1 | | | | | | R1 | | | DL | | | | DL | | | DW | | | | DW | E1 | | DL | | | | | | TW | | | TL | | TL | | N1 | TW | | | | "
+ " | | | TW | | | TL | | TL | | | TW | | | | | | DL | | | DW | | | | DW | | | DL | | | | DL | | | DL | | | | | | DL | | | DL | | TW | | | TL | | | | DW | | | | TL | | | TW | | | DL | | | | DL | | DL | | | | DL | | | | DW | | | | TL | | | | TL | | | | DW | B3 | TL | | | | DL | | | | | | DL | T1 | O1 | U1 | R1 | | G2 | | B3 | A1 | C3 | K5 | B3 | E1 | N1 | C3 | H4 | | | I1 | TL | A1 | | | M3 | | | | N1 | | H4 | E1 | A1 | R1 | D2 | | V4 | I1 | R1 | U1 | L1 | e | N1 | T1 | TL | I1 | | | DW | L1 | | E1 | DL | | S1 | | DL | | E1 | | L1 | | DL | | E1 | TW | | | TL | E1 | | | DW | R1 | E1 | D2 | TL | | | S1 | | DL | | | S1 | | | | | | R1 | | | DL | | | | DL | | | DW | | | | DW | E1 | | DL | | | | | | TW | | | TL | | TL | | N1 | TW | | | | "
],
"text/plain": [
- "['#',\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",
- " '=',\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",
- " '.',\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",
" '.',\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",
@@ -5279,26 +7689,26 @@
" ':',\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",
" 'B',\n",
- " '#',\n",
- " '#',\n",
- " ';',\n",
+ " '█',\n",
+ " '█',\n",
+ " '∴',\n",
" '.',\n",
" '.',\n",
" '.',\n",
@@ -5313,8 +7723,8 @@
" 'O',\n",
" 'U',\n",
" 'R',\n",
- " '#',\n",
- " '#',\n",
+ " '█',\n",
+ " '█',\n",
" '.',\n",
" 'G',\n",
" '.',\n",
@@ -5330,9 +7740,9 @@
" '.',\n",
" '.',\n",
" 'I',\n",
- " '#',\n",
- " '#',\n",
- " ';',\n",
+ " '█',\n",
+ " '█',\n",
+ " '∴',\n",
" 'A',\n",
" '.',\n",
" '.',\n",
@@ -5347,8 +7757,8 @@
" 'A',\n",
" 'R',\n",
" 'D',\n",
- " '#',\n",
- " '#',\n",
+ " '█',\n",
+ " '█',\n",
" '.',\n",
" 'V',\n",
" 'I',\n",
@@ -5358,14 +7768,14 @@
" 'e',\n",
" 'N',\n",
" 'T',\n",
- " ';',\n",
+ " '∴',\n",
" 'I',\n",
" '.',\n",
" '.',\n",
- " '-',\n",
+ " '=',\n",
" 'L',\n",
- " '#',\n",
- " '#',\n",
+ " '█',\n",
+ " '█',\n",
" '.',\n",
" 'E',\n",
" ':',\n",
@@ -5377,29 +7787,29 @@
" 'E',\n",
" '.',\n",
" 'L',\n",
- " 'Y',\n",
- " 'T',\n",
- " 'H',\n",
+ " '.',\n",
+ " ':',\n",
+ " '.',\n",
" 'E',\n",
- " '#',\n",
- " '#',\n",
+ " '█',\n",
+ " '█',\n",
+ " '≡',\n",
+ " '.',\n",
+ " '.',\n",
+ " '∴',\n",
+ " 'E',\n",
+ " '.',\n",
+ " '.',\n",
" '=',\n",
- " '.',\n",
- " '.',\n",
- " ';',\n",
- " 'E',\n",
- " '.',\n",
- " '.',\n",
- " '-',\n",
" 'R',\n",
" 'E',\n",
" 'D',\n",
- " ';',\n",
+ " '∴',\n",
" '.',\n",
" '.',\n",
" 'S',\n",
- " '#',\n",
- " '#',\n",
+ " '█',\n",
+ " '█',\n",
" '.',\n",
" ':',\n",
" '.',\n",
@@ -5415,61 +7825,61 @@
" '.',\n",
" ':',\n",
" '.',\n",
- " '#',\n",
- " '#',\n",
+ " '█',\n",
+ " '█',\n",
" '.',\n",
" '.',\n",
" ':',\n",
" '.',\n",
" '.',\n",
- " '-',\n",
+ " '=',\n",
" '.',\n",
" '.',\n",
" '.',\n",
- " '-',\n",
+ " '=',\n",
" 'E',\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",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#']"
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█']"
]
},
- "execution_count": 59,
+ "execution_count": 55,
"metadata": {},
"output_type": "execute_result"
}
@@ -5496,7 +7906,7 @@
},
{
"cell_type": "code",
- "execution_count": 60,
+ "execution_count": 56,
"metadata": {
"button": false,
"collapsed": false,
@@ -5506,21 +7916,9 @@
"read_only": false
}
},
- "outputs": [
- {
- "data": {
- "text/plain": [
- "100"
- ]
- },
- "execution_count": 60,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
+ "outputs": [],
"source": [
- "BAG = 'AAAAAAAAABBCCDDDDEEEEEEEEEEEEFFGGGHHIIIIIIIIIJKLLLLMMNNNNNNOOOOOOOOPPQRRRRRRSSSSTTTTTTUUUUVVWWXYYZ__'\n",
- "len(BAG)"
+ "BAG = 9*'A' + 12*'E' + 9*'I' + 8*'O' + 'BBCCDDDDFFGGGHHJKLLLLMMNNNNNNPPQRRRRRRSSSSTTTTTTUUUUVVWWXYYZ__'"
]
},
{
@@ -5539,7 +7937,7 @@
},
{
"cell_type": "code",
- "execution_count": 61,
+ "execution_count": 57,
"metadata": {
"button": false,
"collapsed": true,
@@ -5573,15 +7971,16 @@
"def make_one_play(board, p, strategy, scores, racks, bag, verbose) -> Board:\n",
" \"\"\"One player, player p, chooses a move according to the strategy.\n",
" We make the move, replenish the rack, update scores, and return the new Board.\"\"\"\n",
- " rack = racks[p]\n",
- " play = strategy(board, racks[p])\n",
+ " rack = racks[p]\n",
+ " play = strategy(board, racks[p])\n",
" racks[p] = replenish(play.rack, bag)\n",
- " points = score(board, play)\n",
- " scores[p] += points\n",
- " board = make_play(board, play)\n",
+ " points = score(board, play)\n",
+ " is_bingo = ('(BINGO!)' if bingo(board, play) else '')\n",
+ " scores[p]+= points\n",
+ " board = make_play(board, play)\n",
" if verbose:\n",
- " display(HTML('Player {} with rack {} makes {} for {} points; draws: {}; scores: {}'\n",
- " .format(p, rack, play, points, racks[p], scores)),\n",
+ " display(HTML('Player {} with rack {} makes {} for {} points {}; draws: {}; scores: {}'\n",
+ " .format(p, rack, play, points, is_bingo, racks[p], scores)),\n",
" board)\n",
" return board\n",
"\n",
@@ -5602,7 +8001,7 @@
},
{
"cell_type": "code",
- "execution_count": 62,
+ "execution_count": 58,
"metadata": {
"button": false,
"collapsed": false,
@@ -5633,7 +8032,7 @@
},
{
"cell_type": "code",
- "execution_count": 63,
+ "execution_count": 59,
"metadata": {
"button": false,
"collapsed": false,
@@ -5647,7 +8046,7 @@
{
"data": {
"text/html": [
- "Player 0 with rack NIEUTBT makes Play(start=144, dir=1, letters='BUTTE', rack='NI') for 14 points; draws: NITDINC; scores: [14, 0]"
+ "Player 0 with rack EDOSOLB makes Play(start=144, dir=1, letters='BOODLE', rack='S') for 18 points ; draws: STOYNRR; scores: [18, 0]"
],
"text/plain": [
""
@@ -5659,95 +8058,320 @@
{
"data": {
"text/html": [
- " | | | TW | | | TL | | TL | | | TW | | | | | | DL | | | DW | | | | DW | | | DL | | | | DL | | | DL | | | | | | DL | | | DL | | TW | | | TL | | | | DW | | | | TL | | | TW | | | DL | | | | DL | | DL | | | | DL | | | | DW | | | | TL | | | | TL | | | | DW | | TL | | | | DL | | | | | | DL | | | | TL | | | | DW | | | | B3 | U1 | T1 | T1 | E1 | | | | TL | | | | DL | | | | | | DL | | | | TL | | DW | | | | TL | | | | TL | | | | DW | | | | DL | | | | DL | | DL | | | | DL | | | TW | | | TL | | | | DW | | | | TL | | | TW | | DL | | | DL | | | | | | DL | | | DL | | | | DL | | | DW | | | | DW | | | DL | | | | | | TW | | | TL | | TL | | | TW | | | | "
+ " | | | TW | | | TL | | TL | | | TW | | | | | | DL | | | DW | | | | DW | | | DL | | | | DL | | | DL | | | | | | DL | | | DL | | TW | | | TL | | | | DW | | | | TL | | | TW | | | DL | | | | DL | | DL | | | | DL | | | | DW | | | | TL | | | | TL | | | | DW | | TL | | | | DL | | | | | | DL | | | | TL | | | | DW | | | | B3 | O1 | O1 | D2 | L1 | E1 | | | TL | | | | DL | | | | | | DL | | | | TL | | DW | | | | TL | | | | TL | | | | DW | | | | DL | | | | DL | | DL | | | | DL | | | TW | | | TL | | | | DW | | | | TL | | | TW | | DL | | | DL | | | | | | DL | | | DL | | | | DL | | | DW | | | | DW | | | DL | | | | | | TW | | | TL | | TL | | | TW | | | | "
],
"text/plain": [
- "['#',\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",
- " '=',\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",
- " '.',\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",
" '.',\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",
@@ -5763,26 +8387,26 @@
" ':',\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",
@@ -5796,1032 +8420,28 @@
" '.',\n",
" '.',\n",
" '.',\n",
- " ';',\n",
- " '#',\n",
- " '#',\n",
+ " '∴',\n",
+ " '█',\n",
+ " '█',\n",
" '.',\n",
" '.',\n",
" '.',\n",
- " '-',\n",
+ " '=',\n",
" '.',\n",
" '.',\n",
" '.',\n",
" 'B',\n",
- " 'U',\n",
- " 'T',\n",
- " 'T',\n",
- " 'E',\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",
- " '#',\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",
- " ':',\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",
- " '.',\n",
- " '.',\n",
- " '=',\n",
- " '.',\n",
- " '.',\n",
- " '.',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#']"
- ]
- },
- "metadata": {},
- "output_type": "display_data"
- },
- {
- "data": {
- "text/html": [
- "Player 1 with rack IMIOOEE makes Play(start=144, dir=17, letters='BIOME', rack='IOE') for 18 points; draws: IOEP_OL; scores: [14, 18]"
- ],
- "text/plain": [
- ""
- ]
- },
- "metadata": {},
- "output_type": "display_data"
- },
- {
- "data": {
- "text/html": [
- " | | | TW | | | TL | | TL | | | TW | | | | | | DL | | | DW | | | | DW | | | DL | | | | DL | | | DL | | | | | | DL | | | DL | | TW | | | TL | | | | DW | | | | TL | | | TW | | | DL | | | | DL | | DL | | | | DL | | | | DW | | | | TL | | | | TL | | | | DW | | TL | | | | DL | | | | | | DL | | | | TL | | | | DW | | | | B3 | U1 | T1 | T1 | E1 | | | | TL | | | | DL | | | I1 | | | DL | | | | TL | | DW | | | | TL | | O1 | | TL | | | | DW | | | | DL | | | | DL | M3 | DL | | | | DL | | | TW | | | TL | | | | E1 | | | | TL | | | TW | | DL | | | DL | | | | | | DL | | | DL | | | | DL | | | DW | | | | DW | | | DL | | | | | | TW | | | TL | | TL | | | TW | | | | "
- ],
- "text/plain": [
- "['#',\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",
- " '.',\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",
- " '.',\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",
- " '.',\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",
- " 'B',\n",
- " 'U',\n",
- " 'T',\n",
- " 'T',\n",
- " 'E',\n",
- " '.',\n",
- " '.',\n",
- " '.',\n",
- " '#',\n",
- " '#',\n",
- " ';',\n",
- " '.',\n",
- " '.',\n",
- " '.',\n",
- " ':',\n",
- " '.',\n",
- " '.',\n",
- " 'I',\n",
- " '.',\n",
- " '.',\n",
- " ':',\n",
- " '.',\n",
- " '.',\n",
- " '.',\n",
- " ';',\n",
- " '#',\n",
- " '#',\n",
- " '.',\n",
- " '-',\n",
- " '.',\n",
- " '.',\n",
- " '.',\n",
- " ';',\n",
- " '.',\n",
" 'O',\n",
- " '.',\n",
- " ';',\n",
- " '.',\n",
- " '.',\n",
- " '.',\n",
- " '-',\n",
- " '.',\n",
- " '#',\n",
- " '#',\n",
- " '.',\n",
- " '.',\n",
- " ':',\n",
- " '.',\n",
- " '.',\n",
- " '.',\n",
- " ':',\n",
- " 'M',\n",
- " ':',\n",
- " '.',\n",
- " '.',\n",
- " '.',\n",
- " ':',\n",
- " '.',\n",
- " '.',\n",
- " '#',\n",
- " '#',\n",
- " '=',\n",
- " '.',\n",
- " '.',\n",
- " ';',\n",
- " '.',\n",
- " '.',\n",
- " '.',\n",
- " 'E',\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",
- " ':',\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",
- " '#']"
- ]
- },
- "metadata": {},
- "output_type": "display_data"
- },
- {
- "data": {
- "text/html": [
- "Player 0 with rack NITDINC makes Play(start=63, dir=17, letters='INCIDENT', rack='') for 48 points; draws: RRAXDFA; scores: [62, 18]"
- ],
- "text/plain": [
- ""
- ]
- },
- "metadata": {},
- "output_type": "display_data"
- },
- {
- "data": {
- "text/html": [
- " | | | TW | | | TL | | TL | | | TW | | | | | | DL | | | DW | | | | DW | | | DL | | | | DL | | | DL | | | | | | DL | I1 | | DL | | TW | | | TL | | | | DW | | | | N1 | | | TW | | | DL | | | | DL | | DL | | | C3 | DL | | | | DW | | | | TL | | | | TL | | I1 | | DW | | TL | | | | DL | | | | | | DL | D2 | | | TL | | | | DW | | | | B3 | U1 | T1 | T1 | E1 | | | | TL | | | | DL | | | I1 | | | DL | N1 | | | TL | | DW | | | | TL | | O1 | | TL | | T1 | | DW | | | | DL | | | | DL | M3 | DL | | | | DL | | | TW | | | TL | | | | E1 | | | | TL | | | TW | | DL | | | DL | | | | | | DL | | | DL | | | | DL | | | DW | | | | DW | | | DL | | | | | | TW | | | TL | | TL | | | TW | | | | "
- ],
- "text/plain": [
- "['#',\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",
- " '.',\n",
- " '-',\n",
- " '.',\n",
- " '.',\n",
- " '.',\n",
- " '-',\n",
- " '.',\n",
- " '.',\n",
- " ':',\n",
- " '.',\n",
- " '.',\n",
- " '#',\n",
- " '#',\n",
- " '.',\n",
- " ':',\n",
- " '.',\n",
- " '.',\n",
- " ':',\n",
- " '.',\n",
- " '.',\n",
- " '.',\n",
- " '.',\n",
- " '.',\n",
- " ':',\n",
- " 'I',\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",
- " 'C',\n",
- " ':',\n",
- " '.',\n",
- " '.',\n",
- " '#',\n",
- " '#',\n",
- " '.',\n",
- " '-',\n",
- " '.',\n",
- " '.',\n",
- " '.',\n",
- " ';',\n",
- " '.',\n",
- " '.',\n",
- " '.',\n",
- " ';',\n",
- " '.',\n",
- " 'I',\n",
- " '.',\n",
- " '-',\n",
- " '.',\n",
- " '#',\n",
- " '#',\n",
- " ';',\n",
- " '.',\n",
- " '.',\n",
- " '.',\n",
- " ':',\n",
- " '.',\n",
- " '.',\n",
- " '.',\n",
- " '.',\n",
- " '.',\n",
- " ':',\n",
+ " 'O',\n",
" 'D',\n",
- " '.',\n",
- " '.',\n",
- " ';',\n",
- " '#',\n",
- " '#',\n",
- " '.',\n",
- " '.',\n",
- " '.',\n",
- " '-',\n",
- " '.',\n",
- " '.',\n",
- " '.',\n",
- " 'B',\n",
- " 'U',\n",
- " 'T',\n",
- " 'T',\n",
- " 'E',\n",
- " '.',\n",
- " '.',\n",
- " '.',\n",
- " '#',\n",
- " '#',\n",
- " ';',\n",
- " '.',\n",
- " '.',\n",
- " '.',\n",
- " ':',\n",
- " '.',\n",
- " '.',\n",
- " 'I',\n",
- " '.',\n",
- " '.',\n",
- " ':',\n",
- " 'N',\n",
- " '.',\n",
- " '.',\n",
- " ';',\n",
- " '#',\n",
- " '#',\n",
- " '.',\n",
- " '-',\n",
- " '.',\n",
- " '.',\n",
- " '.',\n",
- " ';',\n",
- " '.',\n",
- " 'O',\n",
- " '.',\n",
- " ';',\n",
- " '.',\n",
- " 'T',\n",
- " '.',\n",
- " '-',\n",
- " '.',\n",
- " '#',\n",
- " '#',\n",
- " '.',\n",
- " '.',\n",
- " ':',\n",
- " '.',\n",
- " '.',\n",
- " '.',\n",
- " ':',\n",
- " 'M',\n",
- " ':',\n",
- " '.',\n",
- " '.',\n",
- " '.',\n",
- " ':',\n",
- " '.',\n",
- " '.',\n",
- " '#',\n",
- " '#',\n",
- " '=',\n",
- " '.',\n",
- " '.',\n",
- " ';',\n",
- " '.',\n",
- " '.',\n",
- " '.',\n",
- " 'E',\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",
- " ':',\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",
- " '#']"
- ]
- },
- "metadata": {},
- "output_type": "display_data"
- },
- {
- "data": {
- "text/html": [
- "Player 1 with rack IOEP_OL makes Play(start=212, dir=1, letters='EOLOPIlE', rack='') for 80 points; draws: OFUADSE; scores: [62, 98]"
- ],
- "text/plain": [
- ""
- ]
- },
- "metadata": {},
- "output_type": "display_data"
- },
- {
- "data": {
- "text/html": [
- " | | | TW | | | TL | | TL | | | TW | | | | | | DL | | | DW | | | | DW | | | DL | | | | DL | | | DL | | | | | | DL | I1 | | DL | | TW | | | TL | | | | DW | | | | N1 | | | TW | | | DL | | | | DL | | DL | | | C3 | DL | | | | DW | | | | TL | | | | TL | | I1 | | DW | | TL | | | | DL | | | | | | DL | D2 | | | TL | | | | DW | | | | B3 | U1 | T1 | T1 | E1 | | | | TL | | | | DL | | | I1 | | | DL | N1 | | | TL | | DW | | | | TL | | O1 | | TL | | T1 | | DW | | | | DL | | | | DL | M3 | DL | | | | DL | | | TW | | | TL | | | | E1 | O1 | L1 | O1 | P3 | I1 | l | E1 | | DL | | | DL | | | | | | DL | | | DL | | | | DL | | | DW | | | | DW | | | DL | | | | | | TW | | | TL | | TL | | | TW | | | | "
- ],
- "text/plain": [
- "['#',\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",
- " '.',\n",
- " '-',\n",
- " '.',\n",
- " '.',\n",
- " '.',\n",
- " '-',\n",
- " '.',\n",
- " '.',\n",
- " ':',\n",
- " '.',\n",
- " '.',\n",
- " '#',\n",
- " '#',\n",
- " '.',\n",
- " ':',\n",
- " '.',\n",
- " '.',\n",
- " ':',\n",
- " '.',\n",
- " '.',\n",
- " '.',\n",
- " '.',\n",
- " '.',\n",
- " ':',\n",
- " 'I',\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",
- " 'C',\n",
- " ':',\n",
- " '.',\n",
- " '.',\n",
- " '#',\n",
- " '#',\n",
- " '.',\n",
- " '-',\n",
- " '.',\n",
- " '.',\n",
- " '.',\n",
- " ';',\n",
- " '.',\n",
- " '.',\n",
- " '.',\n",
- " ';',\n",
- " '.',\n",
- " 'I',\n",
- " '.',\n",
- " '-',\n",
- " '.',\n",
- " '#',\n",
- " '#',\n",
- " ';',\n",
- " '.',\n",
- " '.',\n",
- " '.',\n",
- " ':',\n",
- " '.',\n",
- " '.',\n",
- " '.',\n",
- " '.',\n",
- " '.',\n",
- " ':',\n",
- " 'D',\n",
- " '.',\n",
- " '.',\n",
- " ';',\n",
- " '#',\n",
- " '#',\n",
- " '.',\n",
- " '.',\n",
- " '.',\n",
- " '-',\n",
- " '.',\n",
- " '.',\n",
- " '.',\n",
- " 'B',\n",
- " 'U',\n",
- " 'T',\n",
- " 'T',\n",
- " 'E',\n",
- " '.',\n",
- " '.',\n",
- " '.',\n",
- " '#',\n",
- " '#',\n",
- " ';',\n",
- " '.',\n",
- " '.',\n",
- " '.',\n",
- " ':',\n",
- " '.',\n",
- " '.',\n",
- " 'I',\n",
- " '.',\n",
- " '.',\n",
- " ':',\n",
- " 'N',\n",
- " '.',\n",
- " '.',\n",
- " ';',\n",
- " '#',\n",
- " '#',\n",
- " '.',\n",
- " '-',\n",
- " '.',\n",
- " '.',\n",
- " '.',\n",
- " ';',\n",
- " '.',\n",
- " 'O',\n",
- " '.',\n",
- " ';',\n",
- " '.',\n",
- " 'T',\n",
- " '.',\n",
- " '-',\n",
- " '.',\n",
- " '#',\n",
- " '#',\n",
- " '.',\n",
- " '.',\n",
- " ':',\n",
- " '.',\n",
- " '.',\n",
- " '.',\n",
- " ':',\n",
- " 'M',\n",
- " ':',\n",
- " '.',\n",
- " '.',\n",
- " '.',\n",
- " ':',\n",
- " '.',\n",
- " '.',\n",
- " '#',\n",
- " '#',\n",
- " '=',\n",
- " '.',\n",
- " '.',\n",
- " ';',\n",
- " '.',\n",
- " '.',\n",
- " '.',\n",
- " 'E',\n",
- " 'O',\n",
" 'L',\n",
- " 'O',\n",
- " 'P',\n",
- " 'I',\n",
- " 'l',\n",
" 'E',\n",
- " '#',\n",
- " '#',\n",
" '.',\n",
- " ':',\n",
+ " '.',\n",
+ " '█',\n",
+ " '█',\n",
+ " '∴',\n",
+ " '.',\n",
" '.',\n",
" '.',\n",
" ':',\n",
@@ -6833,60 +8453,128 @@
" ':',\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",
" '.',\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",
+ " '.',\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",
+ " '█',\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",
+ " '█']"
]
},
"metadata": {},
@@ -6895,7 +8583,7 @@
{
"data": {
"text/html": [
- "Player 0 with rack RRAXDFA makes Play(start=230, dir=1, letters='FAX', rack='RRDA') for 45 points; draws: RRDACGA; scores: [107, 98]"
+ "Player 1 with rack IUSI_IT makes Play(start=146, dir=17, letters='OUISTItI', rack='') for 53 points (BINGO!); draws: OHAKAQL; scores: [18, 53]"
],
"text/plain": [
""
@@ -6907,95 +8595,320 @@
{
"data": {
"text/html": [
- " | | | TW | | | TL | | TL | | | TW | | | | | | DL | | | DW | | | | DW | | | DL | | | | DL | | | DL | | | | | | DL | I1 | | DL | | TW | | | TL | | | | DW | | | | N1 | | | TW | | | DL | | | | DL | | DL | | | C3 | DL | | | | DW | | | | TL | | | | TL | | I1 | | DW | | TL | | | | DL | | | | | | DL | D2 | | | TL | | | | DW | | | | B3 | U1 | T1 | T1 | E1 | | | | TL | | | | DL | | | I1 | | | DL | N1 | | | TL | | DW | | | | TL | | O1 | | TL | | T1 | | DW | | | | DL | | | | DL | M3 | DL | | | | DL | | | TW | | | TL | | | | E1 | O1 | L1 | O1 | P3 | I1 | l | E1 | | DL | | | DL | | | | F4 | A1 | X8 | | | DL | | | | DL | | | DW | | | | DW | | | DL | | | | | | TW | | | TL | | TL | | | TW | | | | "
+ " | | | TW | | | TL | | TL | | | TW | | | | | | DL | | | DW | | | | DW | | | DL | | | | DL | | | DL | | | | | | DL | | | DL | | TW | | | TL | | | | DW | | | | TL | | | TW | | | DL | | | | DL | | DL | | | | DL | | | | DW | | | | TL | | | | TL | | | | DW | | TL | | | | DL | | | | | | DL | | | | TL | | | | DW | | | | B3 | O1 | O1 | D2 | L1 | E1 | | | TL | | | | DL | | | | | U1 | DL | | | | TL | | DW | | | | TL | | | | I1 | | | | DW | | | | DL | | | | DL | | DL | S1 | | | DL | | | TW | | | TL | | | | DW | | T1 | | TL | | | TW | | DL | | | DL | | | | | I1 | DL | | | DL | | | | DL | | | DW | | | | t | | | DL | | | | | | TW | | | TL | | TL | I1 | | TW | | | | "
],
"text/plain": [
- "['#',\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",
- " '=',\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",
- " '.',\n",
- " ':',\n",
- " '.',\n",
- " '.',\n",
- " '#',\n",
- " '#',\n",
- " '.',\n",
- " ':',\n",
- " '.',\n",
- " '.',\n",
- " ':',\n",
- " '.',\n",
- " '.',\n",
- " '.',\n",
- " '.',\n",
- " '.',\n",
- " ':',\n",
- " 'I',\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',\n",
" '.',\n",
" '.',\n",
" '=',\n",
- " '#',\n",
- " '#',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '∴',\n",
+ " '.',\n",
+ " '.',\n",
+ " '≡',\n",
+ " '█',\n",
+ " '█',\n",
" '.',\n",
" '.',\n",
" ':',\n",
@@ -7007,30 +8920,30 @@
" ':',\n",
" '.',\n",
" '.',\n",
- " 'C',\n",
+ " '.',\n",
" ':',\n",
" '.',\n",
" '.',\n",
- " '#',\n",
- " '#',\n",
+ " '█',\n",
+ " '█',\n",
" '.',\n",
- " '-',\n",
+ " '=',\n",
" '.',\n",
" '.',\n",
" '.',\n",
- " ';',\n",
+ " '∴',\n",
" '.',\n",
" '.',\n",
" '.',\n",
- " ';',\n",
+ " '∴',\n",
" '.',\n",
- " 'I',\n",
" '.',\n",
- " '-',\n",
" '.',\n",
- " '#',\n",
- " '#',\n",
- " ';',\n",
+ " '=',\n",
+ " '.',\n",
+ " '█',\n",
+ " '█',\n",
+ " '∴',\n",
" '.',\n",
" '.',\n",
" '.',\n",
@@ -7041,308 +8954,30 @@
" '.',\n",
" '.',\n",
" ':',\n",
- " 'D',\n",
- " '.',\n",
- " '.',\n",
- " ';',\n",
- " '#',\n",
- " '#',\n",
" '.',\n",
" '.',\n",
" '.',\n",
- " '-',\n",
+ " '∴',\n",
+ " '█',\n",
+ " '█',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '=',\n",
" '.',\n",
" '.',\n",
" '.',\n",
" 'B',\n",
- " 'U',\n",
- " 'T',\n",
- " 'T',\n",
- " 'E',\n",
- " '.',\n",
- " '.',\n",
- " '.',\n",
- " '#',\n",
- " '#',\n",
- " ';',\n",
- " '.',\n",
- " '.',\n",
- " '.',\n",
- " ':',\n",
- " '.',\n",
- " '.',\n",
- " 'I',\n",
- " '.',\n",
- " '.',\n",
- " ':',\n",
- " 'N',\n",
- " '.',\n",
- " '.',\n",
- " ';',\n",
- " '#',\n",
- " '#',\n",
- " '.',\n",
- " '-',\n",
- " '.',\n",
- " '.',\n",
- " '.',\n",
- " ';',\n",
- " '.',\n",
" 'O',\n",
- " '.',\n",
- " ';',\n",
- " '.',\n",
- " 'T',\n",
- " '.',\n",
- " '-',\n",
- " '.',\n",
- " '#',\n",
- " '#',\n",
- " '.',\n",
- " '.',\n",
- " ':',\n",
- " '.',\n",
- " '.',\n",
- " '.',\n",
- " ':',\n",
- " 'M',\n",
- " ':',\n",
- " '.',\n",
- " '.',\n",
- " '.',\n",
- " ':',\n",
- " '.',\n",
- " '.',\n",
- " '#',\n",
- " '#',\n",
- " '=',\n",
- " '.',\n",
- " '.',\n",
- " ';',\n",
- " '.',\n",
- " '.',\n",
- " '.',\n",
- " 'E',\n",
" 'O',\n",
+ " 'D',\n",
" 'L',\n",
- " 'O',\n",
- " 'P',\n",
- " 'I',\n",
- " 'l',\n",
" 'E',\n",
- " '#',\n",
- " '#',\n",
" '.',\n",
- " ':',\n",
" '.',\n",
- " '.',\n",
- " ':',\n",
- " '.',\n",
- " '.',\n",
- " '.',\n",
- " 'F',\n",
- " 'A',\n",
- " 'X',\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",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#']"
- ]
- },
- "metadata": {},
- "output_type": "display_data"
- },
- {
- "data": {
- "text/html": [
- "Player 1 with rack OFUADSE makes Play(start=180, dir=1, letters='FETUS', rack='OAD') for 32 points; draws: OADTYTI; scores: [107, 130]"
- ],
- "text/plain": [
- ""
- ]
- },
- "metadata": {},
- "output_type": "display_data"
- },
- {
- "data": {
- "text/html": [
- " | | | TW | | | TL | | TL | | | TW | | | | | | DL | | | DW | | | | DW | | | DL | | | | DL | | | DL | | | | | | DL | I1 | | DL | | TW | | | TL | | | | DW | | | | N1 | | | TW | | | DL | | | | DL | | DL | | | C3 | DL | | | | DW | | | | TL | | | | TL | | I1 | | DW | | TL | | | | DL | | | | | | DL | D2 | | | TL | | | | DW | | | | B3 | U1 | T1 | T1 | E1 | | | | TL | | | | DL | | | I1 | | | DL | N1 | | | TL | | DW | | | | TL | | O1 | | F4 | E1 | T1 | U1 | S1 | | | | DL | | | | DL | M3 | DL | | | | DL | | | TW | | | TL | | | | E1 | O1 | L1 | O1 | P3 | I1 | l | E1 | | DL | | | DL | | | | F4 | A1 | X8 | | | DL | | | | DL | | | DW | | | | DW | | | DL | | | | | | TW | | | TL | | TL | | | TW | | | | "
- ],
- "text/plain": [
- "['#',\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",
- " '.',\n",
- " '-',\n",
- " '.',\n",
- " '.',\n",
- " '.',\n",
- " '-',\n",
- " '.',\n",
- " '.',\n",
- " ':',\n",
- " '.',\n",
- " '.',\n",
- " '#',\n",
- " '#',\n",
- " '.',\n",
- " ':',\n",
- " '.',\n",
- " '.',\n",
- " ':',\n",
- " '.',\n",
- " '.',\n",
- " '.',\n",
- " '.',\n",
- " '.',\n",
- " ':',\n",
- " 'I',\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",
- " 'C',\n",
- " ':',\n",
- " '.',\n",
- " '.',\n",
- " '#',\n",
- " '#',\n",
- " '.',\n",
- " '-',\n",
- " '.',\n",
- " '.',\n",
- " '.',\n",
- " ';',\n",
- " '.',\n",
- " '.',\n",
- " '.',\n",
- " ';',\n",
- " '.',\n",
- " 'I',\n",
- " '.',\n",
- " '-',\n",
- " '.',\n",
- " '#',\n",
- " '#',\n",
- " ';',\n",
+ " '█',\n",
+ " '█',\n",
+ " '∴',\n",
" '.',\n",
" '.',\n",
" '.',\n",
@@ -7351,166 +8986,132 @@
" '.',\n",
" '.',\n",
" '.',\n",
- " '.',\n",
- " ':',\n",
- " 'D',\n",
- " '.',\n",
- " '.',\n",
- " ';',\n",
- " '#',\n",
- " '#',\n",
- " '.',\n",
- " '.',\n",
- " '.',\n",
- " '-',\n",
- " '.',\n",
- " '.',\n",
- " '.',\n",
- " 'B',\n",
" 'U',\n",
- " 'T',\n",
- " 'T',\n",
- " 'E',\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",
" 'I',\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",
- " 'O',\n",
- " '.',\n",
- " 'F',\n",
- " 'E',\n",
- " 'T',\n",
- " 'U',\n",
+ " ':',\n",
" 'S',\n",
" '.',\n",
- " '#',\n",
- " '#',\n",
- " '.',\n",
" '.',\n",
" ':',\n",
" '.',\n",
" '.',\n",
+ " '█',\n",
+ " '█',\n",
+ " '≡',\n",
" '.',\n",
- " ':',\n",
- " 'M',\n",
- " ':',\n",
+ " '.',\n",
+ " '∴',\n",
" '.',\n",
" '.',\n",
" '.',\n",
- " ':',\n",
- " '.',\n",
- " '.',\n",
- " '#',\n",
- " '#',\n",
" '=',\n",
" '.',\n",
+ " 'T',\n",
+ " '.',\n",
+ " '∴',\n",
+ " '.',\n",
+ " '.',\n",
+ " '≡',\n",
+ " '█',\n",
+ " '█',\n",
+ " '.',\n",
+ " ':',\n",
+ " '.',\n",
+ " '.',\n",
+ " ':',\n",
" '.',\n",
- " ';',\n",
" '.',\n",
" '.',\n",
" '.',\n",
- " 'E',\n",
- " 'O',\n",
- " 'L',\n",
- " 'O',\n",
- " 'P',\n",
" 'I',\n",
- " 'l',\n",
- " 'E',\n",
- " '#',\n",
- " '#',\n",
- " '.',\n",
" ':',\n",
" '.',\n",
" '.',\n",
" ':',\n",
" '.',\n",
- " '.',\n",
- " '.',\n",
- " 'F',\n",
- " 'A',\n",
- " 'X',\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",
" '.',\n",
" '.',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#']"
+ " 't',\n",
+ " '.',\n",
+ " '.',\n",
+ " ':',\n",
+ " '.',\n",
+ " '.',\n",
+ " '█',\n",
+ " '█',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '≡',\n",
+ " '.',\n",
+ " '.',\n",
+ " '∴',\n",
+ " '.',\n",
+ " '∴',\n",
+ " 'I',\n",
+ " '.',\n",
+ " '≡',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█']"
]
},
"metadata": {},
@@ -7519,7 +9120,7 @@
{
"data": {
"text/html": [
- "Player 0 with rack RRDACGA makes Play(start=112, dir=1, letters='CAIRD', rack='RGA') for 28 points; draws: RGAEESA; scores: [135, 130]"
+ "Player 0 with rack STOYNRR makes Play(start=264, dir=1, letters='YIRR', rack='STON') for 45 points ; draws: STONONE; scores: [63, 53]"
],
"text/plain": [
""
@@ -7531,95 +9132,320 @@
{
"data": {
"text/html": [
- " | | | TW | | | TL | | TL | | | TW | | | | | | DL | | | DW | | | | DW | | | DL | | | | DL | | | DL | | | | | | DL | I1 | | DL | | TW | | | TL | | | | DW | | | | N1 | | | TW | | | DL | | | | DL | | DL | | | C3 | DL | | | | DW | | | | TL | | | | C3 | A1 | I1 | R1 | D2 | | TL | | | | DL | | | | | | DL | D2 | | | TL | | | | DW | | | | B3 | U1 | T1 | T1 | E1 | | | | TL | | | | DL | | | I1 | | | DL | N1 | | | TL | | DW | | | | TL | | O1 | | F4 | E1 | T1 | U1 | S1 | | | | DL | | | | DL | M3 | DL | | | | DL | | | TW | | | TL | | | | E1 | O1 | L1 | O1 | P3 | I1 | l | E1 | | DL | | | DL | | | | F4 | A1 | X8 | | | DL | | | | DL | | | DW | | | | DW | | | DL | | | | | | TW | | | TL | | TL | | | TW | | | | "
+ " | | | TW | | | TL | | TL | | | TW | | | | | | DL | | | DW | | | | DW | | | DL | | | | DL | | | DL | | | | | | DL | | | DL | | TW | | | TL | | | | DW | | | | TL | | | TW | | | DL | | | | DL | | DL | | | | DL | | | | DW | | | | TL | | | | TL | | | | DW | | TL | | | | DL | | | | | | DL | | | | TL | | | | DW | | | | B3 | O1 | O1 | D2 | L1 | E1 | | | TL | | | | DL | | | | | U1 | DL | | | | TL | | DW | | | | TL | | | | I1 | | | | DW | | | | DL | | | | DL | | DL | S1 | | | DL | | | TW | | | TL | | | | DW | | T1 | | TL | | | TW | | DL | | | DL | | | | | I1 | DL | | | DL | | | | DL | | | DW | | | | t | | | DL | | | | | | TW | | | TL | | Y4 | I1 | R1 | R1 | | | | "
],
"text/plain": [
- "['#',\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",
- " '=',\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",
- " '.',\n",
- " ':',\n",
- " '.',\n",
- " '.',\n",
- " '#',\n",
- " '#',\n",
- " '.',\n",
- " ':',\n",
- " '.',\n",
- " '.',\n",
- " ':',\n",
- " '.',\n",
- " '.',\n",
- " '.',\n",
- " '.',\n",
- " '.',\n",
- " ':',\n",
- " 'I',\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',\n",
" '.',\n",
" '.',\n",
" '=',\n",
- " '#',\n",
- " '#',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '∴',\n",
+ " '.',\n",
+ " '.',\n",
+ " '≡',\n",
+ " '█',\n",
+ " '█',\n",
" '.',\n",
" '.',\n",
" ':',\n",
@@ -7631,30 +9457,30 @@
" ':',\n",
" '.',\n",
" '.',\n",
- " 'C',\n",
+ " '.',\n",
" ':',\n",
" '.',\n",
" '.',\n",
- " '#',\n",
- " '#',\n",
+ " '█',\n",
+ " '█',\n",
" '.',\n",
- " '-',\n",
+ " '=',\n",
" '.',\n",
" '.',\n",
" '.',\n",
- " ';',\n",
+ " '∴',\n",
" '.',\n",
" '.',\n",
" '.',\n",
- " 'C',\n",
- " 'A',\n",
- " 'I',\n",
- " 'R',\n",
- " 'D',\n",
+ " '∴',\n",
" '.',\n",
- " '#',\n",
- " '#',\n",
- " ';',\n",
+ " '.',\n",
+ " '.',\n",
+ " '=',\n",
+ " '.',\n",
+ " '█',\n",
+ " '█',\n",
+ " '∴',\n",
" '.',\n",
" '.',\n",
" '.',\n",
@@ -7665,476 +9491,164 @@
" '.',\n",
" '.',\n",
" ':',\n",
- " 'D',\n",
- " '.',\n",
- " '.',\n",
- " ';',\n",
- " '#',\n",
- " '#',\n",
" '.',\n",
" '.',\n",
" '.',\n",
- " '-',\n",
+ " '∴',\n",
+ " '█',\n",
+ " '█',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '=',\n",
" '.',\n",
" '.',\n",
" '.',\n",
" 'B',\n",
- " 'U',\n",
- " 'T',\n",
- " 'T',\n",
+ " 'O',\n",
+ " 'O',\n",
+ " 'D',\n",
+ " 'L',\n",
" 'E',\n",
" '.',\n",
" '.',\n",
- " '.',\n",
- " '#',\n",
- " '#',\n",
- " ';',\n",
+ " '█',\n",
+ " '█',\n",
+ " '∴',\n",
" '.',\n",
" '.',\n",
" '.',\n",
" ':',\n",
" '.',\n",
" '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'U',\n",
+ " ':',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '∴',\n",
+ " '█',\n",
+ " '█',\n",
+ " '.',\n",
+ " '=',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '∴',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
" 'I',\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",
- " 'O',\n",
- " '.',\n",
- " 'F',\n",
- " 'E',\n",
- " 'T',\n",
- " 'U',\n",
+ " ':',\n",
" 'S',\n",
" '.',\n",
- " '#',\n",
- " '#',\n",
- " '.',\n",
" '.',\n",
" ':',\n",
" '.',\n",
" '.',\n",
- " '.',\n",
- " ':',\n",
- " 'M',\n",
- " ':',\n",
+ " '█',\n",
+ " '█',\n",
+ " '≡',\n",
" '.',\n",
" '.',\n",
- " '.',\n",
- " ':',\n",
- " '.',\n",
- " '.',\n",
- " '#',\n",
- " '#',\n",
- " '=',\n",
- " '.',\n",
- " '.',\n",
- " ';',\n",
- " '.',\n",
- " '.',\n",
- " '.',\n",
- " 'E',\n",
- " 'O',\n",
- " 'L',\n",
- " 'O',\n",
- " 'P',\n",
- " 'I',\n",
- " 'l',\n",
- " 'E',\n",
- " '#',\n",
- " '#',\n",
- " '.',\n",
- " ':',\n",
- " '.',\n",
- " '.',\n",
- " ':',\n",
- " '.',\n",
- " '.',\n",
- " '.',\n",
- " 'F',\n",
- " 'A',\n",
- " 'X',\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",
- " '.',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#']"
- ]
- },
- "metadata": {},
- "output_type": "display_data"
- },
- {
- "data": {
- "text/html": [
- "Player 1 with rack OADTYTI makes Play(start=248, dir=1, letters='TOADY', rack='TI') for 38 points; draws: TIROSIA; scores: [135, 168]"
- ],
- "text/plain": [
- ""
- ]
- },
- "metadata": {},
- "output_type": "display_data"
- },
- {
- "data": {
- "text/html": [
- " | | | TW | | | TL | | TL | | | TW | | | | | | DL | | | DW | | | | DW | | | DL | | | | DL | | | DL | | | | | | DL | I1 | | DL | | TW | | | TL | | | | DW | | | | N1 | | | TW | | | DL | | | | DL | | DL | | | C3 | DL | | | | DW | | | | TL | | | | C3 | A1 | I1 | R1 | D2 | | TL | | | | DL | | | | | | DL | D2 | | | TL | | | | DW | | | | B3 | U1 | T1 | T1 | E1 | | | | TL | | | | DL | | | I1 | | | DL | N1 | | | TL | | DW | | | | TL | | O1 | | F4 | E1 | T1 | U1 | S1 | | | | DL | | | | DL | M3 | DL | | | | DL | | | TW | | | TL | | | | E1 | O1 | L1 | O1 | P3 | I1 | l | E1 | | DL | | | DL | | | | F4 | A1 | X8 | | | DL | | | | DL | | | DW | | | | T1 | O1 | A1 | D2 | Y4 | | | | | TW | | | TL | | TL | | | TW | | | | "
- ],
- "text/plain": [
- "['#',\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",
- " '.',\n",
- " '-',\n",
- " '.',\n",
- " '.',\n",
- " '.',\n",
- " '-',\n",
- " '.',\n",
- " '.',\n",
- " ':',\n",
- " '.',\n",
- " '.',\n",
- " '#',\n",
- " '#',\n",
- " '.',\n",
- " ':',\n",
- " '.',\n",
- " '.',\n",
- " ':',\n",
- " '.',\n",
- " '.',\n",
- " '.',\n",
- " '.',\n",
- " '.',\n",
- " ':',\n",
- " 'I',\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",
- " 'C',\n",
- " ':',\n",
- " '.',\n",
- " '.',\n",
- " '#',\n",
- " '#',\n",
- " '.',\n",
- " '-',\n",
- " '.',\n",
- " '.',\n",
- " '.',\n",
- " ';',\n",
- " '.',\n",
- " '.',\n",
- " '.',\n",
- " 'C',\n",
- " 'A',\n",
- " 'I',\n",
- " 'R',\n",
- " 'D',\n",
- " '.',\n",
- " '#',\n",
- " '#',\n",
- " ';',\n",
- " '.',\n",
- " '.',\n",
- " '.',\n",
- " ':',\n",
- " '.',\n",
- " '.',\n",
- " '.',\n",
- " '.',\n",
- " '.',\n",
- " ':',\n",
- " 'D',\n",
- " '.',\n",
- " '.',\n",
- " ';',\n",
- " '#',\n",
- " '#',\n",
- " '.',\n",
- " '.',\n",
- " '.',\n",
- " '-',\n",
- " '.',\n",
- " '.',\n",
- " '.',\n",
- " 'B',\n",
- " 'U',\n",
- " 'T',\n",
- " 'T',\n",
- " 'E',\n",
- " '.',\n",
- " '.',\n",
- " '.',\n",
- " '#',\n",
- " '#',\n",
- " ';',\n",
- " '.',\n",
- " '.',\n",
- " '.',\n",
- " ':',\n",
- " '.',\n",
- " '.',\n",
- " 'I',\n",
- " '.',\n",
- " '.',\n",
- " ':',\n",
- " 'N',\n",
- " '.',\n",
- " '.',\n",
- " ';',\n",
- " '#',\n",
- " '#',\n",
- " '.',\n",
- " '-',\n",
- " '.',\n",
- " '.',\n",
- " '.',\n",
- " ';',\n",
- " '.',\n",
- " 'O',\n",
- " '.',\n",
- " 'F',\n",
- " 'E',\n",
- " 'T',\n",
- " 'U',\n",
- " 'S',\n",
- " '.',\n",
- " '#',\n",
- " '#',\n",
- " '.',\n",
- " '.',\n",
- " ':',\n",
- " '.',\n",
- " '.',\n",
- " '.',\n",
- " ':',\n",
- " 'M',\n",
- " ':',\n",
- " '.',\n",
- " '.',\n",
- " '.',\n",
- " ':',\n",
- " '.',\n",
- " '.',\n",
- " '#',\n",
- " '#',\n",
- " '=',\n",
- " '.',\n",
- " '.',\n",
- " ';',\n",
- " '.',\n",
- " '.',\n",
- " '.',\n",
- " 'E',\n",
- " 'O',\n",
- " 'L',\n",
- " 'O',\n",
- " 'P',\n",
- " 'I',\n",
- " 'l',\n",
- " 'E',\n",
- " '#',\n",
- " '#',\n",
- " '.',\n",
- " ':',\n",
- " '.',\n",
- " '.',\n",
- " ':',\n",
- " '.',\n",
- " '.',\n",
- " '.',\n",
- " 'F',\n",
- " 'A',\n",
- " 'X',\n",
- " '.',\n",
- " '.',\n",
- " ':',\n",
- " '.',\n",
- " '#',\n",
- " '#',\n",
- " '.',\n",
- " '.',\n",
- " ':',\n",
- " '.',\n",
- " '.',\n",
- " '-',\n",
- " '.',\n",
- " '.',\n",
- " '.',\n",
" 'T',\n",
- " 'O',\n",
- " 'A',\n",
- " 'D',\n",
+ " '.',\n",
+ " '∴',\n",
+ " '.',\n",
+ " '.',\n",
+ " '≡',\n",
+ " '█',\n",
+ " '█',\n",
+ " '.',\n",
+ " ':',\n",
+ " '.',\n",
+ " '.',\n",
+ " ':',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'I',\n",
+ " ':',\n",
+ " '.',\n",
+ " '.',\n",
+ " ':',\n",
+ " '.',\n",
+ " '█',\n",
+ " '█',\n",
+ " '.',\n",
+ " '.',\n",
+ " ':',\n",
+ " '.',\n",
+ " '.',\n",
+ " '=',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 't',\n",
+ " '.',\n",
+ " '.',\n",
+ " ':',\n",
+ " '.',\n",
+ " '.',\n",
+ " '█',\n",
+ " '█',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '≡',\n",
+ " '.',\n",
+ " '.',\n",
+ " '∴',\n",
+ " '.',\n",
" 'Y',\n",
- " '.',\n",
- " '#',\n",
- " '#',\n",
+ " 'I',\n",
+ " 'R',\n",
+ " 'R',\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",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█']"
]
},
"metadata": {},
@@ -8143,7 +9657,7 @@
{
"data": {
"text/html": [
- "Player 0 with rack RGAEESA makes Play(start=49, dir=17, letters='GREASE', rack='A') for 36 points; draws: AERGQPG; scores: [171, 168]"
+ "Player 1 with rack OHAKAQL makes Play(start=212, dir=1, letters='LOTAH', rack='KAQ') for 32 points ; draws: KAQDEWU; scores: [63, 85]"
],
"text/plain": [
""
@@ -8155,95 +9669,320 @@
{
"data": {
"text/html": [
- " | | | TW | | | TL | | TL | | | TW | | | | | | DL | | | DW | | | | DW | | | DL | | G2 | | DL | | | DL | | | | | | DL | I1 | | DL | R1 | TW | | | TL | | | | DW | | | | N1 | | | E1 | | | DL | | | | DL | | DL | | | C3 | DL | | A1 | | DW | | | | TL | | | | C3 | A1 | I1 | R1 | D2 | S1 | TL | | | | DL | | | | | | DL | D2 | | | E1 | | | | DW | | | | B3 | U1 | T1 | T1 | E1 | | | | TL | | | | DL | | | I1 | | | DL | N1 | | | TL | | DW | | | | TL | | O1 | | F4 | E1 | T1 | U1 | S1 | | | | DL | | | | DL | M3 | DL | | | | DL | | | TW | | | TL | | | | E1 | O1 | L1 | O1 | P3 | I1 | l | E1 | | DL | | | DL | | | | F4 | A1 | X8 | | | DL | | | | DL | | | DW | | | | T1 | O1 | A1 | D2 | Y4 | | | | | TW | | | TL | | TL | | | TW | | | | "
+ " | | | TW | | | TL | | TL | | | TW | | | | | | DL | | | DW | | | | DW | | | DL | | | | DL | | | DL | | | | | | DL | | | DL | | TW | | | TL | | | | DW | | | | TL | | | TW | | | DL | | | | DL | | DL | | | | DL | | | | DW | | | | TL | | | | TL | | | | DW | | TL | | | | DL | | | | | | DL | | | | TL | | | | DW | | | | B3 | O1 | O1 | D2 | L1 | E1 | | | TL | | | | DL | | | | | U1 | DL | | | | TL | | DW | | | | TL | | | | I1 | | | | DW | | | | DL | | | | DL | | DL | S1 | | | DL | | | TW | | | TL | | | | L1 | O1 | T1 | A1 | H4 | | | TW | | DL | | | DL | | | | | I1 | DL | | | DL | | | | DL | | | DW | | | | t | | | DL | | | | | | TW | | | TL | | Y4 | I1 | R1 | R1 | | | | "
],
"text/plain": [
- "['#',\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",
- " '=',\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",
- " '.',\n",
- " ':',\n",
- " '.',\n",
- " 'G',\n",
- " '#',\n",
- " '#',\n",
- " '.',\n",
- " ':',\n",
- " '.',\n",
- " '.',\n",
- " ':',\n",
- " '.',\n",
- " '.',\n",
- " '.',\n",
- " '.',\n",
- " '.',\n",
- " ':',\n",
- " 'I',\n",
- " '.',\n",
- " ':',\n",
- " 'R',\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",
+ " '=',\n",
" '.',\n",
" '.',\n",
- " 'E',\n",
- " '#',\n",
- " '#',\n",
+ " '.',\n",
+ " '∴',\n",
+ " '.',\n",
+ " '.',\n",
+ " '≡',\n",
+ " '█',\n",
+ " '█',\n",
" '.',\n",
" '.',\n",
" ':',\n",
@@ -8255,30 +9994,30 @@
" ':',\n",
" '.',\n",
" '.',\n",
- " 'C',\n",
+ " '.',\n",
" ':',\n",
" '.',\n",
- " 'A',\n",
- " '#',\n",
- " '#',\n",
" '.',\n",
- " '-',\n",
+ " '█',\n",
+ " '█',\n",
+ " '.',\n",
+ " '=',\n",
" '.',\n",
" '.',\n",
" '.',\n",
- " ';',\n",
+ " '∴',\n",
" '.',\n",
" '.',\n",
" '.',\n",
- " 'C',\n",
- " 'A',\n",
- " 'I',\n",
- " 'R',\n",
- " 'D',\n",
- " 'S',\n",
- " '#',\n",
- " '#',\n",
- " ';',\n",
+ " '∴',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '=',\n",
+ " '.',\n",
+ " '█',\n",
+ " '█',\n",
+ " '∴',\n",
" '.',\n",
" '.',\n",
" '.',\n",
@@ -8289,164 +10028,164 @@
" '.',\n",
" '.',\n",
" ':',\n",
- " 'D',\n",
- " '.',\n",
- " '.',\n",
- " 'E',\n",
- " '#',\n",
- " '#',\n",
" '.',\n",
" '.',\n",
" '.',\n",
- " '-',\n",
+ " '∴',\n",
+ " '█',\n",
+ " '█',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '=',\n",
" '.',\n",
" '.',\n",
" '.',\n",
" 'B',\n",
- " 'U',\n",
- " 'T',\n",
- " 'T',\n",
+ " 'O',\n",
+ " 'O',\n",
+ " 'D',\n",
+ " 'L',\n",
" 'E',\n",
" '.',\n",
" '.',\n",
- " '.',\n",
- " '#',\n",
- " '#',\n",
- " ';',\n",
+ " '█',\n",
+ " '█',\n",
+ " '∴',\n",
" '.',\n",
" '.',\n",
" '.',\n",
" ':',\n",
" '.',\n",
" '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'U',\n",
+ " ':',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '∴',\n",
+ " '█',\n",
+ " '█',\n",
+ " '.',\n",
+ " '=',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '∴',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
" 'I',\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",
- " 'O',\n",
- " '.',\n",
- " 'F',\n",
- " 'E',\n",
- " 'T',\n",
- " 'U',\n",
+ " ':',\n",
" 'S',\n",
" '.',\n",
- " '#',\n",
- " '#',\n",
- " '.',\n",
" '.',\n",
" ':',\n",
" '.',\n",
" '.',\n",
+ " '█',\n",
+ " '█',\n",
+ " '≡',\n",
" '.',\n",
- " ':',\n",
- " 'M',\n",
- " ':',\n",
+ " '.',\n",
+ " '∴',\n",
" '.',\n",
" '.',\n",
" '.',\n",
- " ':',\n",
- " '.',\n",
- " '.',\n",
- " '#',\n",
- " '#',\n",
- " '=',\n",
- " '.',\n",
- " '.',\n",
- " ';',\n",
- " '.',\n",
- " '.',\n",
- " '.',\n",
- " 'E',\n",
- " 'O',\n",
" 'L',\n",
" 'O',\n",
- " 'P',\n",
- " 'I',\n",
- " 'l',\n",
- " 'E',\n",
- " '#',\n",
- " '#',\n",
- " '.',\n",
- " ':',\n",
- " '.',\n",
- " '.',\n",
- " ':',\n",
- " '.',\n",
- " '.',\n",
- " '.',\n",
- " 'F',\n",
- " 'A',\n",
- " 'X',\n",
- " '.',\n",
- " '.',\n",
- " ':',\n",
- " '.',\n",
- " '#',\n",
- " '#',\n",
- " '.',\n",
- " '.',\n",
- " ':',\n",
- " '.',\n",
- " '.',\n",
- " '-',\n",
- " '.',\n",
- " '.',\n",
- " '.',\n",
" 'T',\n",
- " 'O',\n",
" 'A',\n",
- " 'D',\n",
+ " 'H',\n",
+ " '.',\n",
+ " '.',\n",
+ " '≡',\n",
+ " '█',\n",
+ " '█',\n",
+ " '.',\n",
+ " ':',\n",
+ " '.',\n",
+ " '.',\n",
+ " ':',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'I',\n",
+ " ':',\n",
+ " '.',\n",
+ " '.',\n",
+ " ':',\n",
+ " '.',\n",
+ " '█',\n",
+ " '█',\n",
+ " '.',\n",
+ " '.',\n",
+ " ':',\n",
+ " '.',\n",
+ " '.',\n",
+ " '=',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 't',\n",
+ " '.',\n",
+ " '.',\n",
+ " ':',\n",
+ " '.',\n",
+ " '.',\n",
+ " '█',\n",
+ " '█',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '≡',\n",
+ " '.',\n",
+ " '.',\n",
+ " '∴',\n",
+ " '.',\n",
" 'Y',\n",
- " '.',\n",
- " '#',\n",
- " '#',\n",
+ " 'I',\n",
+ " 'R',\n",
+ " 'R',\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",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█']"
]
},
"metadata": {},
@@ -8455,7 +10194,7 @@
{
"data": {
"text/html": [
- "Player 1 with rack TIROSIA makes Play(start=267, dir=1, letters='SOAR', rack='TII') for 26 points; draws: TIIEANA; scores: [171, 194]"
+ "Player 0 with rack STONONE makes Play(start=116, dir=17, letters='ONSET', rack='ON') for 30 points ; draws: ONROBEM; scores: [93, 85]"
],
"text/plain": [
""
@@ -8467,298 +10206,523 @@
{
"data": {
"text/html": [
- " | | | TW | | | TL | | TL | | | TW | | | | | | DL | | | DW | | | | DW | | | DL | | G2 | | DL | | | DL | | | | | | DL | I1 | | DL | R1 | TW | | | TL | | | | DW | | | | N1 | | | E1 | | | DL | | | | DL | | DL | | | C3 | DL | | A1 | | DW | | | | TL | | | | C3 | A1 | I1 | R1 | D2 | S1 | TL | | | | DL | | | | | | DL | D2 | | | E1 | | | | DW | | | | B3 | U1 | T1 | T1 | E1 | | | | TL | | | | DL | | | I1 | | | DL | N1 | | | TL | | DW | | | | TL | | O1 | | F4 | E1 | T1 | U1 | S1 | | | | DL | | | | DL | M3 | DL | | | | DL | | | TW | | | TL | | | | E1 | O1 | L1 | O1 | P3 | I1 | l | E1 | | DL | | | DL | | | | F4 | A1 | X8 | | | DL | | | | DL | | | DW | | | | T1 | O1 | A1 | D2 | Y4 | | | | | TW | | | TL | | TL | | | S1 | O1 | A1 | R1 | "
+ " | | | TW | | | TL | | TL | | | TW | | | | | | DL | | | DW | | | | DW | | | DL | | | | DL | | | DL | | | | | | DL | | | DL | | TW | | | TL | | | | DW | | | | TL | | | TW | | | DL | | | | DL | | DL | | | | DL | | | | DW | | | | TL | | | | TL | | | | O1 | | TL | | | | DL | | | | | | DL | | | N1 | TL | | | | DW | | | | B3 | O1 | O1 | D2 | L1 | E1 | S1 | | TL | | | | DL | | | | | U1 | DL | | | E1 | TL | | DW | | | | TL | | | | I1 | | | | T1 | | | | DL | | | | DL | | DL | S1 | | | DL | | | TW | | | TL | | | | L1 | O1 | T1 | A1 | H4 | | | TW | | DL | | | DL | | | | | I1 | DL | | | DL | | | | DL | | | DW | | | | t | | | DL | | | | | | TW | | | TL | | Y4 | I1 | R1 | R1 | | | | "
],
"text/plain": [
- "['#',\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",
- " '=',\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",
- " '.',\n",
- " ':',\n",
- " '.',\n",
- " 'G',\n",
- " '#',\n",
- " '#',\n",
- " '.',\n",
- " ':',\n",
- " '.',\n",
- " '.',\n",
- " ':',\n",
- " '.',\n",
- " '.',\n",
- " '.',\n",
- " '.',\n",
- " '.',\n",
- " ':',\n",
- " 'I',\n",
- " '.',\n",
- " ':',\n",
- " 'R',\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",
+ " '.',\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",
+ " 'O',\n",
+ " '.',\n",
+ " '█',\n",
+ " '█',\n",
+ " '∴',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " ':',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " ':',\n",
+ " '.',\n",
" '.',\n",
" 'N',\n",
- " '.',\n",
- " '.',\n",
- " 'E',\n",
- " '#',\n",
- " '#',\n",
- " '.',\n",
- " '.',\n",
- " ':',\n",
+ " '∴',\n",
+ " '█',\n",
+ " '█',\n",
" '.',\n",
" '.',\n",
" '.',\n",
- " ':',\n",
- " '.',\n",
- " ':',\n",
- " '.',\n",
- " '.',\n",
- " 'C',\n",
- " ':',\n",
- " '.',\n",
- " 'A',\n",
- " '#',\n",
- " '#',\n",
- " '.',\n",
- " '-',\n",
- " '.',\n",
- " '.',\n",
- " '.',\n",
- " ';',\n",
- " '.',\n",
- " '.',\n",
- " '.',\n",
- " 'C',\n",
- " 'A',\n",
- " 'I',\n",
- " 'R',\n",
- " 'D',\n",
- " 'S',\n",
- " '#',\n",
- " '#',\n",
- " ';',\n",
- " '.',\n",
- " '.',\n",
- " '.',\n",
- " ':',\n",
- " '.',\n",
- " '.',\n",
- " '.',\n",
- " '.',\n",
- " '.',\n",
- " ':',\n",
- " 'D',\n",
- " '.',\n",
- " '.',\n",
- " 'E',\n",
- " '#',\n",
- " '#',\n",
- " '.',\n",
- " '.',\n",
- " '.',\n",
- " '-',\n",
+ " '=',\n",
" '.',\n",
" '.',\n",
" '.',\n",
" 'B',\n",
- " 'U',\n",
- " 'T',\n",
- " 'T',\n",
+ " 'O',\n",
+ " 'O',\n",
+ " 'D',\n",
+ " 'L',\n",
" 'E',\n",
+ " 'S',\n",
" '.',\n",
- " '.',\n",
- " '.',\n",
- " '#',\n",
- " '#',\n",
- " ';',\n",
+ " '█',\n",
+ " '█',\n",
+ " '∴',\n",
" '.',\n",
" '.',\n",
" '.',\n",
" ':',\n",
" '.',\n",
" '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'U',\n",
+ " ':',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'E',\n",
+ " '∴',\n",
+ " '█',\n",
+ " '█',\n",
+ " '.',\n",
+ " '=',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '∴',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
" 'I',\n",
" '.',\n",
" '.',\n",
- " ':',\n",
- " 'N',\n",
" '.',\n",
- " '.',\n",
- " ';',\n",
- " '#',\n",
- " '#',\n",
- " '.',\n",
- " '-',\n",
- " '.',\n",
- " '.',\n",
- " '.',\n",
- " ';',\n",
- " '.',\n",
- " 'O',\n",
- " '.',\n",
- " 'F',\n",
- " 'E',\n",
" 'T',\n",
- " 'U',\n",
+ " '.',\n",
+ " '█',\n",
+ " '█',\n",
+ " '.',\n",
+ " '.',\n",
+ " ':',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " ':',\n",
+ " '.',\n",
+ " ':',\n",
" 'S',\n",
" '.',\n",
- " '#',\n",
- " '#',\n",
- " '.',\n",
" '.',\n",
" ':',\n",
" '.',\n",
" '.',\n",
+ " '█',\n",
+ " '█',\n",
+ " '≡',\n",
" '.',\n",
- " ':',\n",
- " 'M',\n",
- " ':',\n",
+ " '.',\n",
+ " '∴',\n",
" '.',\n",
" '.',\n",
" '.',\n",
- " ':',\n",
- " '.',\n",
- " '.',\n",
- " '#',\n",
- " '#',\n",
- " '=',\n",
- " '.',\n",
- " '.',\n",
- " ';',\n",
- " '.',\n",
- " '.',\n",
- " '.',\n",
- " 'E',\n",
- " 'O',\n",
" 'L',\n",
" 'O',\n",
- " 'P',\n",
- " 'I',\n",
- " 'l',\n",
- " 'E',\n",
- " '#',\n",
- " '#',\n",
- " '.',\n",
- " ':',\n",
- " '.',\n",
- " '.',\n",
- " ':',\n",
- " '.',\n",
- " '.',\n",
- " '.',\n",
- " 'F',\n",
- " 'A',\n",
- " 'X',\n",
- " '.',\n",
- " '.',\n",
- " ':',\n",
- " '.',\n",
- " '#',\n",
- " '#',\n",
- " '.',\n",
- " '.',\n",
- " ':',\n",
- " '.',\n",
- " '.',\n",
- " '-',\n",
- " '.',\n",
- " '.',\n",
- " '.',\n",
" 'T',\n",
- " 'O',\n",
" 'A',\n",
- " 'D',\n",
- " 'Y',\n",
+ " 'H',\n",
" '.',\n",
- " '#',\n",
- " '#',\n",
" '.',\n",
+ " '≡',\n",
+ " '█',\n",
+ " '█',\n",
+ " '.',\n",
+ " ':',\n",
+ " '.',\n",
+ " '.',\n",
+ " ':',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'I',\n",
+ " ':',\n",
+ " '.',\n",
+ " '.',\n",
+ " ':',\n",
+ " '.',\n",
+ " '█',\n",
+ " '█',\n",
+ " '.',\n",
+ " '.',\n",
+ " ':',\n",
" '.',\n",
" '.',\n",
" '=',\n",
" '.',\n",
" '.',\n",
- " ';',\n",
" '.',\n",
- " ';',\n",
+ " 't',\n",
" '.',\n",
" '.',\n",
- " 'S',\n",
- " 'O',\n",
- " 'A',\n",
+ " ':',\n",
+ " '.',\n",
+ " '.',\n",
+ " '█',\n",
+ " '█',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '≡',\n",
+ " '.',\n",
+ " '.',\n",
+ " '∴',\n",
+ " '.',\n",
+ " 'Y',\n",
+ " 'I',\n",
" 'R',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#']"
+ " 'R',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█']"
]
},
"metadata": {},
@@ -8767,7 +10731,7 @@
{
"data": {
"text/html": [
- "Player 0 with rack AERGQPG makes Play(start=262, dir=1, letters='GAPE', rack='RQG') for 21 points; draws: RQGENYJ; scores: [192, 194]"
+ "Player 1 with rack KAQDEWU makes Play(start=168, dir=17, letters='DAWK', rack='QEU') for 57 points ; draws: QEURLVI; scores: [93, 142]"
],
"text/plain": [
""
@@ -8779,997 +10743,456 @@
{
"data": {
"text/html": [
- " | | | TW | | | TL | | TL | | | TW | | | | | | DL | | | DW | | | | DW | | | DL | | G2 | | DL | | | DL | | | | | | DL | I1 | | DL | R1 | TW | | | TL | | | | DW | | | | N1 | | | E1 | | | DL | | | | DL | | DL | | | C3 | DL | | A1 | | DW | | | | TL | | | | C3 | A1 | I1 | R1 | D2 | S1 | TL | | | | DL | | | | | | DL | D2 | | | E1 | | | | DW | | | | B3 | U1 | T1 | T1 | E1 | | | | TL | | | | DL | | | I1 | | | DL | N1 | | | TL | | DW | | | | TL | | O1 | | F4 | E1 | T1 | U1 | S1 | | | | DL | | | | DL | M3 | DL | | | | DL | | | TW | | | TL | | | | E1 | O1 | L1 | O1 | P3 | I1 | l | E1 | | DL | | | DL | | | | F4 | A1 | X8 | | | DL | | | | DL | | | DW | | | | T1 | O1 | A1 | D2 | Y4 | | | | | TW | | | G2 | A1 | P3 | E1 | | S1 | O1 | A1 | R1 | "
+ " | | | TW | | | TL | | TL | | | TW | | | | | | DL | | | DW | | | | DW | | | DL | | | | DL | | | DL | | | | | | DL | | | DL | | TW | | | TL | | | | DW | | | | TL | | | TW | | | DL | | | | DL | | DL | | | | DL | | | | DW | | | | TL | | | | TL | | | | O1 | | TL | | | | DL | | | | | | DL | | | N1 | TL | | | | DW | | | | B3 | O1 | O1 | D2 | L1 | E1 | S1 | | TL | | | | DL | | | | | U1 | DL | | | E1 | D2 | | DW | | | | TL | | | | I1 | | | | T1 | A1 | | | DL | | | | DL | | DL | S1 | | | DL | | W4 | TW | | | TL | | | | L1 | O1 | T1 | A1 | H4 | | | K5 | | DL | | | DL | | | | | I1 | DL | | | DL | | | | DL | | | DW | | | | t | | | DL | | | | | | TW | | | TL | | Y4 | I1 | R1 | R1 | | | | "
],
"text/plain": [
- "['#',\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",
- " '=',\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",
- " '.',\n",
- " ':',\n",
- " '.',\n",
- " 'G',\n",
- " '#',\n",
- " '#',\n",
- " '.',\n",
- " ':',\n",
- " '.',\n",
- " '.',\n",
- " ':',\n",
- " '.',\n",
- " '.',\n",
- " '.',\n",
- " '.',\n",
- " '.',\n",
- " ':',\n",
- " 'I',\n",
- " '.',\n",
- " ':',\n",
- " 'R',\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",
+ " '.',\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",
+ " 'O',\n",
+ " '.',\n",
+ " '█',\n",
+ " '█',\n",
+ " '∴',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " ':',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " ':',\n",
+ " '.',\n",
" '.',\n",
" 'N',\n",
- " '.',\n",
- " '.',\n",
- " 'E',\n",
- " '#',\n",
- " '#',\n",
- " '.',\n",
- " '.',\n",
- " ':',\n",
+ " '∴',\n",
+ " '█',\n",
+ " '█',\n",
" '.',\n",
" '.',\n",
" '.',\n",
- " ':',\n",
- " '.',\n",
- " ':',\n",
- " '.',\n",
- " '.',\n",
- " 'C',\n",
- " ':',\n",
- " '.',\n",
- " 'A',\n",
- " '#',\n",
- " '#',\n",
- " '.',\n",
- " '-',\n",
- " '.',\n",
- " '.',\n",
- " '.',\n",
- " ';',\n",
- " '.',\n",
- " '.',\n",
- " '.',\n",
- " 'C',\n",
- " 'A',\n",
- " 'I',\n",
- " 'R',\n",
- " 'D',\n",
- " 'S',\n",
- " '#',\n",
- " '#',\n",
- " ';',\n",
- " '.',\n",
- " '.',\n",
- " '.',\n",
- " ':',\n",
- " '.',\n",
- " '.',\n",
- " '.',\n",
- " '.',\n",
- " '.',\n",
- " ':',\n",
- " 'D',\n",
- " '.',\n",
- " '.',\n",
- " 'E',\n",
- " '#',\n",
- " '#',\n",
- " '.',\n",
- " '.',\n",
- " '.',\n",
- " '-',\n",
+ " '=',\n",
" '.',\n",
" '.',\n",
" '.',\n",
" 'B',\n",
- " 'U',\n",
- " 'T',\n",
- " 'T',\n",
+ " 'O',\n",
+ " 'O',\n",
+ " 'D',\n",
+ " 'L',\n",
" 'E',\n",
+ " 'S',\n",
" '.',\n",
- " '.',\n",
- " '.',\n",
- " '#',\n",
- " '#',\n",
- " ';',\n",
+ " '█',\n",
+ " '█',\n",
+ " '∴',\n",
" '.',\n",
" '.',\n",
" '.',\n",
" ':',\n",
" '.',\n",
" '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'U',\n",
+ " ':',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'E',\n",
+ " 'D',\n",
+ " '█',\n",
+ " '█',\n",
+ " '.',\n",
+ " '=',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '∴',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
" 'I',\n",
" '.',\n",
" '.',\n",
- " ':',\n",
- " 'N',\n",
" '.',\n",
- " '.',\n",
- " ';',\n",
- " '#',\n",
- " '#',\n",
- " '.',\n",
- " '-',\n",
- " '.',\n",
- " '.',\n",
- " '.',\n",
- " ';',\n",
- " '.',\n",
- " 'O',\n",
- " '.',\n",
- " 'F',\n",
- " 'E',\n",
" 'T',\n",
- " 'U',\n",
+ " 'A',\n",
+ " '█',\n",
+ " '█',\n",
+ " '.',\n",
+ " '.',\n",
+ " ':',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " ':',\n",
+ " '.',\n",
+ " ':',\n",
" 'S',\n",
" '.',\n",
- " '#',\n",
- " '#',\n",
- " '.',\n",
" '.',\n",
" ':',\n",
" '.',\n",
+ " 'W',\n",
+ " '█',\n",
+ " '█',\n",
+ " '≡',\n",
" '.',\n",
" '.',\n",
- " ':',\n",
- " 'M',\n",
- " ':',\n",
+ " '∴',\n",
" '.',\n",
" '.',\n",
" '.',\n",
- " ':',\n",
- " '.',\n",
- " '.',\n",
- " '#',\n",
- " '#',\n",
- " '=',\n",
- " '.',\n",
- " '.',\n",
- " ';',\n",
- " '.',\n",
- " '.',\n",
- " '.',\n",
- " 'E',\n",
- " 'O',\n",
" 'L',\n",
" 'O',\n",
- " 'P',\n",
- " 'I',\n",
- " 'l',\n",
- " 'E',\n",
- " '#',\n",
- " '#',\n",
- " '.',\n",
- " ':',\n",
- " '.',\n",
- " '.',\n",
- " ':',\n",
- " '.',\n",
- " '.',\n",
- " '.',\n",
- " 'F',\n",
- " 'A',\n",
- " 'X',\n",
- " '.',\n",
- " '.',\n",
- " ':',\n",
- " '.',\n",
- " '#',\n",
- " '#',\n",
- " '.',\n",
- " '.',\n",
- " ':',\n",
- " '.',\n",
- " '.',\n",
- " '-',\n",
- " '.',\n",
- " '.',\n",
- " '.',\n",
" 'T',\n",
- " 'O',\n",
" 'A',\n",
- " 'D',\n",
- " 'Y',\n",
+ " 'H',\n",
" '.',\n",
- " '#',\n",
- " '#',\n",
" '.',\n",
- " '.',\n",
- " '.',\n",
- " '=',\n",
- " '.',\n",
- " '.',\n",
- " 'G',\n",
- " 'A',\n",
- " 'P',\n",
- " 'E',\n",
- " '.',\n",
- " 'S',\n",
- " 'O',\n",
- " 'A',\n",
- " 'R',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#']"
- ]
- },
- "metadata": {},
- "output_type": "display_data"
- },
- {
- "data": {
- "text/html": [
- "Player 1 with rack TIIEANA makes Play(start=176, dir=17, letters='TAENIA', rack='I') for 24 points; draws: IIKRZDH; scores: [192, 218]"
- ],
- "text/plain": [
- ""
- ]
- },
- "metadata": {},
- "output_type": "display_data"
- },
- {
- "data": {
- "text/html": [
- " | | | TW | | | TL | | TL | | | TW | | | | | | DL | | | DW | | | | DW | | | DL | | G2 | | DL | | | DL | | | | | | DL | I1 | | DL | R1 | TW | | | TL | | | | DW | | | | N1 | | | E1 | | | DL | | | | DL | | DL | | | C3 | DL | | A1 | | DW | | | | TL | | | | C3 | A1 | I1 | R1 | D2 | S1 | TL | | | | DL | | | | | | DL | D2 | | | E1 | | | | DW | | | | B3 | U1 | T1 | T1 | E1 | | | | TL | | | | DL | | | I1 | | | DL | N1 | | | TL | | DW | | | | T1 | | O1 | | F4 | E1 | T1 | U1 | S1 | | | | DL | | | A1 | DL | M3 | DL | | | | DL | | | TW | | | TL | | E1 | | E1 | O1 | L1 | O1 | P3 | I1 | l | E1 | | DL | | | DL | N1 | | | F4 | A1 | X8 | | | DL | | | | DL | | | I1 | | | | T1 | O1 | A1 | D2 | Y4 | | | | | TW | | A1 | G2 | A1 | P3 | E1 | | S1 | O1 | A1 | R1 | "
- ],
- "text/plain": [
- "['#',\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",
- " '.',\n",
- " '-',\n",
- " '.',\n",
- " '.',\n",
- " '.',\n",
- " '-',\n",
- " '.',\n",
- " '.',\n",
- " ':',\n",
- " '.',\n",
- " 'G',\n",
- " '#',\n",
- " '#',\n",
- " '.',\n",
- " ':',\n",
- " '.',\n",
- " '.',\n",
- " ':',\n",
- " '.',\n",
- " '.',\n",
- " '.',\n",
- " '.',\n",
- " '.',\n",
- " ':',\n",
- " 'I',\n",
- " '.',\n",
- " ':',\n",
- " 'R',\n",
- " '#',\n",
- " '#',\n",
- " '=',\n",
- " '.',\n",
- " '.',\n",
- " ';',\n",
- " '.',\n",
- " '.',\n",
- " '.',\n",
- " '-',\n",
- " '.',\n",
- " '.',\n",
- " '.',\n",
- " 'N',\n",
- " '.',\n",
- " '.',\n",
- " 'E',\n",
- " '#',\n",
- " '#',\n",
- " '.',\n",
- " '.',\n",
- " ':',\n",
- " '.',\n",
- " '.',\n",
- " '.',\n",
- " ':',\n",
- " '.',\n",
- " ':',\n",
- " '.',\n",
- " '.',\n",
- " 'C',\n",
- " ':',\n",
- " '.',\n",
- " 'A',\n",
- " '#',\n",
- " '#',\n",
- " '.',\n",
- " '-',\n",
- " '.',\n",
- " '.',\n",
- " '.',\n",
- " ';',\n",
- " '.',\n",
- " '.',\n",
- " '.',\n",
- " 'C',\n",
- " 'A',\n",
- " 'I',\n",
- " 'R',\n",
- " 'D',\n",
- " 'S',\n",
- " '#',\n",
- " '#',\n",
- " ';',\n",
- " '.',\n",
- " '.',\n",
- " '.',\n",
- " ':',\n",
- " '.',\n",
- " '.',\n",
- " '.',\n",
- " '.',\n",
- " '.',\n",
- " ':',\n",
- " 'D',\n",
- " '.',\n",
- " '.',\n",
- " 'E',\n",
- " '#',\n",
- " '#',\n",
- " '.',\n",
- " '.',\n",
- " '.',\n",
- " '-',\n",
- " '.',\n",
- " '.',\n",
- " '.',\n",
- " 'B',\n",
- " 'U',\n",
- " 'T',\n",
- " 'T',\n",
- " 'E',\n",
- " '.',\n",
- " '.',\n",
- " '.',\n",
- " '#',\n",
- " '#',\n",
- " ';',\n",
- " '.',\n",
- " '.',\n",
- " '.',\n",
- " ':',\n",
- " '.',\n",
- " '.',\n",
- " 'I',\n",
- " '.',\n",
- " '.',\n",
- " ':',\n",
- " 'N',\n",
- " '.',\n",
- " '.',\n",
- " ';',\n",
- " '#',\n",
- " '#',\n",
- " '.',\n",
- " '-',\n",
- " '.',\n",
- " '.',\n",
- " '.',\n",
- " 'T',\n",
- " '.',\n",
- " 'O',\n",
- " '.',\n",
- " 'F',\n",
- " 'E',\n",
- " 'T',\n",
- " 'U',\n",
- " 'S',\n",
- " '.',\n",
- " '#',\n",
- " '#',\n",
- " '.',\n",
- " '.',\n",
- " ':',\n",
- " '.',\n",
- " '.',\n",
- " 'A',\n",
- " ':',\n",
- " 'M',\n",
- " ':',\n",
- " '.',\n",
- " '.',\n",
- " '.',\n",
- " ':',\n",
- " '.',\n",
- " '.',\n",
- " '#',\n",
- " '#',\n",
- " '=',\n",
- " '.',\n",
- " '.',\n",
- " ';',\n",
- " '.',\n",
- " 'E',\n",
- " '.',\n",
- " 'E',\n",
- " 'O',\n",
- " 'L',\n",
- " 'O',\n",
- " 'P',\n",
- " 'I',\n",
- " 'l',\n",
- " 'E',\n",
- " '#',\n",
- " '#',\n",
- " '.',\n",
- " ':',\n",
- " '.',\n",
- " '.',\n",
- " ':',\n",
- " 'N',\n",
- " '.',\n",
- " '.',\n",
- " 'F',\n",
- " 'A',\n",
- " 'X',\n",
- " '.',\n",
- " '.',\n",
- " ':',\n",
- " '.',\n",
- " '#',\n",
- " '#',\n",
- " '.',\n",
- " '.',\n",
- " ':',\n",
- " '.',\n",
- " '.',\n",
- " 'I',\n",
- " '.',\n",
- " '.',\n",
- " '.',\n",
- " 'T',\n",
- " 'O',\n",
- " 'A',\n",
- " 'D',\n",
- " 'Y',\n",
- " '.',\n",
- " '#',\n",
- " '#',\n",
- " '.',\n",
- " '.',\n",
- " '.',\n",
- " '=',\n",
- " '.',\n",
- " 'A',\n",
- " 'G',\n",
- " 'A',\n",
- " 'P',\n",
- " 'E',\n",
- " '.',\n",
- " 'S',\n",
- " 'O',\n",
- " 'A',\n",
- " 'R',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#']"
- ]
- },
- "metadata": {},
- "output_type": "display_data"
- },
- {
- "data": {
- "text/html": [
- "Player 0 with rack RQGENYJ makes Play(start=205, dir=1, letters='GYRENE', rack='QJ') for 36 points; draws: QJLLEHE; scores: [228, 218]"
- ],
- "text/plain": [
- ""
- ]
- },
- "metadata": {},
- "output_type": "display_data"
- },
- {
- "data": {
- "text/html": [
- " | | | TW | | | TL | | TL | | | TW | | | | | | DL | | | DW | | | | DW | | | DL | | G2 | | DL | | | DL | | | | | | DL | I1 | | DL | R1 | TW | | | TL | | | | DW | | | | N1 | | | E1 | | | DL | | | | DL | | DL | | | C3 | DL | | A1 | | DW | | | | TL | | | | C3 | A1 | I1 | R1 | D2 | S1 | TL | | | | DL | | | | | | DL | D2 | | | E1 | | | | DW | | | | B3 | U1 | T1 | T1 | E1 | | | | TL | | | | DL | | | I1 | | | DL | N1 | | | TL | | DW | | | | T1 | | O1 | | F4 | E1 | T1 | U1 | S1 | | | | DL | | | A1 | DL | M3 | DL | | | | DL | | | G2 | Y4 | R1 | E1 | N1 | E1 | | E1 | O1 | L1 | O1 | P3 | I1 | l | E1 | | DL | | | DL | N1 | | | F4 | A1 | X8 | | | DL | | | | DL | | | I1 | | | | T1 | O1 | A1 | D2 | Y4 | | | | | TW | | A1 | G2 | A1 | P3 | E1 | | S1 | O1 | A1 | R1 | "
- ],
- "text/plain": [
- "['#',\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",
- " '.',\n",
- " '-',\n",
- " '.',\n",
- " '.',\n",
- " '.',\n",
- " '-',\n",
- " '.',\n",
- " '.',\n",
- " ':',\n",
- " '.',\n",
- " 'G',\n",
- " '#',\n",
- " '#',\n",
- " '.',\n",
- " ':',\n",
- " '.',\n",
- " '.',\n",
- " ':',\n",
- " '.',\n",
- " '.',\n",
- " '.',\n",
- " '.',\n",
- " '.',\n",
- " ':',\n",
- " 'I',\n",
- " '.',\n",
- " ':',\n",
- " 'R',\n",
- " '#',\n",
- " '#',\n",
- " '=',\n",
- " '.',\n",
- " '.',\n",
- " ';',\n",
- " '.',\n",
- " '.',\n",
- " '.',\n",
- " '-',\n",
- " '.',\n",
- " '.',\n",
- " '.',\n",
- " 'N',\n",
- " '.',\n",
- " '.',\n",
- " 'E',\n",
- " '#',\n",
- " '#',\n",
- " '.',\n",
- " '.',\n",
- " ':',\n",
- " '.',\n",
- " '.',\n",
- " '.',\n",
- " ':',\n",
- " '.',\n",
- " ':',\n",
- " '.',\n",
- " '.',\n",
- " 'C',\n",
- " ':',\n",
- " '.',\n",
- " 'A',\n",
- " '#',\n",
- " '#',\n",
- " '.',\n",
- " '-',\n",
- " '.',\n",
- " '.',\n",
- " '.',\n",
- " ';',\n",
- " '.',\n",
- " '.',\n",
- " '.',\n",
- " 'C',\n",
- " 'A',\n",
- " 'I',\n",
- " 'R',\n",
- " 'D',\n",
- " 'S',\n",
- " '#',\n",
- " '#',\n",
- " ';',\n",
- " '.',\n",
- " '.',\n",
- " '.',\n",
- " ':',\n",
- " '.',\n",
- " '.',\n",
- " '.',\n",
- " '.',\n",
- " '.',\n",
- " ':',\n",
- " 'D',\n",
- " '.',\n",
- " '.',\n",
- " 'E',\n",
- " '#',\n",
- " '#',\n",
- " '.',\n",
- " '.',\n",
- " '.',\n",
- " '-',\n",
- " '.',\n",
- " '.',\n",
- " '.',\n",
- " 'B',\n",
- " 'U',\n",
- " 'T',\n",
- " 'T',\n",
- " 'E',\n",
- " '.',\n",
- " '.',\n",
- " '.',\n",
- " '#',\n",
- " '#',\n",
- " ';',\n",
- " '.',\n",
- " '.',\n",
- " '.',\n",
- " ':',\n",
- " '.',\n",
- " '.',\n",
- " 'I',\n",
- " '.',\n",
- " '.',\n",
- " ':',\n",
- " 'N',\n",
- " '.',\n",
- " '.',\n",
- " ';',\n",
- " '#',\n",
- " '#',\n",
- " '.',\n",
- " '-',\n",
- " '.',\n",
- " '.',\n",
- " '.',\n",
- " 'T',\n",
- " '.',\n",
- " 'O',\n",
- " '.',\n",
- " 'F',\n",
- " 'E',\n",
- " 'T',\n",
- " 'U',\n",
- " 'S',\n",
- " '.',\n",
- " '#',\n",
- " '#',\n",
- " '.',\n",
- " '.',\n",
- " ':',\n",
- " '.',\n",
- " '.',\n",
- " 'A',\n",
- " ':',\n",
- " 'M',\n",
- " ':',\n",
- " '.',\n",
- " '.',\n",
- " '.',\n",
- " ':',\n",
- " '.',\n",
- " '.',\n",
- " '#',\n",
- " '#',\n",
- " 'G',\n",
- " 'Y',\n",
- " 'R',\n",
- " 'E',\n",
- " 'N',\n",
- " 'E',\n",
- " '.',\n",
- " 'E',\n",
- " 'O',\n",
- " 'L',\n",
- " 'O',\n",
- " 'P',\n",
- " 'I',\n",
- " 'l',\n",
- " 'E',\n",
- " '#',\n",
- " '#',\n",
- " '.',\n",
- " ':',\n",
- " '.',\n",
- " '.',\n",
- " ':',\n",
- " 'N',\n",
- " '.',\n",
- " '.',\n",
- " 'F',\n",
- " 'A',\n",
- " 'X',\n",
- " '.',\n",
- " '.',\n",
- " ':',\n",
- " '.',\n",
- " '#',\n",
- " '#',\n",
- " '.',\n",
- " '.',\n",
- " ':',\n",
- " '.',\n",
- " '.',\n",
- " 'I',\n",
- " '.',\n",
- " '.',\n",
- " '.',\n",
- " 'T',\n",
- " 'O',\n",
- " 'A',\n",
- " 'D',\n",
- " 'Y',\n",
- " '.',\n",
- " '#',\n",
- " '#',\n",
- " '.',\n",
- " '.',\n",
- " '.',\n",
- " '=',\n",
- " '.',\n",
- " 'A',\n",
- " 'G',\n",
- " 'A',\n",
- " 'P',\n",
- " 'E',\n",
- " '.',\n",
- " 'S',\n",
- " 'O',\n",
- " 'A',\n",
- " 'R',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#']"
- ]
- },
- "metadata": {},
- "output_type": "display_data"
- },
- {
- "data": {
- "text/html": [
- "Player 1 with rack IIKRZDH makes Play(start=45, dir=17, letters='KHI', rack='IRZD') for 25 points; draws: IRZDIIO; scores: [228, 243]"
- ],
- "text/plain": [
- ""
- ]
- },
- "metadata": {},
- "output_type": "display_data"
- },
- {
- "data": {
- "text/html": [
- " | | | TW | | | TL | | TL | | | TW | | | | | | DL | | | DW | | | | DW | K5 | | DL | | G2 | | DL | | | DL | | | | | | H4 | I1 | | DL | R1 | TW | | | TL | | | | DW | | | I1 | N1 | | | E1 | | | DL | | | | DL | | DL | | | C3 | DL | | A1 | | DW | | | | TL | | | | C3 | A1 | I1 | R1 | D2 | S1 | TL | | | | DL | | | | | | DL | D2 | | | E1 | | | | DW | | | | B3 | U1 | T1 | T1 | E1 | | | | TL | | | | DL | | | I1 | | | DL | N1 | | | TL | | DW | | | | T1 | | O1 | | F4 | E1 | T1 | U1 | S1 | | | | DL | | | A1 | DL | M3 | DL | | | | DL | | | G2 | Y4 | R1 | E1 | N1 | E1 | | E1 | O1 | L1 | O1 | P3 | I1 | l | E1 | | DL | | | DL | N1 | | | F4 | A1 | X8 | | | DL | | | | DL | | | I1 | | | | T1 | O1 | A1 | D2 | Y4 | | | | | TW | | A1 | G2 | A1 | P3 | E1 | | S1 | O1 | A1 | R1 | "
- ],
- "text/plain": [
- "['#',\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",
- " '.',\n",
- " '-',\n",
- " '.',\n",
- " '.',\n",
- " '.',\n",
- " '-',\n",
" 'K',\n",
- " '.',\n",
- " ':',\n",
- " '.',\n",
- " 'G',\n",
- " '#',\n",
- " '#',\n",
+ " '█',\n",
+ " '█',\n",
" '.',\n",
" ':',\n",
" '.',\n",
@@ -9779,234 +11202,64 @@
" '.',\n",
" '.',\n",
" '.',\n",
- " '.',\n",
- " 'H',\n",
- " 'I',\n",
- " '.',\n",
- " ':',\n",
- " 'R',\n",
- " '#',\n",
- " '#',\n",
- " '=',\n",
- " '.',\n",
- " '.',\n",
- " ';',\n",
- " '.',\n",
- " '.',\n",
- " '.',\n",
- " '-',\n",
- " '.',\n",
- " '.',\n",
" 'I',\n",
- " 'N',\n",
- " '.',\n",
- " '.',\n",
- " 'E',\n",
- " '#',\n",
- " '#',\n",
- " '.',\n",
- " '.',\n",
- " ':',\n",
- " '.',\n",
- " '.',\n",
- " '.',\n",
- " ':',\n",
- " '.',\n",
- " ':',\n",
- " '.',\n",
- " '.',\n",
- " 'C',\n",
- " ':',\n",
- " '.',\n",
- " 'A',\n",
- " '#',\n",
- " '#',\n",
- " '.',\n",
- " '-',\n",
- " '.',\n",
- " '.',\n",
- " '.',\n",
- " ';',\n",
- " '.',\n",
- " '.',\n",
- " '.',\n",
- " 'C',\n",
- " 'A',\n",
- " 'I',\n",
- " 'R',\n",
- " 'D',\n",
- " 'S',\n",
- " '#',\n",
- " '#',\n",
- " ';',\n",
- " '.',\n",
- " '.',\n",
- " '.',\n",
- " ':',\n",
- " '.',\n",
- " '.',\n",
- " '.',\n",
- " '.',\n",
- " '.',\n",
- " ':',\n",
- " 'D',\n",
- " '.',\n",
- " '.',\n",
- " 'E',\n",
- " '#',\n",
- " '#',\n",
- " '.',\n",
- " '.',\n",
- " '.',\n",
- " '-',\n",
- " '.',\n",
- " '.',\n",
- " '.',\n",
- " 'B',\n",
- " 'U',\n",
- " 'T',\n",
- " 'T',\n",
- " 'E',\n",
- " '.',\n",
- " '.',\n",
- " '.',\n",
- " '#',\n",
- " '#',\n",
- " ';',\n",
- " '.',\n",
- " '.',\n",
- " '.',\n",
- " ':',\n",
- " '.',\n",
- " '.',\n",
- " 'I',\n",
- " '.',\n",
- " '.',\n",
- " ':',\n",
- " 'N',\n",
- " '.',\n",
- " '.',\n",
- " ';',\n",
- " '#',\n",
- " '#',\n",
- " '.',\n",
- " '-',\n",
- " '.',\n",
- " '.',\n",
- " '.',\n",
- " 'T',\n",
- " '.',\n",
- " 'O',\n",
- " '.',\n",
- " 'F',\n",
- " 'E',\n",
- " 'T',\n",
- " 'U',\n",
- " 'S',\n",
- " '.',\n",
- " '#',\n",
- " '#',\n",
- " '.',\n",
- " '.',\n",
- " ':',\n",
- " '.',\n",
- " '.',\n",
- " 'A',\n",
- " ':',\n",
- " 'M',\n",
- " ':',\n",
- " '.',\n",
- " '.',\n",
- " '.',\n",
- " ':',\n",
- " '.',\n",
- " '.',\n",
- " '#',\n",
- " '#',\n",
- " 'G',\n",
- " 'Y',\n",
- " 'R',\n",
- " 'E',\n",
- " 'N',\n",
- " 'E',\n",
- " '.',\n",
- " 'E',\n",
- " 'O',\n",
- " 'L',\n",
- " 'O',\n",
- " 'P',\n",
- " 'I',\n",
- " 'l',\n",
- " 'E',\n",
- " '#',\n",
- " '#',\n",
- " '.',\n",
" ':',\n",
" '.',\n",
" '.',\n",
" ':',\n",
- " 'N',\n",
" '.',\n",
- " '.',\n",
- " 'F',\n",
- " 'A',\n",
- " 'X',\n",
+ " '█',\n",
+ " '█',\n",
" '.',\n",
" '.',\n",
" ':',\n",
" '.',\n",
- " '#',\n",
- " '#',\n",
- " '.',\n",
- " '.',\n",
- " ':',\n",
- " '.',\n",
- " '.',\n",
- " 'I',\n",
- " '.',\n",
- " '.',\n",
- " '.',\n",
- " 'T',\n",
- " 'O',\n",
- " 'A',\n",
- " 'D',\n",
- " 'Y',\n",
- " '.',\n",
- " '#',\n",
- " '#',\n",
- " '.',\n",
- " '.',\n",
" '.',\n",
" '=',\n",
" '.',\n",
- " 'A',\n",
- " 'G',\n",
- " 'A',\n",
- " 'P',\n",
- " 'E',\n",
" '.',\n",
- " 'S',\n",
- " 'O',\n",
- " 'A',\n",
+ " '.',\n",
+ " 't',\n",
+ " '.',\n",
+ " '.',\n",
+ " ':',\n",
+ " '.',\n",
+ " '.',\n",
+ " '█',\n",
+ " '█',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '≡',\n",
+ " '.',\n",
+ " '.',\n",
+ " '∴',\n",
+ " '.',\n",
+ " 'Y',\n",
+ " 'I',\n",
" 'R',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#']"
+ " 'R',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█']"
]
},
"metadata": {},
@@ -10015,7 +11268,7 @@
{
"data": {
"text/html": [
- "Player 0 with rack QJLLEHE makes Play(start=138, dir=17, letters='JELLY', rack='QHE') for 30 points; draws: QHEBMNO; scores: [258, 243]"
+ "Player 0 with rack ONROBEM makes Play(start=66, dir=17, letters='BROMO', rack='NE') for 41 points ; draws: NEETN_A; scores: [134, 142]"
],
"text/plain": [
""
@@ -10027,61 +11280,456 @@
{
"data": {
"text/html": [
- " | | | TW | | | TL | | TL | | | TW | | | | | | DL | | | DW | | | | DW | K5 | | DL | | G2 | | DL | | | DL | | | | | | H4 | I1 | | DL | R1 | TW | | | TL | | | | DW | | | I1 | N1 | | | E1 | | | DL | | | | DL | | DL | | | C3 | DL | | A1 | | DW | | | | TL | | | | C3 | A1 | I1 | R1 | D2 | S1 | TL | | | | DL | | | | | | DL | D2 | | | E1 | | J8 | | DW | | | | B3 | U1 | T1 | T1 | E1 | | | | TL | E1 | | | DL | | | I1 | | | DL | N1 | | | TL | | L1 | | | | T1 | | O1 | | F4 | E1 | T1 | U1 | S1 | | | L1 | DL | | | A1 | DL | M3 | DL | | | | DL | | | G2 | Y4 | R1 | E1 | N1 | E1 | | E1 | O1 | L1 | O1 | P3 | I1 | l | E1 | | DL | | | DL | N1 | | | F4 | A1 | X8 | | | DL | | | | DL | | | I1 | | | | T1 | O1 | A1 | D2 | Y4 | | | | | TW | | A1 | G2 | A1 | P3 | E1 | | S1 | O1 | A1 | R1 | "
+ " | | | TW | | | TL | | TL | | | TW | | | | | | DL | | | DW | | | | DW | | | DL | | | | DL | | | DL | | | | | | DL | | | DL | B3 | TW | | | TL | | | | DW | | | | TL | | | R1 | | | DL | | | | DL | | DL | | | | DL | | O1 | | DW | | | | TL | | | | TL | | | | O1 | M3 | TL | | | | DL | | | | | | DL | | | N1 | O1 | | | | DW | | | | B3 | O1 | O1 | D2 | L1 | E1 | S1 | | TL | | | | DL | | | | | U1 | DL | | | E1 | D2 | | DW | | | | TL | | | | I1 | | | | T1 | A1 | | | DL | | | | DL | | DL | S1 | | | DL | | W4 | TW | | | TL | | | | L1 | O1 | T1 | A1 | H4 | | | K5 | | DL | | | DL | | | | | I1 | DL | | | DL | | | | DL | | | DW | | | | t | | | DL | | | | | | TW | | | TL | | Y4 | I1 | R1 | R1 | | | | "
],
"text/plain": [
- "['#',\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",
- " '=',\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",
+ " '.',\n",
+ " ':',\n",
+ " '.',\n",
+ " '.',\n",
+ " ':',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " ':',\n",
+ " '.',\n",
+ " '.',\n",
+ " ':',\n",
+ " 'B',\n",
+ " '█',\n",
+ " '█',\n",
+ " '≡',\n",
+ " '.',\n",
+ " '.',\n",
+ " '∴',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '=',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '∴',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'R',\n",
+ " '█',\n",
+ " '█',\n",
+ " '.',\n",
+ " '.',\n",
+ " ':',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " ':',\n",
+ " '.',\n",
+ " ':',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " ':',\n",
+ " '.',\n",
+ " 'O',\n",
+ " '█',\n",
+ " '█',\n",
+ " '.',\n",
+ " '=',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '∴',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '∴',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'O',\n",
+ " 'M',\n",
+ " '█',\n",
+ " '█',\n",
+ " '∴',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " ':',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " ':',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'N',\n",
+ " 'O',\n",
+ " '█',\n",
+ " '█',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '=',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'B',\n",
+ " 'O',\n",
+ " 'O',\n",
+ " 'D',\n",
+ " 'L',\n",
+ " 'E',\n",
+ " 'S',\n",
+ " '.',\n",
+ " '█',\n",
+ " '█',\n",
+ " '∴',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " ':',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'U',\n",
+ " ':',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'E',\n",
+ " 'D',\n",
+ " '█',\n",
+ " '█',\n",
+ " '.',\n",
+ " '=',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '∴',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'I',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'T',\n",
+ " 'A',\n",
+ " '█',\n",
+ " '█',\n",
+ " '.',\n",
+ " '.',\n",
+ " ':',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " ':',\n",
+ " '.',\n",
+ " ':',\n",
+ " 'S',\n",
+ " '.',\n",
+ " '.',\n",
+ " ':',\n",
+ " '.',\n",
+ " 'W',\n",
+ " '█',\n",
+ " '█',\n",
+ " '≡',\n",
+ " '.',\n",
+ " '.',\n",
+ " '∴',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'L',\n",
+ " 'O',\n",
+ " 'T',\n",
+ " 'A',\n",
+ " 'H',\n",
+ " '.',\n",
+ " '.',\n",
" 'K',\n",
- " '.',\n",
- " ':',\n",
- " '.',\n",
- " 'G',\n",
- " '#',\n",
- " '#',\n",
+ " '█',\n",
+ " '█',\n",
" '.',\n",
" ':',\n",
" '.',\n",
@@ -10091,234 +11739,64 @@
" '.',\n",
" '.',\n",
" '.',\n",
- " '.',\n",
- " 'H',\n",
- " 'I',\n",
- " '.',\n",
- " ':',\n",
- " 'R',\n",
- " '#',\n",
- " '#',\n",
- " '=',\n",
- " '.',\n",
- " '.',\n",
- " ';',\n",
- " '.',\n",
- " '.',\n",
- " '.',\n",
- " '-',\n",
- " '.',\n",
- " '.',\n",
" 'I',\n",
- " 'N',\n",
- " '.',\n",
- " '.',\n",
- " 'E',\n",
- " '#',\n",
- " '#',\n",
- " '.',\n",
- " '.',\n",
- " ':',\n",
- " '.',\n",
- " '.',\n",
- " '.',\n",
- " ':',\n",
- " '.',\n",
- " ':',\n",
- " '.',\n",
- " '.',\n",
- " 'C',\n",
- " ':',\n",
- " '.',\n",
- " 'A',\n",
- " '#',\n",
- " '#',\n",
- " '.',\n",
- " '-',\n",
- " '.',\n",
- " '.',\n",
- " '.',\n",
- " ';',\n",
- " '.',\n",
- " '.',\n",
- " '.',\n",
- " 'C',\n",
- " 'A',\n",
- " 'I',\n",
- " 'R',\n",
- " 'D',\n",
- " 'S',\n",
- " '#',\n",
- " '#',\n",
- " ';',\n",
- " '.',\n",
- " '.',\n",
- " '.',\n",
- " ':',\n",
- " '.',\n",
- " '.',\n",
- " '.',\n",
- " '.',\n",
- " '.',\n",
- " ':',\n",
- " 'D',\n",
- " '.',\n",
- " '.',\n",
- " 'E',\n",
- " '#',\n",
- " '#',\n",
- " '.',\n",
- " 'J',\n",
- " '.',\n",
- " '-',\n",
- " '.',\n",
- " '.',\n",
- " '.',\n",
- " 'B',\n",
- " 'U',\n",
- " 'T',\n",
- " 'T',\n",
- " 'E',\n",
- " '.',\n",
- " '.',\n",
- " '.',\n",
- " '#',\n",
- " '#',\n",
- " ';',\n",
- " 'E',\n",
- " '.',\n",
- " '.',\n",
- " ':',\n",
- " '.',\n",
- " '.',\n",
- " 'I',\n",
- " '.',\n",
- " '.',\n",
- " ':',\n",
- " 'N',\n",
- " '.',\n",
- " '.',\n",
- " ';',\n",
- " '#',\n",
- " '#',\n",
- " '.',\n",
- " 'L',\n",
- " '.',\n",
- " '.',\n",
- " '.',\n",
- " 'T',\n",
- " '.',\n",
- " 'O',\n",
- " '.',\n",
- " 'F',\n",
- " 'E',\n",
- " 'T',\n",
- " 'U',\n",
- " 'S',\n",
- " '.',\n",
- " '#',\n",
- " '#',\n",
- " '.',\n",
- " 'L',\n",
- " ':',\n",
- " '.',\n",
- " '.',\n",
- " 'A',\n",
- " ':',\n",
- " 'M',\n",
- " ':',\n",
- " '.',\n",
- " '.',\n",
- " '.',\n",
- " ':',\n",
- " '.',\n",
- " '.',\n",
- " '#',\n",
- " '#',\n",
- " 'G',\n",
- " 'Y',\n",
- " 'R',\n",
- " 'E',\n",
- " 'N',\n",
- " 'E',\n",
- " '.',\n",
- " 'E',\n",
- " 'O',\n",
- " 'L',\n",
- " 'O',\n",
- " 'P',\n",
- " 'I',\n",
- " 'l',\n",
- " 'E',\n",
- " '#',\n",
- " '#',\n",
- " '.',\n",
" ':',\n",
" '.',\n",
" '.',\n",
" ':',\n",
- " 'N',\n",
" '.',\n",
- " '.',\n",
- " 'F',\n",
- " 'A',\n",
- " 'X',\n",
+ " '█',\n",
+ " '█',\n",
" '.',\n",
" '.',\n",
" ':',\n",
" '.',\n",
- " '#',\n",
- " '#',\n",
- " '.',\n",
- " '.',\n",
- " ':',\n",
- " '.',\n",
- " '.',\n",
- " 'I',\n",
- " '.',\n",
- " '.',\n",
- " '.',\n",
- " 'T',\n",
- " 'O',\n",
- " 'A',\n",
- " 'D',\n",
- " 'Y',\n",
- " '.',\n",
- " '#',\n",
- " '#',\n",
- " '.',\n",
- " '.',\n",
" '.',\n",
" '=',\n",
" '.',\n",
- " 'A',\n",
- " 'G',\n",
- " 'A',\n",
- " 'P',\n",
- " 'E',\n",
" '.',\n",
- " 'S',\n",
- " 'O',\n",
- " 'A',\n",
+ " '.',\n",
+ " 't',\n",
+ " '.',\n",
+ " '.',\n",
+ " ':',\n",
+ " '.',\n",
+ " '.',\n",
+ " '█',\n",
+ " '█',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '≡',\n",
+ " '.',\n",
+ " '.',\n",
+ " '∴',\n",
+ " '.',\n",
+ " 'Y',\n",
+ " 'I',\n",
" 'R',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#']"
+ " 'R',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█']"
]
},
"metadata": {},
@@ -10327,7 +11805,7 @@
{
"data": {
"text/html": [
- "Player 1 with rack IRZDIIO makes Play(start=123, dir=17, letters='IODIZER', rack='I') for 34 points; draws: IVUTLON; scores: [258, 277]"
+ "Player 1 with rack QEURLVI makes Play(start=80, dir=17, letters='QUELL', rack='RVI') for 34 points ; draws: RVIDTHA; scores: [134, 176]"
],
"text/plain": [
""
@@ -10339,61 +11817,456 @@
{
"data": {
"text/html": [
- " | | | TW | | | TL | | TL | | | TW | | | | | | DL | | | DW | | | | DW | K5 | | DL | | G2 | | DL | | | DL | | | | | | H4 | I1 | | DL | R1 | TW | | | TL | | | | DW | | | I1 | N1 | | | E1 | | | DL | | | | DL | | DL | | | C3 | DL | | A1 | | DW | | | | TL | | | | C3 | A1 | I1 | R1 | D2 | S1 | TL | | | I1 | DL | | | | | | DL | D2 | | | E1 | | J8 | | O1 | | | | B3 | U1 | T1 | T1 | E1 | | | | TL | E1 | | D2 | DL | | | I1 | | | DL | N1 | | | TL | | L1 | | I1 | | T1 | | O1 | | F4 | E1 | T1 | U1 | S1 | | | L1 | DL | Z10 | | A1 | DL | M3 | DL | | | | DL | | | G2 | Y4 | R1 | E1 | N1 | E1 | | E1 | O1 | L1 | O1 | P3 | I1 | l | E1 | | DL | | R1 | DL | N1 | | | F4 | A1 | X8 | | | DL | | | | DL | | | I1 | | | | T1 | O1 | A1 | D2 | Y4 | | | | | TW | | A1 | G2 | A1 | P3 | E1 | | S1 | O1 | A1 | R1 | "
+ " | | | TW | | | TL | | TL | | | TW | | | | | | DL | | | DW | | | | DW | | | DL | | | | DL | | | DL | | | | | | DL | | | DL | B3 | TW | | | TL | | | | DW | | | | Q10 | | | R1 | | | DL | | | | DL | | DL | | | U1 | DL | | O1 | | DW | | | | TL | | | | TL | | E1 | | O1 | M3 | TL | | | | DL | | | | | | DL | L1 | | N1 | O1 | | | | DW | | | | B3 | O1 | O1 | D2 | L1 | E1 | S1 | | TL | | | | DL | | | | | U1 | DL | | | E1 | D2 | | DW | | | | TL | | | | I1 | | | | T1 | A1 | | | DL | | | | DL | | DL | S1 | | | DL | | W4 | TW | | | TL | | | | L1 | O1 | T1 | A1 | H4 | | | K5 | | DL | | | DL | | | | | I1 | DL | | | DL | | | | DL | | | DW | | | | t | | | DL | | | | | | TW | | | TL | | Y4 | I1 | R1 | R1 | | | | "
],
"text/plain": [
- "['#',\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",
- " '=',\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",
+ " '.',\n",
+ " ':',\n",
+ " '.',\n",
+ " '.',\n",
+ " ':',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " ':',\n",
+ " '.',\n",
+ " '.',\n",
+ " ':',\n",
+ " 'B',\n",
+ " '█',\n",
+ " '█',\n",
+ " '≡',\n",
+ " '.',\n",
+ " '.',\n",
+ " '∴',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '=',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'Q',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'R',\n",
+ " '█',\n",
+ " '█',\n",
+ " '.',\n",
+ " '.',\n",
+ " ':',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " ':',\n",
+ " '.',\n",
+ " ':',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'U',\n",
+ " ':',\n",
+ " '.',\n",
+ " 'O',\n",
+ " '█',\n",
+ " '█',\n",
+ " '.',\n",
+ " '=',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '∴',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '∴',\n",
+ " '.',\n",
+ " 'E',\n",
+ " '.',\n",
+ " 'O',\n",
+ " 'M',\n",
+ " '█',\n",
+ " '█',\n",
+ " '∴',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " ':',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " ':',\n",
+ " 'L',\n",
+ " '.',\n",
+ " 'N',\n",
+ " 'O',\n",
+ " '█',\n",
+ " '█',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '=',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'B',\n",
+ " 'O',\n",
+ " 'O',\n",
+ " 'D',\n",
+ " 'L',\n",
+ " 'E',\n",
+ " 'S',\n",
+ " '.',\n",
+ " '█',\n",
+ " '█',\n",
+ " '∴',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " ':',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'U',\n",
+ " ':',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'E',\n",
+ " 'D',\n",
+ " '█',\n",
+ " '█',\n",
+ " '.',\n",
+ " '=',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '∴',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'I',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'T',\n",
+ " 'A',\n",
+ " '█',\n",
+ " '█',\n",
+ " '.',\n",
+ " '.',\n",
+ " ':',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " ':',\n",
+ " '.',\n",
+ " ':',\n",
+ " 'S',\n",
+ " '.',\n",
+ " '.',\n",
+ " ':',\n",
+ " '.',\n",
+ " 'W',\n",
+ " '█',\n",
+ " '█',\n",
+ " '≡',\n",
+ " '.',\n",
+ " '.',\n",
+ " '∴',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'L',\n",
+ " 'O',\n",
+ " 'T',\n",
+ " 'A',\n",
+ " 'H',\n",
+ " '.',\n",
+ " '.',\n",
" 'K',\n",
- " '.',\n",
- " ':',\n",
- " '.',\n",
- " 'G',\n",
- " '#',\n",
- " '#',\n",
+ " '█',\n",
+ " '█',\n",
" '.',\n",
" ':',\n",
" '.',\n",
@@ -10403,234 +12276,64 @@
" '.',\n",
" '.',\n",
" '.',\n",
- " '.',\n",
- " 'H',\n",
- " 'I',\n",
- " '.',\n",
- " ':',\n",
- " 'R',\n",
- " '#',\n",
- " '#',\n",
- " '=',\n",
- " '.',\n",
- " '.',\n",
- " ';',\n",
- " '.',\n",
- " '.',\n",
- " '.',\n",
- " '-',\n",
- " '.',\n",
- " '.',\n",
- " 'I',\n",
- " 'N',\n",
- " '.',\n",
- " '.',\n",
- " 'E',\n",
- " '#',\n",
- " '#',\n",
- " '.',\n",
- " '.',\n",
- " ':',\n",
- " '.',\n",
- " '.',\n",
- " '.',\n",
- " ':',\n",
- " '.',\n",
- " ':',\n",
- " '.',\n",
- " '.',\n",
- " 'C',\n",
- " ':',\n",
- " '.',\n",
- " 'A',\n",
- " '#',\n",
- " '#',\n",
- " '.',\n",
- " '-',\n",
- " '.',\n",
- " '.',\n",
- " '.',\n",
- " ';',\n",
- " '.',\n",
- " '.',\n",
- " '.',\n",
- " 'C',\n",
- " 'A',\n",
- " 'I',\n",
- " 'R',\n",
- " 'D',\n",
- " 'S',\n",
- " '#',\n",
- " '#',\n",
- " ';',\n",
- " '.',\n",
- " '.',\n",
" 'I',\n",
" ':',\n",
" '.',\n",
" '.',\n",
+ " ':',\n",
" '.',\n",
+ " '█',\n",
+ " '█',\n",
" '.',\n",
" '.',\n",
" ':',\n",
- " 'D',\n",
- " '.',\n",
- " '.',\n",
- " 'E',\n",
- " '#',\n",
- " '#',\n",
- " '.',\n",
- " 'J',\n",
- " '.',\n",
- " 'O',\n",
- " '.',\n",
- " '.',\n",
- " '.',\n",
- " 'B',\n",
- " 'U',\n",
- " 'T',\n",
- " 'T',\n",
- " 'E',\n",
- " '.',\n",
- " '.',\n",
- " '.',\n",
- " '#',\n",
- " '#',\n",
- " ';',\n",
- " 'E',\n",
- " '.',\n",
- " 'D',\n",
- " ':',\n",
- " '.',\n",
- " '.',\n",
- " 'I',\n",
- " '.',\n",
- " '.',\n",
- " ':',\n",
- " 'N',\n",
- " '.',\n",
- " '.',\n",
- " ';',\n",
- " '#',\n",
- " '#',\n",
- " '.',\n",
- " 'L',\n",
- " '.',\n",
- " 'I',\n",
- " '.',\n",
- " 'T',\n",
- " '.',\n",
- " 'O',\n",
- " '.',\n",
- " 'F',\n",
- " 'E',\n",
- " 'T',\n",
- " 'U',\n",
- " 'S',\n",
- " '.',\n",
- " '#',\n",
- " '#',\n",
- " '.',\n",
- " 'L',\n",
- " ':',\n",
- " 'Z',\n",
- " '.',\n",
- " 'A',\n",
- " ':',\n",
- " 'M',\n",
- " ':',\n",
- " '.',\n",
- " '.',\n",
- " '.',\n",
- " ':',\n",
- " '.',\n",
- " '.',\n",
- " '#',\n",
- " '#',\n",
- " 'G',\n",
- " 'Y',\n",
- " 'R',\n",
- " 'E',\n",
- " 'N',\n",
- " 'E',\n",
- " '.',\n",
- " 'E',\n",
- " 'O',\n",
- " 'L',\n",
- " 'O',\n",
- " 'P',\n",
- " 'I',\n",
- " 'l',\n",
- " 'E',\n",
- " '#',\n",
- " '#',\n",
- " '.',\n",
- " ':',\n",
- " '.',\n",
- " 'R',\n",
- " ':',\n",
- " 'N',\n",
- " '.',\n",
- " '.',\n",
- " 'F',\n",
- " 'A',\n",
- " 'X',\n",
- " '.',\n",
- " '.',\n",
- " ':',\n",
- " '.',\n",
- " '#',\n",
- " '#',\n",
- " '.',\n",
- " '.',\n",
- " ':',\n",
- " '.',\n",
- " '.',\n",
- " 'I',\n",
- " '.',\n",
- " '.',\n",
- " '.',\n",
- " 'T',\n",
- " 'O',\n",
- " 'A',\n",
- " 'D',\n",
- " 'Y',\n",
- " '.',\n",
- " '#',\n",
- " '#',\n",
- " '.',\n",
" '.',\n",
" '.',\n",
" '=',\n",
" '.',\n",
- " 'A',\n",
- " 'G',\n",
- " 'A',\n",
- " 'P',\n",
- " 'E',\n",
" '.',\n",
- " 'S',\n",
- " 'O',\n",
- " 'A',\n",
+ " '.',\n",
+ " 't',\n",
+ " '.',\n",
+ " '.',\n",
+ " ':',\n",
+ " '.',\n",
+ " '.',\n",
+ " '█',\n",
+ " '█',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '≡',\n",
+ " '.',\n",
+ " '.',\n",
+ " '∴',\n",
+ " '.',\n",
+ " 'Y',\n",
+ " 'I',\n",
" 'R',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#']"
+ " 'R',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█']"
]
},
"metadata": {},
@@ -10639,7 +12342,7 @@
{
"data": {
"text/html": [
- "Player 0 with rack QHEBMNO makes Play(start=154, dir=17, letters='HE', rack='QBMNO') for 28 points; draws: QBMNOVS; scores: [286, 277]"
+ "Player 0 with rack NEETN_A makes Play(start=190, dir=1, letters='NEATNEsS', rack='') for 47 points (BINGO!); draws: VEXEPIL; scores: [181, 176]"
],
"text/plain": [
""
@@ -10651,61 +12354,456 @@
{
"data": {
"text/html": [
- " | | | TW | | | TL | | TL | | | TW | | | | | | DL | | | DW | | | | DW | K5 | | DL | | G2 | | DL | | | DL | | | | | | H4 | I1 | | DL | R1 | TW | | | TL | | | | DW | | | I1 | N1 | | | E1 | | | DL | | | | DL | | DL | | | C3 | DL | | A1 | | DW | | | | TL | | | | C3 | A1 | I1 | R1 | D2 | S1 | TL | | | I1 | DL | | | | | | DL | D2 | | | E1 | | J8 | | O1 | | | | B3 | U1 | T1 | T1 | E1 | | | | H4 | E1 | | D2 | DL | | | I1 | | | DL | N1 | | | TL | E1 | L1 | | I1 | | T1 | | O1 | | F4 | E1 | T1 | U1 | S1 | | | L1 | DL | Z10 | | A1 | DL | M3 | DL | | | | DL | | | G2 | Y4 | R1 | E1 | N1 | E1 | | E1 | O1 | L1 | O1 | P3 | I1 | l | E1 | | DL | | R1 | DL | N1 | | | F4 | A1 | X8 | | | DL | | | | DL | | | I1 | | | | T1 | O1 | A1 | D2 | Y4 | | | | | TW | | A1 | G2 | A1 | P3 | E1 | | S1 | O1 | A1 | R1 | "
+ " | | | TW | | | TL | | TL | | | TW | | | | | | DL | | | DW | | | | DW | | | DL | | | | DL | | | DL | | | | | | DL | | | DL | B3 | TW | | | TL | | | | DW | | | | Q10 | | | R1 | | | DL | | | | DL | | DL | | | U1 | DL | | O1 | | DW | | | | TL | | | | TL | | E1 | | O1 | M3 | TL | | | | DL | | | | | | DL | L1 | | N1 | O1 | | | | DW | | | | B3 | O1 | O1 | D2 | L1 | E1 | S1 | | TL | | | | DL | | | | | U1 | DL | | | E1 | D2 | | DW | | | | TL | | | | I1 | | | | T1 | A1 | | | N1 | E1 | A1 | T1 | N1 | E1 | s | S1 | | | DL | | W4 | TW | | | TL | | | | L1 | O1 | T1 | A1 | H4 | | | K5 | | DL | | | DL | | | | | I1 | DL | | | DL | | | | DL | | | DW | | | | t | | | DL | | | | | | TW | | | TL | | Y4 | I1 | R1 | R1 | | | | "
],
"text/plain": [
- "['#',\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",
- " '=',\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",
+ " '.',\n",
+ " ':',\n",
+ " '.',\n",
+ " '.',\n",
+ " ':',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " ':',\n",
+ " '.',\n",
+ " '.',\n",
+ " ':',\n",
+ " 'B',\n",
+ " '█',\n",
+ " '█',\n",
+ " '≡',\n",
+ " '.',\n",
+ " '.',\n",
+ " '∴',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '=',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'Q',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'R',\n",
+ " '█',\n",
+ " '█',\n",
+ " '.',\n",
+ " '.',\n",
+ " ':',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " ':',\n",
+ " '.',\n",
+ " ':',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'U',\n",
+ " ':',\n",
+ " '.',\n",
+ " 'O',\n",
+ " '█',\n",
+ " '█',\n",
+ " '.',\n",
+ " '=',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '∴',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '∴',\n",
+ " '.',\n",
+ " 'E',\n",
+ " '.',\n",
+ " 'O',\n",
+ " 'M',\n",
+ " '█',\n",
+ " '█',\n",
+ " '∴',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " ':',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " ':',\n",
+ " 'L',\n",
+ " '.',\n",
+ " 'N',\n",
+ " 'O',\n",
+ " '█',\n",
+ " '█',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '=',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'B',\n",
+ " 'O',\n",
+ " 'O',\n",
+ " 'D',\n",
+ " 'L',\n",
+ " 'E',\n",
+ " 'S',\n",
+ " '.',\n",
+ " '█',\n",
+ " '█',\n",
+ " '∴',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " ':',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'U',\n",
+ " ':',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'E',\n",
+ " 'D',\n",
+ " '█',\n",
+ " '█',\n",
+ " '.',\n",
+ " '=',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '∴',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'I',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'T',\n",
+ " 'A',\n",
+ " '█',\n",
+ " '█',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'N',\n",
+ " 'E',\n",
+ " 'A',\n",
+ " 'T',\n",
+ " 'N',\n",
+ " 'E',\n",
+ " 's',\n",
+ " 'S',\n",
+ " '.',\n",
+ " '.',\n",
+ " ':',\n",
+ " '.',\n",
+ " 'W',\n",
+ " '█',\n",
+ " '█',\n",
+ " '≡',\n",
+ " '.',\n",
+ " '.',\n",
+ " '∴',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'L',\n",
+ " 'O',\n",
+ " 'T',\n",
+ " 'A',\n",
+ " 'H',\n",
+ " '.',\n",
+ " '.',\n",
" 'K',\n",
- " '.',\n",
- " ':',\n",
- " '.',\n",
- " 'G',\n",
- " '#',\n",
- " '#',\n",
+ " '█',\n",
+ " '█',\n",
" '.',\n",
" ':',\n",
" '.',\n",
@@ -10715,234 +12813,64 @@
" '.',\n",
" '.',\n",
" '.',\n",
- " '.',\n",
- " 'H',\n",
- " 'I',\n",
- " '.',\n",
- " ':',\n",
- " 'R',\n",
- " '#',\n",
- " '#',\n",
- " '=',\n",
- " '.',\n",
- " '.',\n",
- " ';',\n",
- " '.',\n",
- " '.',\n",
- " '.',\n",
- " '-',\n",
- " '.',\n",
- " '.',\n",
- " 'I',\n",
- " 'N',\n",
- " '.',\n",
- " '.',\n",
- " 'E',\n",
- " '#',\n",
- " '#',\n",
- " '.',\n",
- " '.',\n",
- " ':',\n",
- " '.',\n",
- " '.',\n",
- " '.',\n",
- " ':',\n",
- " '.',\n",
- " ':',\n",
- " '.',\n",
- " '.',\n",
- " 'C',\n",
- " ':',\n",
- " '.',\n",
- " 'A',\n",
- " '#',\n",
- " '#',\n",
- " '.',\n",
- " '-',\n",
- " '.',\n",
- " '.',\n",
- " '.',\n",
- " ';',\n",
- " '.',\n",
- " '.',\n",
- " '.',\n",
- " 'C',\n",
- " 'A',\n",
- " 'I',\n",
- " 'R',\n",
- " 'D',\n",
- " 'S',\n",
- " '#',\n",
- " '#',\n",
- " ';',\n",
- " '.',\n",
- " '.',\n",
" 'I',\n",
" ':',\n",
" '.',\n",
" '.',\n",
+ " ':',\n",
" '.',\n",
+ " '█',\n",
+ " '█',\n",
" '.',\n",
" '.',\n",
" ':',\n",
- " 'D',\n",
- " '.',\n",
- " '.',\n",
- " 'E',\n",
- " '#',\n",
- " '#',\n",
- " '.',\n",
- " 'J',\n",
- " '.',\n",
- " 'O',\n",
- " '.',\n",
- " '.',\n",
- " '.',\n",
- " 'B',\n",
- " 'U',\n",
- " 'T',\n",
- " 'T',\n",
- " 'E',\n",
- " '.',\n",
- " '.',\n",
- " '.',\n",
- " '#',\n",
- " '#',\n",
- " 'H',\n",
- " 'E',\n",
- " '.',\n",
- " 'D',\n",
- " ':',\n",
- " '.',\n",
- " '.',\n",
- " 'I',\n",
- " '.',\n",
- " '.',\n",
- " ':',\n",
- " 'N',\n",
- " '.',\n",
- " '.',\n",
- " ';',\n",
- " '#',\n",
- " '#',\n",
- " 'E',\n",
- " 'L',\n",
- " '.',\n",
- " 'I',\n",
- " '.',\n",
- " 'T',\n",
- " '.',\n",
- " 'O',\n",
- " '.',\n",
- " 'F',\n",
- " 'E',\n",
- " 'T',\n",
- " 'U',\n",
- " 'S',\n",
- " '.',\n",
- " '#',\n",
- " '#',\n",
- " '.',\n",
- " 'L',\n",
- " ':',\n",
- " 'Z',\n",
- " '.',\n",
- " 'A',\n",
- " ':',\n",
- " 'M',\n",
- " ':',\n",
- " '.',\n",
- " '.',\n",
- " '.',\n",
- " ':',\n",
- " '.',\n",
- " '.',\n",
- " '#',\n",
- " '#',\n",
- " 'G',\n",
- " 'Y',\n",
- " 'R',\n",
- " 'E',\n",
- " 'N',\n",
- " 'E',\n",
- " '.',\n",
- " 'E',\n",
- " 'O',\n",
- " 'L',\n",
- " 'O',\n",
- " 'P',\n",
- " 'I',\n",
- " 'l',\n",
- " 'E',\n",
- " '#',\n",
- " '#',\n",
- " '.',\n",
- " ':',\n",
- " '.',\n",
- " 'R',\n",
- " ':',\n",
- " 'N',\n",
- " '.',\n",
- " '.',\n",
- " 'F',\n",
- " 'A',\n",
- " 'X',\n",
- " '.',\n",
- " '.',\n",
- " ':',\n",
- " '.',\n",
- " '#',\n",
- " '#',\n",
- " '.',\n",
- " '.',\n",
- " ':',\n",
- " '.',\n",
- " '.',\n",
- " 'I',\n",
- " '.',\n",
- " '.',\n",
- " '.',\n",
- " 'T',\n",
- " 'O',\n",
- " 'A',\n",
- " 'D',\n",
- " 'Y',\n",
- " '.',\n",
- " '#',\n",
- " '#',\n",
- " '.',\n",
" '.',\n",
" '.',\n",
" '=',\n",
" '.',\n",
- " 'A',\n",
- " 'G',\n",
- " 'A',\n",
- " 'P',\n",
- " 'E',\n",
" '.',\n",
- " 'S',\n",
- " 'O',\n",
- " 'A',\n",
+ " '.',\n",
+ " 't',\n",
+ " '.',\n",
+ " '.',\n",
+ " ':',\n",
+ " '.',\n",
+ " '.',\n",
+ " '█',\n",
+ " '█',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '≡',\n",
+ " '.',\n",
+ " '.',\n",
+ " '∴',\n",
+ " '.',\n",
+ " 'Y',\n",
+ " 'I',\n",
" 'R',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#']"
+ " 'R',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█']"
]
},
"metadata": {},
@@ -10951,7 +12879,7 @@
{
"data": {
"text/html": [
- "Player 1 with rack IVUTLON makes Play(start=22, dir=17, letters='VOLUTIN', rack='') for 50 points; draws: _UWEARW; scores: [286, 327]"
+ "Player 1 with rack RVIDTHA makes Play(start=174, dir=17, letters='DEARTH', rack='VI') for 36 points ; draws: VINESTI; scores: [181, 212]"
],
"text/plain": [
""
@@ -10963,298 +12891,2671 @@
{
"data": {
"text/html": [
- " | | | TW | V4 | | TL | | TL | | | TW | | | | | | DL | | O1 | DW | | | | DW | K5 | | DL | | G2 | | DL | | | L1 | | | | | | H4 | I1 | | DL | R1 | TW | | | TL | U1 | | | DW | | | I1 | N1 | | | E1 | | | DL | | T1 | | DL | | DL | | | C3 | DL | | A1 | | DW | | | I1 | TL | | | | C3 | A1 | I1 | R1 | D2 | S1 | TL | | | I1 | N1 | | | | | | DL | D2 | | | E1 | | J8 | | O1 | | | | B3 | U1 | T1 | T1 | E1 | | | | H4 | E1 | | D2 | DL | | | I1 | | | DL | N1 | | | TL | E1 | L1 | | I1 | | T1 | | O1 | | F4 | E1 | T1 | U1 | S1 | | | L1 | DL | Z10 | | A1 | DL | M3 | DL | | | | DL | | | G2 | Y4 | R1 | E1 | N1 | E1 | | E1 | O1 | L1 | O1 | P3 | I1 | l | E1 | | DL | | R1 | DL | N1 | | | F4 | A1 | X8 | | | DL | | | | DL | | | I1 | | | | T1 | O1 | A1 | D2 | Y4 | | | | | TW | | A1 | G2 | A1 | P3 | E1 | | S1 | O1 | A1 | R1 | "
+ " | | | TW | | | TL | | TL | | | TW | | | | | | DL | | | DW | | | | DW | | | DL | | | | DL | | | DL | | | | | | DL | | | DL | B3 | TW | | | TL | | | | DW | | | | Q10 | | | R1 | | | DL | | | | DL | | DL | | | U1 | DL | | O1 | | DW | | | | TL | | | | TL | | E1 | | O1 | M3 | TL | | | | DL | | | | | | DL | L1 | | N1 | O1 | | | | DW | | | | B3 | O1 | O1 | D2 | L1 | E1 | S1 | | TL | | | | DL | | | | | U1 | DL | | | E1 | D2 | | DW | | D2 | | TL | | | | I1 | | | | T1 | A1 | | | N1 | E1 | A1 | T1 | N1 | E1 | s | S1 | | | DL | | W4 | TW | | | A1 | | | | L1 | O1 | T1 | A1 | H4 | | | K5 | | DL | | R1 | DL | | | | | I1 | DL | | | DL | | | | DL | T1 | | DW | | | | t | | | DL | | | | | | H4 | | | TL | | Y4 | I1 | R1 | R1 | | | | "
],
"text/plain": [
- "['#',\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",
+ " '≡',\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",
+ " '.',\n",
+ " '.',\n",
+ " ':',\n",
+ " '.',\n",
+ " '.',\n",
+ " ':',\n",
+ " 'B',\n",
+ " '█',\n",
+ " '█',\n",
+ " '≡',\n",
+ " '.',\n",
+ " '.',\n",
+ " '∴',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '=',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'Q',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'R',\n",
+ " '█',\n",
+ " '█',\n",
+ " '.',\n",
+ " '.',\n",
+ " ':',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " ':',\n",
+ " '.',\n",
+ " ':',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'U',\n",
+ " ':',\n",
+ " '.',\n",
+ " 'O',\n",
+ " '█',\n",
+ " '█',\n",
+ " '.',\n",
+ " '=',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '∴',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '∴',\n",
+ " '.',\n",
+ " 'E',\n",
+ " '.',\n",
+ " 'O',\n",
+ " 'M',\n",
+ " '█',\n",
+ " '█',\n",
+ " '∴',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " ':',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " ':',\n",
+ " 'L',\n",
+ " '.',\n",
+ " 'N',\n",
+ " 'O',\n",
+ " '█',\n",
+ " '█',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '=',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'B',\n",
+ " 'O',\n",
+ " 'O',\n",
+ " 'D',\n",
+ " 'L',\n",
+ " 'E',\n",
+ " 'S',\n",
+ " '.',\n",
+ " '█',\n",
+ " '█',\n",
+ " '∴',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " ':',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'U',\n",
+ " ':',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'E',\n",
+ " 'D',\n",
+ " '█',\n",
+ " '█',\n",
+ " '.',\n",
+ " '=',\n",
+ " '.',\n",
+ " 'D',\n",
+ " '.',\n",
+ " '∴',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'I',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'T',\n",
+ " 'A',\n",
+ " '█',\n",
+ " '█',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'N',\n",
+ " 'E',\n",
+ " 'A',\n",
+ " 'T',\n",
+ " 'N',\n",
+ " 'E',\n",
+ " 's',\n",
+ " 'S',\n",
+ " '.',\n",
+ " '.',\n",
+ " ':',\n",
+ " '.',\n",
+ " 'W',\n",
+ " '█',\n",
+ " '█',\n",
+ " '≡',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'A',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'L',\n",
+ " 'O',\n",
+ " 'T',\n",
+ " 'A',\n",
+ " 'H',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'K',\n",
+ " '█',\n",
+ " '█',\n",
+ " '.',\n",
+ " ':',\n",
+ " '.',\n",
+ " 'R',\n",
+ " ':',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'I',\n",
+ " ':',\n",
+ " '.',\n",
+ " '.',\n",
+ " ':',\n",
+ " '.',\n",
+ " '█',\n",
+ " '█',\n",
+ " '.',\n",
+ " '.',\n",
+ " ':',\n",
+ " 'T',\n",
+ " '.',\n",
+ " '=',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 't',\n",
+ " '.',\n",
+ " '.',\n",
+ " ':',\n",
+ " '.',\n",
+ " '.',\n",
+ " '█',\n",
+ " '█',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'H',\n",
+ " '.',\n",
+ " '.',\n",
+ " '∴',\n",
+ " '.',\n",
+ " 'Y',\n",
+ " 'I',\n",
+ " 'R',\n",
+ " 'R',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█']"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ "Player 0 with rack VEXEPIL makes Play(start=230, dir=1, letters='PIXIE', rack='VEL') for 48 points ; draws: VELUCUI; scores: [229, 212]"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ " | | | TW | | | TL | | TL | | | TW | | | | | | DL | | | DW | | | | DW | | | DL | | | | DL | | | DL | | | | | | DL | | | DL | B3 | TW | | | TL | | | | DW | | | | Q10 | | | R1 | | | DL | | | | DL | | DL | | | U1 | DL | | O1 | | DW | | | | TL | | | | TL | | E1 | | O1 | M3 | TL | | | | DL | | | | | | DL | L1 | | N1 | O1 | | | | DW | | | | B3 | O1 | O1 | D2 | L1 | E1 | S1 | | TL | | | | DL | | | | | U1 | DL | | | E1 | D2 | | DW | | D2 | | TL | | | | I1 | | | | T1 | A1 | | | N1 | E1 | A1 | T1 | N1 | E1 | s | S1 | | | DL | | W4 | TW | | | A1 | | | | L1 | O1 | T1 | A1 | H4 | | | K5 | | DL | | R1 | DL | | | | P3 | I1 | X8 | I1 | E1 | DL | | | | DL | T1 | | DW | | | | t | | | DL | | | | | | H4 | | | TL | | Y4 | I1 | R1 | R1 | | | | "
+ ],
+ "text/plain": [
+ "['█',\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",
+ " '.',\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",
+ " 'B',\n",
+ " '█',\n",
+ " '█',\n",
+ " '≡',\n",
+ " '.',\n",
+ " '.',\n",
+ " '∴',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '=',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'Q',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'R',\n",
+ " '█',\n",
+ " '█',\n",
+ " '.',\n",
+ " '.',\n",
+ " ':',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " ':',\n",
+ " '.',\n",
+ " ':',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'U',\n",
+ " ':',\n",
+ " '.',\n",
+ " 'O',\n",
+ " '█',\n",
+ " '█',\n",
+ " '.',\n",
+ " '=',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '∴',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '∴',\n",
+ " '.',\n",
+ " 'E',\n",
+ " '.',\n",
+ " 'O',\n",
+ " 'M',\n",
+ " '█',\n",
+ " '█',\n",
+ " '∴',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " ':',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " ':',\n",
+ " 'L',\n",
+ " '.',\n",
+ " 'N',\n",
+ " 'O',\n",
+ " '█',\n",
+ " '█',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '=',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'B',\n",
+ " 'O',\n",
+ " 'O',\n",
+ " 'D',\n",
+ " 'L',\n",
+ " 'E',\n",
+ " 'S',\n",
+ " '.',\n",
+ " '█',\n",
+ " '█',\n",
+ " '∴',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " ':',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'U',\n",
+ " ':',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'E',\n",
+ " 'D',\n",
+ " '█',\n",
+ " '█',\n",
+ " '.',\n",
+ " '=',\n",
+ " '.',\n",
+ " 'D',\n",
+ " '.',\n",
+ " '∴',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'I',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'T',\n",
+ " 'A',\n",
+ " '█',\n",
+ " '█',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'N',\n",
+ " 'E',\n",
+ " 'A',\n",
+ " 'T',\n",
+ " 'N',\n",
+ " 'E',\n",
+ " 's',\n",
+ " 'S',\n",
+ " '.',\n",
+ " '.',\n",
+ " ':',\n",
+ " '.',\n",
+ " 'W',\n",
+ " '█',\n",
+ " '█',\n",
+ " '≡',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'A',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'L',\n",
+ " 'O',\n",
+ " 'T',\n",
+ " 'A',\n",
+ " 'H',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'K',\n",
+ " '█',\n",
+ " '█',\n",
+ " '.',\n",
+ " ':',\n",
+ " '.',\n",
+ " 'R',\n",
+ " ':',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'P',\n",
+ " 'I',\n",
+ " 'X',\n",
+ " 'I',\n",
+ " 'E',\n",
+ " ':',\n",
+ " '.',\n",
+ " '█',\n",
+ " '█',\n",
+ " '.',\n",
+ " '.',\n",
+ " ':',\n",
+ " 'T',\n",
+ " '.',\n",
+ " '=',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 't',\n",
+ " '.',\n",
+ " '.',\n",
+ " ':',\n",
+ " '.',\n",
+ " '.',\n",
+ " '█',\n",
+ " '█',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'H',\n",
+ " '.',\n",
+ " '.',\n",
+ " '∴',\n",
+ " '.',\n",
+ " 'Y',\n",
+ " 'I',\n",
+ " 'R',\n",
+ " 'R',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█']"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ "Player 1 with rack VINESTI makes Play(start=165, dir=1, letters='SNED', rack='VIETI') for 22 points ; draws: VIETIAA; scores: [229, 234]"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ " | | | TW | | | TL | | TL | | | TW | | | | | | DL | | | DW | | | | DW | | | DL | | | | DL | | | DL | | | | | | DL | | | DL | B3 | TW | | | TL | | | | DW | | | | Q10 | | | R1 | | | DL | | | | DL | | DL | | | U1 | DL | | O1 | | DW | | | | TL | | | | TL | | E1 | | O1 | M3 | TL | | | | DL | | | | | | DL | L1 | | N1 | O1 | | | | DW | | | | B3 | O1 | O1 | D2 | L1 | E1 | S1 | | TL | | | | DL | | | | | U1 | DL | S1 | N1 | E1 | D2 | | DW | | D2 | | TL | | | | I1 | | | | T1 | A1 | | | N1 | E1 | A1 | T1 | N1 | E1 | s | S1 | | | DL | | W4 | TW | | | A1 | | | | L1 | O1 | T1 | A1 | H4 | | | K5 | | DL | | R1 | DL | | | | P3 | I1 | X8 | I1 | E1 | DL | | | | DL | T1 | | DW | | | | t | | | DL | | | | | | H4 | | | TL | | Y4 | I1 | R1 | R1 | | | | "
+ ],
+ "text/plain": [
+ "['█',\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",
+ " '.',\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",
+ " 'B',\n",
+ " '█',\n",
+ " '█',\n",
+ " '≡',\n",
+ " '.',\n",
+ " '.',\n",
+ " '∴',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '=',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'Q',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'R',\n",
+ " '█',\n",
+ " '█',\n",
+ " '.',\n",
+ " '.',\n",
+ " ':',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " ':',\n",
+ " '.',\n",
+ " ':',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'U',\n",
+ " ':',\n",
+ " '.',\n",
+ " 'O',\n",
+ " '█',\n",
+ " '█',\n",
+ " '.',\n",
+ " '=',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '∴',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '∴',\n",
+ " '.',\n",
+ " 'E',\n",
+ " '.',\n",
+ " 'O',\n",
+ " 'M',\n",
+ " '█',\n",
+ " '█',\n",
+ " '∴',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " ':',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " ':',\n",
+ " 'L',\n",
+ " '.',\n",
+ " 'N',\n",
+ " 'O',\n",
+ " '█',\n",
+ " '█',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '=',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'B',\n",
+ " 'O',\n",
+ " 'O',\n",
+ " 'D',\n",
+ " 'L',\n",
+ " 'E',\n",
+ " 'S',\n",
+ " '.',\n",
+ " '█',\n",
+ " '█',\n",
+ " '∴',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " ':',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'U',\n",
+ " ':',\n",
+ " 'S',\n",
+ " 'N',\n",
+ " 'E',\n",
+ " 'D',\n",
+ " '█',\n",
+ " '█',\n",
+ " '.',\n",
+ " '=',\n",
+ " '.',\n",
+ " 'D',\n",
+ " '.',\n",
+ " '∴',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'I',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'T',\n",
+ " 'A',\n",
+ " '█',\n",
+ " '█',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'N',\n",
+ " 'E',\n",
+ " 'A',\n",
+ " 'T',\n",
+ " 'N',\n",
+ " 'E',\n",
+ " 's',\n",
+ " 'S',\n",
+ " '.',\n",
+ " '.',\n",
+ " ':',\n",
+ " '.',\n",
+ " 'W',\n",
+ " '█',\n",
+ " '█',\n",
+ " '≡',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'A',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'L',\n",
+ " 'O',\n",
+ " 'T',\n",
+ " 'A',\n",
+ " 'H',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'K',\n",
+ " '█',\n",
+ " '█',\n",
+ " '.',\n",
+ " ':',\n",
+ " '.',\n",
+ " 'R',\n",
+ " ':',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'P',\n",
+ " 'I',\n",
+ " 'X',\n",
+ " 'I',\n",
+ " 'E',\n",
+ " ':',\n",
+ " '.',\n",
+ " '█',\n",
+ " '█',\n",
+ " '.',\n",
+ " '.',\n",
+ " ':',\n",
+ " 'T',\n",
+ " '.',\n",
+ " '=',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 't',\n",
+ " '.',\n",
+ " '.',\n",
+ " ':',\n",
+ " '.',\n",
+ " '.',\n",
+ " '█',\n",
+ " '█',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'H',\n",
+ " '.',\n",
+ " '.',\n",
+ " '∴',\n",
+ " '.',\n",
+ " 'Y',\n",
+ " 'I',\n",
+ " 'R',\n",
+ " 'R',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█']"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ "Player 0 with rack VELUCUI makes Play(start=205, dir=1, letters='UVEA', rack='LCUI') for 23 points ; draws: LCUIEIF; scores: [252, 234]"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ " | | | TW | | | TL | | TL | | | TW | | | | | | DL | | | DW | | | | DW | | | DL | | | | DL | | | DL | | | | | | DL | | | DL | B3 | TW | | | TL | | | | DW | | | | Q10 | | | R1 | | | DL | | | | DL | | DL | | | U1 | DL | | O1 | | DW | | | | TL | | | | TL | | E1 | | O1 | M3 | TL | | | | DL | | | | | | DL | L1 | | N1 | O1 | | | | DW | | | | B3 | O1 | O1 | D2 | L1 | E1 | S1 | | TL | | | | DL | | | | | U1 | DL | S1 | N1 | E1 | D2 | | DW | | D2 | | TL | | | | I1 | | | | T1 | A1 | | | N1 | E1 | A1 | T1 | N1 | E1 | s | S1 | | | DL | | W4 | U1 | V4 | E1 | A1 | | | | L1 | O1 | T1 | A1 | H4 | | | K5 | | DL | | R1 | DL | | | | P3 | I1 | X8 | I1 | E1 | DL | | | | DL | T1 | | DW | | | | t | | | DL | | | | | | H4 | | | TL | | Y4 | I1 | R1 | R1 | | | | "
+ ],
+ "text/plain": [
+ "['█',\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",
+ " '.',\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",
+ " 'B',\n",
+ " '█',\n",
+ " '█',\n",
+ " '≡',\n",
+ " '.',\n",
+ " '.',\n",
+ " '∴',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '=',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'Q',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'R',\n",
+ " '█',\n",
+ " '█',\n",
+ " '.',\n",
+ " '.',\n",
+ " ':',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " ':',\n",
+ " '.',\n",
+ " ':',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'U',\n",
+ " ':',\n",
+ " '.',\n",
+ " 'O',\n",
+ " '█',\n",
+ " '█',\n",
+ " '.',\n",
+ " '=',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '∴',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '∴',\n",
+ " '.',\n",
+ " 'E',\n",
+ " '.',\n",
+ " 'O',\n",
+ " 'M',\n",
+ " '█',\n",
+ " '█',\n",
+ " '∴',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " ':',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " ':',\n",
+ " 'L',\n",
+ " '.',\n",
+ " 'N',\n",
+ " 'O',\n",
+ " '█',\n",
+ " '█',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '=',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'B',\n",
+ " 'O',\n",
+ " 'O',\n",
+ " 'D',\n",
+ " 'L',\n",
+ " 'E',\n",
+ " 'S',\n",
+ " '.',\n",
+ " '█',\n",
+ " '█',\n",
+ " '∴',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " ':',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'U',\n",
+ " ':',\n",
+ " 'S',\n",
+ " 'N',\n",
+ " 'E',\n",
+ " 'D',\n",
+ " '█',\n",
+ " '█',\n",
+ " '.',\n",
+ " '=',\n",
+ " '.',\n",
+ " 'D',\n",
+ " '.',\n",
+ " '∴',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'I',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'T',\n",
+ " 'A',\n",
+ " '█',\n",
+ " '█',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'N',\n",
+ " 'E',\n",
+ " 'A',\n",
+ " 'T',\n",
+ " 'N',\n",
+ " 'E',\n",
+ " 's',\n",
+ " 'S',\n",
+ " '.',\n",
+ " '.',\n",
+ " ':',\n",
+ " '.',\n",
+ " 'W',\n",
+ " '█',\n",
+ " '█',\n",
+ " 'U',\n",
+ " 'V',\n",
+ " 'E',\n",
+ " 'A',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'L',\n",
+ " 'O',\n",
+ " 'T',\n",
+ " 'A',\n",
+ " 'H',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'K',\n",
+ " '█',\n",
+ " '█',\n",
+ " '.',\n",
+ " ':',\n",
+ " '.',\n",
+ " 'R',\n",
+ " ':',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'P',\n",
+ " 'I',\n",
+ " 'X',\n",
+ " 'I',\n",
+ " 'E',\n",
+ " ':',\n",
+ " '.',\n",
+ " '█',\n",
+ " '█',\n",
+ " '.',\n",
+ " '.',\n",
+ " ':',\n",
+ " 'T',\n",
+ " '.',\n",
+ " '=',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 't',\n",
+ " '.',\n",
+ " '.',\n",
+ " ':',\n",
+ " '.',\n",
+ " '.',\n",
+ " '█',\n",
+ " '█',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'H',\n",
+ " '.',\n",
+ " '.',\n",
+ " '∴',\n",
+ " '.',\n",
+ " 'Y',\n",
+ " 'I',\n",
+ " 'R',\n",
+ " 'R',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█']"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ "Player 1 with rack VIETIAA makes Play(start=159, dir=17, letters='VITIATE', rack='A') for 24 points ; draws: AZEOIMG; scores: [252, 258]"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ " | | | TW | | | TL | | TL | | | TW | | | | | | DL | | | DW | | | | DW | | | DL | | | | DL | | | DL | | | | | | DL | | | DL | B3 | TW | | | TL | | | | DW | | | | Q10 | | | R1 | | | DL | | | | DL | | DL | | | U1 | DL | | O1 | | DW | | | | TL | | | | TL | | E1 | | O1 | M3 | TL | | | | DL | | | | | | DL | L1 | | N1 | O1 | | | | DW | | | | B3 | O1 | O1 | D2 | L1 | E1 | S1 | | TL | | | | DL | V4 | | | | U1 | DL | S1 | N1 | E1 | D2 | | DW | | D2 | | I1 | | | | I1 | | | | T1 | A1 | | | N1 | E1 | A1 | T1 | N1 | E1 | s | S1 | | | DL | | W4 | U1 | V4 | E1 | A1 | | I1 | | L1 | O1 | T1 | A1 | H4 | | | K5 | | DL | | R1 | DL | A1 | | | P3 | I1 | X8 | I1 | E1 | DL | | | | DL | T1 | | T1 | | | | t | | | DL | | | | | | H4 | | E1 | TL | | Y4 | I1 | R1 | R1 | | | | "
+ ],
+ "text/plain": [
+ "['█',\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",
+ " '.',\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",
+ " 'B',\n",
+ " '█',\n",
+ " '█',\n",
+ " '≡',\n",
+ " '.',\n",
+ " '.',\n",
+ " '∴',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '=',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'Q',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'R',\n",
+ " '█',\n",
+ " '█',\n",
+ " '.',\n",
+ " '.',\n",
+ " ':',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " ':',\n",
+ " '.',\n",
+ " ':',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'U',\n",
+ " ':',\n",
+ " '.',\n",
+ " 'O',\n",
+ " '█',\n",
+ " '█',\n",
+ " '.',\n",
+ " '=',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '∴',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '∴',\n",
+ " '.',\n",
+ " 'E',\n",
+ " '.',\n",
+ " 'O',\n",
+ " 'M',\n",
+ " '█',\n",
+ " '█',\n",
+ " '∴',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " ':',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " ':',\n",
+ " 'L',\n",
+ " '.',\n",
+ " 'N',\n",
+ " 'O',\n",
+ " '█',\n",
+ " '█',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '=',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'B',\n",
+ " 'O',\n",
+ " 'O',\n",
+ " 'D',\n",
+ " 'L',\n",
+ " 'E',\n",
+ " 'S',\n",
+ " '.',\n",
+ " '█',\n",
+ " '█',\n",
+ " '∴',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " ':',\n",
" 'V',\n",
" '.',\n",
- " ';',\n",
" '.',\n",
- " ';',\n",
" '.',\n",
+ " 'U',\n",
+ " ':',\n",
+ " 'S',\n",
+ " 'N',\n",
+ " 'E',\n",
+ " 'D',\n",
+ " '█',\n",
+ " '█',\n",
" '.',\n",
" '=',\n",
" '.',\n",
+ " 'D',\n",
+ " '.',\n",
+ " 'I',\n",
" '.',\n",
" '.',\n",
- " '#',\n",
- " '#',\n",
+ " '.',\n",
+ " 'I',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'T',\n",
+ " 'A',\n",
+ " '█',\n",
+ " '█',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'N',\n",
+ " 'E',\n",
+ " 'A',\n",
+ " 'T',\n",
+ " 'N',\n",
+ " 'E',\n",
+ " 's',\n",
+ " 'S',\n",
" '.',\n",
" '.',\n",
" ':',\n",
" '.',\n",
+ " 'W',\n",
+ " '█',\n",
+ " '█',\n",
+ " 'U',\n",
+ " 'V',\n",
+ " 'E',\n",
+ " 'A',\n",
+ " '.',\n",
+ " 'I',\n",
+ " '.',\n",
+ " 'L',\n",
" 'O',\n",
- " '-',\n",
+ " 'T',\n",
+ " 'A',\n",
+ " 'H',\n",
" '.',\n",
" '.',\n",
- " '.',\n",
- " '-',\n",
" 'K',\n",
+ " '█',\n",
+ " '█',\n",
" '.',\n",
" ':',\n",
" '.',\n",
- " 'G',\n",
- " '#',\n",
- " '#',\n",
- " '.',\n",
- " ':',\n",
- " '.',\n",
- " '.',\n",
- " 'L',\n",
- " '.',\n",
- " '.',\n",
- " '.',\n",
- " '.',\n",
- " '.',\n",
- " 'H',\n",
- " 'I',\n",
- " '.',\n",
- " ':',\n",
" 'R',\n",
- " '#',\n",
- " '#',\n",
- " '=',\n",
- " '.',\n",
- " '.',\n",
- " ';',\n",
- " 'U',\n",
- " '.',\n",
- " '.',\n",
- " '-',\n",
- " '.',\n",
- " '.',\n",
- " 'I',\n",
- " 'N',\n",
- " '.',\n",
- " '.',\n",
- " 'E',\n",
- " '#',\n",
- " '#',\n",
- " '.',\n",
- " '.',\n",
" ':',\n",
- " '.',\n",
- " 'T',\n",
- " '.',\n",
- " ':',\n",
- " '.',\n",
- " ':',\n",
- " '.',\n",
- " '.',\n",
- " 'C',\n",
- " ':',\n",
- " '.',\n",
" 'A',\n",
- " '#',\n",
- " '#',\n",
- " '.',\n",
- " '-',\n",
" '.',\n",
" '.',\n",
- " 'I',\n",
- " ';',\n",
- " '.',\n",
- " '.',\n",
- " '.',\n",
- " 'C',\n",
- " 'A',\n",
- " 'I',\n",
- " 'R',\n",
- " 'D',\n",
- " 'S',\n",
- " '#',\n",
- " '#',\n",
- " ';',\n",
- " '.',\n",
- " '.',\n",
- " 'I',\n",
- " 'N',\n",
- " '.',\n",
- " '.',\n",
- " '.',\n",
- " '.',\n",
- " '.',\n",
- " ':',\n",
- " 'D',\n",
- " '.',\n",
- " '.',\n",
- " 'E',\n",
- " '#',\n",
- " '#',\n",
- " '.',\n",
- " 'J',\n",
- " '.',\n",
- " 'O',\n",
- " '.',\n",
- " '.',\n",
- " '.',\n",
- " 'B',\n",
- " 'U',\n",
- " 'T',\n",
- " 'T',\n",
- " 'E',\n",
- " '.',\n",
- " '.',\n",
- " '.',\n",
- " '#',\n",
- " '#',\n",
- " 'H',\n",
- " 'E',\n",
- " '.',\n",
- " 'D',\n",
- " ':',\n",
- " '.',\n",
- " '.',\n",
- " 'I',\n",
- " '.',\n",
- " '.',\n",
- " ':',\n",
- " 'N',\n",
- " '.',\n",
- " '.',\n",
- " ';',\n",
- " '#',\n",
- " '#',\n",
- " 'E',\n",
- " 'L',\n",
- " '.',\n",
- " 'I',\n",
- " '.',\n",
- " 'T',\n",
- " '.',\n",
- " 'O',\n",
- " '.',\n",
- " 'F',\n",
- " 'E',\n",
- " 'T',\n",
- " 'U',\n",
- " 'S',\n",
- " '.',\n",
- " '#',\n",
- " '#',\n",
- " '.',\n",
- " 'L',\n",
- " ':',\n",
- " 'Z',\n",
- " '.',\n",
- " 'A',\n",
- " ':',\n",
- " 'M',\n",
- " ':',\n",
- " '.',\n",
- " '.',\n",
- " '.',\n",
- " ':',\n",
- " '.',\n",
- " '.',\n",
- " '#',\n",
- " '#',\n",
- " 'G',\n",
- " 'Y',\n",
- " 'R',\n",
- " 'E',\n",
- " 'N',\n",
- " 'E',\n",
- " '.',\n",
- " 'E',\n",
- " 'O',\n",
- " 'L',\n",
- " 'O',\n",
" 'P',\n",
" 'I',\n",
- " 'l',\n",
- " 'E',\n",
- " '#',\n",
- " '#',\n",
- " '.',\n",
- " ':',\n",
- " '.',\n",
- " 'R',\n",
- " ':',\n",
- " 'N',\n",
- " '.',\n",
- " '.',\n",
- " 'F',\n",
- " 'A',\n",
" 'X',\n",
- " '.',\n",
- " '.',\n",
- " ':',\n",
- " '.',\n",
- " '#',\n",
- " '#',\n",
- " '.',\n",
- " '.',\n",
- " ':',\n",
- " '.',\n",
- " '.',\n",
" 'I',\n",
+ " 'E',\n",
+ " ':',\n",
+ " '.',\n",
+ " '█',\n",
+ " '█',\n",
" '.',\n",
" '.',\n",
+ " ':',\n",
+ " 'T',\n",
" '.',\n",
" 'T',\n",
- " 'O',\n",
- " 'A',\n",
- " 'D',\n",
- " 'Y',\n",
- " '.',\n",
- " '#',\n",
- " '#',\n",
" '.',\n",
" '.',\n",
" '.',\n",
- " '=',\n",
+ " 't',\n",
+ " '.',\n",
+ " '.',\n",
+ " ':',\n",
+ " '.',\n",
+ " '.',\n",
+ " '█',\n",
+ " '█',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'H',\n",
" '.',\n",
- " 'A',\n",
- " 'G',\n",
- " 'A',\n",
- " 'P',\n",
" 'E',\n",
+ " '∴',\n",
" '.',\n",
- " 'S',\n",
- " 'O',\n",
- " 'A',\n",
+ " 'Y',\n",
+ " 'I',\n",
" 'R',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#']"
+ " 'R',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█']"
]
},
"metadata": {},
@@ -11263,7 +15564,7 @@
{
"data": {
"text/html": [
- "Player 0 with rack QBMNOVS makes Play(start=239, dir=1, letters='MOBS', rack='QNV') for 29 points; draws: QNV; scores: [315, 327]"
+ "Player 0 with rack LCUIEIF makes Play(start=245, dir=17, letters='IF', rack='LCUEI') for 28 points ; draws: LCUEIGD; scores: [280, 258]"
],
"text/plain": [
""
@@ -11275,298 +15576,523 @@
{
"data": {
"text/html": [
- " | | | TW | V4 | | TL | | TL | | | TW | | | | | | DL | | O1 | DW | | | | DW | K5 | | DL | | G2 | | DL | | | L1 | | | | | | H4 | I1 | | DL | R1 | TW | | | TL | U1 | | | DW | | | I1 | N1 | | | E1 | | | DL | | T1 | | DL | | DL | | | C3 | DL | | A1 | | DW | | | I1 | TL | | | | C3 | A1 | I1 | R1 | D2 | S1 | TL | | | I1 | N1 | | | | | | DL | D2 | | | E1 | | J8 | | O1 | | | | B3 | U1 | T1 | T1 | E1 | | | | H4 | E1 | | D2 | DL | | | I1 | | | DL | N1 | | | TL | E1 | L1 | | I1 | | T1 | | O1 | | F4 | E1 | T1 | U1 | S1 | | | L1 | DL | Z10 | | A1 | DL | M3 | DL | | | | DL | | | G2 | Y4 | R1 | E1 | N1 | E1 | | E1 | O1 | L1 | O1 | P3 | I1 | l | E1 | | DL | | R1 | DL | N1 | | | F4 | A1 | X8 | | | DL | | M3 | O1 | B3 | S1 | | I1 | | | | T1 | O1 | A1 | D2 | Y4 | | | | | TW | | A1 | G2 | A1 | P3 | E1 | | S1 | O1 | A1 | R1 | "
+ " | | | TW | | | TL | | TL | | | TW | | | | | | DL | | | DW | | | | DW | | | DL | | | | DL | | | DL | | | | | | DL | | | DL | B3 | TW | | | TL | | | | DW | | | | Q10 | | | R1 | | | DL | | | | DL | | DL | | | U1 | DL | | O1 | | DW | | | | TL | | | | TL | | E1 | | O1 | M3 | TL | | | | DL | | | | | | DL | L1 | | N1 | O1 | | | | DW | | | | B3 | O1 | O1 | D2 | L1 | E1 | S1 | | TL | | | | DL | V4 | | | | U1 | DL | S1 | N1 | E1 | D2 | | DW | | D2 | | I1 | | | | I1 | | | | T1 | A1 | | | N1 | E1 | A1 | T1 | N1 | E1 | s | S1 | | | DL | | W4 | U1 | V4 | E1 | A1 | | I1 | | L1 | O1 | T1 | A1 | H4 | | | K5 | | DL | | R1 | DL | A1 | | | P3 | I1 | X8 | I1 | E1 | DL | | | | DL | T1 | | T1 | I1 | | | t | | | DL | | | | | | H4 | | E1 | F4 | | Y4 | I1 | R1 | R1 | | | | "
],
"text/plain": [
- "['#',\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",
+ " '≡',\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",
+ " '.',\n",
+ " '.',\n",
+ " ':',\n",
+ " '.',\n",
+ " '.',\n",
+ " ':',\n",
+ " 'B',\n",
+ " '█',\n",
+ " '█',\n",
+ " '≡',\n",
+ " '.',\n",
+ " '.',\n",
+ " '∴',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '=',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'Q',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'R',\n",
+ " '█',\n",
+ " '█',\n",
+ " '.',\n",
+ " '.',\n",
+ " ':',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " ':',\n",
+ " '.',\n",
+ " ':',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'U',\n",
+ " ':',\n",
+ " '.',\n",
+ " 'O',\n",
+ " '█',\n",
+ " '█',\n",
+ " '.',\n",
+ " '=',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '∴',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '∴',\n",
+ " '.',\n",
+ " 'E',\n",
+ " '.',\n",
+ " 'O',\n",
+ " 'M',\n",
+ " '█',\n",
+ " '█',\n",
+ " '∴',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " ':',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " ':',\n",
+ " 'L',\n",
+ " '.',\n",
+ " 'N',\n",
+ " 'O',\n",
+ " '█',\n",
+ " '█',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '=',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'B',\n",
+ " 'O',\n",
+ " 'O',\n",
+ " 'D',\n",
+ " 'L',\n",
+ " 'E',\n",
+ " 'S',\n",
+ " '.',\n",
+ " '█',\n",
+ " '█',\n",
+ " '∴',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " ':',\n",
" 'V',\n",
" '.',\n",
- " ';',\n",
" '.',\n",
- " ';',\n",
" '.',\n",
+ " 'U',\n",
+ " ':',\n",
+ " 'S',\n",
+ " 'N',\n",
+ " 'E',\n",
+ " 'D',\n",
+ " '█',\n",
+ " '█',\n",
" '.',\n",
" '=',\n",
" '.',\n",
+ " 'D',\n",
+ " '.',\n",
+ " 'I',\n",
" '.',\n",
" '.',\n",
- " '#',\n",
- " '#',\n",
+ " '.',\n",
+ " 'I',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'T',\n",
+ " 'A',\n",
+ " '█',\n",
+ " '█',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'N',\n",
+ " 'E',\n",
+ " 'A',\n",
+ " 'T',\n",
+ " 'N',\n",
+ " 'E',\n",
+ " 's',\n",
+ " 'S',\n",
" '.',\n",
" '.',\n",
" ':',\n",
" '.',\n",
+ " 'W',\n",
+ " '█',\n",
+ " '█',\n",
+ " 'U',\n",
+ " 'V',\n",
+ " 'E',\n",
+ " 'A',\n",
+ " '.',\n",
+ " 'I',\n",
+ " '.',\n",
+ " 'L',\n",
" 'O',\n",
- " '-',\n",
+ " 'T',\n",
+ " 'A',\n",
+ " 'H',\n",
" '.',\n",
" '.',\n",
- " '.',\n",
- " '-',\n",
" 'K',\n",
+ " '█',\n",
+ " '█',\n",
" '.',\n",
" ':',\n",
" '.',\n",
- " 'G',\n",
- " '#',\n",
- " '#',\n",
- " '.',\n",
- " ':',\n",
- " '.',\n",
- " '.',\n",
- " 'L',\n",
- " '.',\n",
- " '.',\n",
- " '.',\n",
- " '.',\n",
- " '.',\n",
- " 'H',\n",
- " 'I',\n",
- " '.',\n",
- " ':',\n",
" 'R',\n",
- " '#',\n",
- " '#',\n",
- " '=',\n",
- " '.',\n",
- " '.',\n",
- " ';',\n",
- " 'U',\n",
- " '.',\n",
- " '.',\n",
- " '-',\n",
- " '.',\n",
- " '.',\n",
- " 'I',\n",
- " 'N',\n",
- " '.',\n",
- " '.',\n",
- " 'E',\n",
- " '#',\n",
- " '#',\n",
- " '.',\n",
- " '.',\n",
" ':',\n",
- " '.',\n",
- " 'T',\n",
- " '.',\n",
- " ':',\n",
- " '.',\n",
- " ':',\n",
- " '.',\n",
- " '.',\n",
- " 'C',\n",
- " ':',\n",
- " '.',\n",
" 'A',\n",
- " '#',\n",
- " '#',\n",
- " '.',\n",
- " '-',\n",
" '.',\n",
" '.',\n",
- " 'I',\n",
- " ';',\n",
- " '.',\n",
- " '.',\n",
- " '.',\n",
- " 'C',\n",
- " 'A',\n",
- " 'I',\n",
- " 'R',\n",
- " 'D',\n",
- " 'S',\n",
- " '#',\n",
- " '#',\n",
- " ';',\n",
- " '.',\n",
- " '.',\n",
- " 'I',\n",
- " 'N',\n",
- " '.',\n",
- " '.',\n",
- " '.',\n",
- " '.',\n",
- " '.',\n",
- " ':',\n",
- " 'D',\n",
- " '.',\n",
- " '.',\n",
- " 'E',\n",
- " '#',\n",
- " '#',\n",
- " '.',\n",
- " 'J',\n",
- " '.',\n",
- " 'O',\n",
- " '.',\n",
- " '.',\n",
- " '.',\n",
- " 'B',\n",
- " 'U',\n",
- " 'T',\n",
- " 'T',\n",
- " 'E',\n",
- " '.',\n",
- " '.',\n",
- " '.',\n",
- " '#',\n",
- " '#',\n",
- " 'H',\n",
- " 'E',\n",
- " '.',\n",
- " 'D',\n",
- " ':',\n",
- " '.',\n",
- " '.',\n",
- " 'I',\n",
- " '.',\n",
- " '.',\n",
- " ':',\n",
- " 'N',\n",
- " '.',\n",
- " '.',\n",
- " ';',\n",
- " '#',\n",
- " '#',\n",
- " 'E',\n",
- " 'L',\n",
- " '.',\n",
- " 'I',\n",
- " '.',\n",
- " 'T',\n",
- " '.',\n",
- " 'O',\n",
- " '.',\n",
- " 'F',\n",
- " 'E',\n",
- " 'T',\n",
- " 'U',\n",
- " 'S',\n",
- " '.',\n",
- " '#',\n",
- " '#',\n",
- " '.',\n",
- " 'L',\n",
- " ':',\n",
- " 'Z',\n",
- " '.',\n",
- " 'A',\n",
- " ':',\n",
- " 'M',\n",
- " ':',\n",
- " '.',\n",
- " '.',\n",
- " '.',\n",
- " ':',\n",
- " '.',\n",
- " '.',\n",
- " '#',\n",
- " '#',\n",
- " 'G',\n",
- " 'Y',\n",
- " 'R',\n",
- " 'E',\n",
- " 'N',\n",
- " 'E',\n",
- " '.',\n",
- " 'E',\n",
- " 'O',\n",
- " 'L',\n",
- " 'O',\n",
" 'P',\n",
" 'I',\n",
- " 'l',\n",
- " 'E',\n",
- " '#',\n",
- " '#',\n",
- " '.',\n",
- " ':',\n",
- " '.',\n",
- " 'R',\n",
- " ':',\n",
- " 'N',\n",
- " '.',\n",
- " '.',\n",
- " 'F',\n",
- " 'A',\n",
" 'X',\n",
+ " 'I',\n",
+ " 'E',\n",
+ " ':',\n",
+ " '.',\n",
+ " '█',\n",
+ " '█',\n",
+ " '.',\n",
+ " '.',\n",
+ " ':',\n",
+ " 'T',\n",
+ " '.',\n",
+ " 'T',\n",
+ " 'I',\n",
+ " '.',\n",
+ " '.',\n",
+ " 't',\n",
" '.',\n",
" '.',\n",
" ':',\n",
" '.',\n",
- " '#',\n",
- " '#',\n",
- " 'M',\n",
- " 'O',\n",
- " 'B',\n",
- " 'S',\n",
" '.',\n",
- " 'I',\n",
+ " '█',\n",
+ " '█',\n",
" '.',\n",
" '.',\n",
" '.',\n",
- " 'T',\n",
- " 'O',\n",
- " 'A',\n",
- " 'D',\n",
- " 'Y',\n",
+ " 'H',\n",
" '.',\n",
- " '#',\n",
- " '#',\n",
- " '.',\n",
- " '.',\n",
- " '.',\n",
- " '=',\n",
- " '.',\n",
- " 'A',\n",
- " 'G',\n",
- " 'A',\n",
- " 'P',\n",
" 'E',\n",
+ " 'F',\n",
" '.',\n",
- " 'S',\n",
- " 'O',\n",
- " 'A',\n",
+ " 'Y',\n",
+ " 'I',\n",
" 'R',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#']"
+ " 'R',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█']"
]
},
"metadata": {},
@@ -11575,7 +16101,7 @@
{
"data": {
"text/html": [
- "Player 1 with rack _UWEARW makes Play(start=21, dir=1, letters='AVoWER', rack='UW') for 63 points; draws: UW; scores: [315, 390]"
+ "Player 1 with rack AZEOIMG makes Play(start=76, dir=17, letters='GAZEBO', rack='IM') for 36 points ; draws: IMGRORY; scores: [280, 294]"
],
"text/plain": [
""
@@ -11587,298 +16113,523 @@
{
"data": {
"text/html": [
- " | | | A1 | V4 | o | W4 | E1 | R1 | | | TW | | | | | | DL | | O1 | DW | | | | DW | K5 | | DL | | G2 | | DL | | | L1 | | | | | | H4 | I1 | | DL | R1 | TW | | | TL | U1 | | | DW | | | I1 | N1 | | | E1 | | | DL | | T1 | | DL | | DL | | | C3 | DL | | A1 | | DW | | | I1 | TL | | | | C3 | A1 | I1 | R1 | D2 | S1 | TL | | | I1 | N1 | | | | | | DL | D2 | | | E1 | | J8 | | O1 | | | | B3 | U1 | T1 | T1 | E1 | | | | H4 | E1 | | D2 | DL | | | I1 | | | DL | N1 | | | TL | E1 | L1 | | I1 | | T1 | | O1 | | F4 | E1 | T1 | U1 | S1 | | | L1 | DL | Z10 | | A1 | DL | M3 | DL | | | | DL | | | G2 | Y4 | R1 | E1 | N1 | E1 | | E1 | O1 | L1 | O1 | P3 | I1 | l | E1 | | DL | | R1 | DL | N1 | | | F4 | A1 | X8 | | | DL | | M3 | O1 | B3 | S1 | | I1 | | | | T1 | O1 | A1 | D2 | Y4 | | | | | TW | | A1 | G2 | A1 | P3 | E1 | | S1 | O1 | A1 | R1 | "
+ " | | | TW | | | TL | | TL | | | TW | | | | | | DL | | | DW | | | | DW | | | DL | | | | DL | | | DL | | | | | | DL | | | DL | B3 | TW | | | TL | | | | G2 | | | | Q10 | | | R1 | | | DL | | | | DL | A1 | DL | | | U1 | DL | | O1 | | DW | | | | TL | | Z10 | | TL | | E1 | | O1 | M3 | TL | | | | DL | | | E1 | | | DL | L1 | | N1 | O1 | | | | DW | | | | B3 | O1 | O1 | D2 | L1 | E1 | S1 | | TL | | | | DL | V4 | | O1 | | U1 | DL | S1 | N1 | E1 | D2 | | DW | | D2 | | I1 | | | | I1 | | | | T1 | A1 | | | N1 | E1 | A1 | T1 | N1 | E1 | s | S1 | | | DL | | W4 | U1 | V4 | E1 | A1 | | I1 | | L1 | O1 | T1 | A1 | H4 | | | K5 | | DL | | R1 | DL | A1 | | | P3 | I1 | X8 | I1 | E1 | DL | | | | DL | T1 | | T1 | I1 | | | t | | | DL | | | | | | H4 | | E1 | F4 | | Y4 | I1 | R1 | R1 | | | | "
],
"text/plain": [
- "['#',\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",
- " 'A',\n",
- " 'V',\n",
- " 'o',\n",
- " 'W',\n",
- " 'E',\n",
- " 'R',\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",
- " 'O',\n",
- " '-',\n",
" '.',\n",
- " '.',\n",
- " '.',\n",
- " '-',\n",
- " 'K',\n",
+ " '█',\n",
+ " '█',\n",
" '.',\n",
" ':',\n",
" '.',\n",
+ " '.',\n",
+ " ':',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " ':',\n",
+ " '.',\n",
+ " '.',\n",
+ " ':',\n",
+ " 'B',\n",
+ " '█',\n",
+ " '█',\n",
+ " '≡',\n",
+ " '.',\n",
+ " '.',\n",
+ " '∴',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
" 'G',\n",
- " '#',\n",
- " '#',\n",
- " '.',\n",
- " ':',\n",
- " '.',\n",
- " '.',\n",
- " 'L',\n",
" '.',\n",
" '.',\n",
" '.',\n",
+ " 'Q',\n",
" '.',\n",
" '.',\n",
- " 'H',\n",
- " 'I',\n",
- " '.',\n",
- " ':',\n",
" 'R',\n",
- " '#',\n",
- " '#',\n",
+ " '█',\n",
+ " '█',\n",
+ " '.',\n",
+ " '.',\n",
+ " ':',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " ':',\n",
+ " 'A',\n",
+ " ':',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'U',\n",
+ " ':',\n",
+ " '.',\n",
+ " 'O',\n",
+ " '█',\n",
+ " '█',\n",
+ " '.',\n",
" '=',\n",
" '.',\n",
" '.',\n",
- " ';',\n",
- " 'U',\n",
" '.',\n",
+ " '∴',\n",
" '.',\n",
- " '-',\n",
- " '.',\n",
- " '.',\n",
- " 'I',\n",
- " 'N',\n",
- " '.',\n",
- " '.',\n",
- " 'E',\n",
- " '#',\n",
- " '#',\n",
- " '.',\n",
- " '.',\n",
- " ':',\n",
- " '.',\n",
- " 'T',\n",
- " '.',\n",
- " ':',\n",
- " '.',\n",
- " ':',\n",
- " '.',\n",
- " '.',\n",
- " 'C',\n",
- " ':',\n",
- " '.',\n",
- " 'A',\n",
- " '#',\n",
- " '#',\n",
- " '.',\n",
- " '-',\n",
- " '.',\n",
- " '.',\n",
- " 'I',\n",
- " ';',\n",
- " '.',\n",
- " '.',\n",
- " '.',\n",
- " 'C',\n",
- " 'A',\n",
- " 'I',\n",
- " 'R',\n",
- " 'D',\n",
- " 'S',\n",
- " '#',\n",
- " '#',\n",
- " ';',\n",
- " '.',\n",
- " '.',\n",
- " 'I',\n",
- " 'N',\n",
- " '.',\n",
- " '.',\n",
- " '.',\n",
- " '.',\n",
- " '.',\n",
- " ':',\n",
- " 'D',\n",
- " '.',\n",
- " '.',\n",
- " 'E',\n",
- " '#',\n",
- " '#',\n",
- " '.',\n",
- " 'J',\n",
- " '.',\n",
- " 'O',\n",
- " '.',\n",
- " '.',\n",
- " '.',\n",
- " 'B',\n",
- " 'U',\n",
- " 'T',\n",
- " 'T',\n",
- " 'E',\n",
- " '.',\n",
- " '.',\n",
- " '.',\n",
- " '#',\n",
- " '#',\n",
- " 'H',\n",
- " 'E',\n",
- " '.',\n",
- " 'D',\n",
- " ':',\n",
- " '.',\n",
- " '.',\n",
- " 'I',\n",
- " '.',\n",
- " '.',\n",
- " ':',\n",
- " 'N',\n",
- " '.',\n",
- " '.',\n",
- " ';',\n",
- " '#',\n",
- " '#',\n",
- " 'E',\n",
- " 'L',\n",
- " '.',\n",
- " 'I',\n",
- " '.',\n",
- " 'T',\n",
- " '.',\n",
- " 'O',\n",
- " '.',\n",
- " 'F',\n",
- " 'E',\n",
- " 'T',\n",
- " 'U',\n",
- " 'S',\n",
- " '.',\n",
- " '#',\n",
- " '#',\n",
- " '.',\n",
- " 'L',\n",
- " ':',\n",
" 'Z',\n",
" '.',\n",
- " 'A',\n",
- " ':',\n",
- " 'M',\n",
- " ':',\n",
- " '.',\n",
- " '.',\n",
- " '.',\n",
- " ':',\n",
- " '.',\n",
- " '.',\n",
- " '#',\n",
- " '#',\n",
- " 'G',\n",
- " 'Y',\n",
- " 'R',\n",
- " 'E',\n",
- " 'N',\n",
- " 'E',\n",
+ " '∴',\n",
" '.',\n",
" 'E',\n",
+ " '.',\n",
" 'O',\n",
+ " 'M',\n",
+ " '█',\n",
+ " '█',\n",
+ " '∴',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " ':',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'E',\n",
+ " '.',\n",
+ " '.',\n",
+ " ':',\n",
" 'L',\n",
- " 'O',\n",
- " 'P',\n",
- " 'I',\n",
- " 'l',\n",
- " 'E',\n",
- " '#',\n",
- " '#',\n",
" '.',\n",
- " ':',\n",
- " '.',\n",
- " 'R',\n",
- " ':',\n",
" 'N',\n",
+ " 'O',\n",
+ " '█',\n",
+ " '█',\n",
" '.',\n",
" '.',\n",
- " 'F',\n",
- " 'A',\n",
- " 'X',\n",
+ " '.',\n",
+ " '=',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'B',\n",
+ " 'O',\n",
+ " 'O',\n",
+ " 'D',\n",
+ " 'L',\n",
+ " 'E',\n",
+ " 'S',\n",
+ " '.',\n",
+ " '█',\n",
+ " '█',\n",
+ " '∴',\n",
+ " '.',\n",
" '.',\n",
" '.',\n",
" ':',\n",
+ " 'V',\n",
" '.',\n",
- " '#',\n",
- " '#',\n",
- " 'M',\n",
" 'O',\n",
- " 'B',\n",
+ " '.',\n",
+ " 'U',\n",
+ " ':',\n",
" 'S',\n",
+ " 'N',\n",
+ " 'E',\n",
+ " 'D',\n",
+ " '█',\n",
+ " '█',\n",
+ " '.',\n",
+ " '=',\n",
+ " '.',\n",
+ " 'D',\n",
+ " '.',\n",
+ " 'I',\n",
+ " '.',\n",
+ " '.',\n",
" '.',\n",
" 'I',\n",
" '.',\n",
" '.',\n",
" '.',\n",
" 'T',\n",
- " 'O',\n",
" 'A',\n",
- " 'D',\n",
- " 'Y',\n",
- " '.',\n",
- " '#',\n",
- " '#',\n",
+ " '█',\n",
+ " '█',\n",
" '.',\n",
" '.',\n",
- " '.',\n",
- " '=',\n",
- " '.',\n",
- " 'A',\n",
- " 'G',\n",
- " 'A',\n",
- " 'P',\n",
+ " 'N',\n",
" 'E',\n",
- " '.',\n",
- " 'S',\n",
- " 'O',\n",
" 'A',\n",
+ " 'T',\n",
+ " 'N',\n",
+ " 'E',\n",
+ " 's',\n",
+ " 'S',\n",
+ " '.',\n",
+ " '.',\n",
+ " ':',\n",
+ " '.',\n",
+ " 'W',\n",
+ " '█',\n",
+ " '█',\n",
+ " 'U',\n",
+ " 'V',\n",
+ " 'E',\n",
+ " 'A',\n",
+ " '.',\n",
+ " 'I',\n",
+ " '.',\n",
+ " 'L',\n",
+ " 'O',\n",
+ " 'T',\n",
+ " 'A',\n",
+ " 'H',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'K',\n",
+ " '█',\n",
+ " '█',\n",
+ " '.',\n",
+ " ':',\n",
+ " '.',\n",
" 'R',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#']"
+ " ':',\n",
+ " 'A',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'P',\n",
+ " 'I',\n",
+ " 'X',\n",
+ " 'I',\n",
+ " 'E',\n",
+ " ':',\n",
+ " '.',\n",
+ " '█',\n",
+ " '█',\n",
+ " '.',\n",
+ " '.',\n",
+ " ':',\n",
+ " 'T',\n",
+ " '.',\n",
+ " 'T',\n",
+ " 'I',\n",
+ " '.',\n",
+ " '.',\n",
+ " 't',\n",
+ " '.',\n",
+ " '.',\n",
+ " ':',\n",
+ " '.',\n",
+ " '.',\n",
+ " '█',\n",
+ " '█',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'H',\n",
+ " '.',\n",
+ " 'E',\n",
+ " 'F',\n",
+ " '.',\n",
+ " 'Y',\n",
+ " 'I',\n",
+ " 'R',\n",
+ " 'R',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█']"
]
},
"metadata": {},
@@ -11887,7 +16638,7 @@
{
"data": {
"text/html": [
- "Player 0 with rack QNV makes Play(start=39, dir=1, letters='ON', rack='QV') for 6 points; draws: QV; scores: [321, 390]"
+ "Player 0 with rack LCUEIGD makes Play(start=110, dir=1, letters='ZIG', rack='LCUED') for 17 points ; draws: LCUEDEA; scores: [297, 294]"
],
"text/plain": [
""
@@ -11899,298 +16650,523 @@
{
"data": {
"text/html": [
- " | | | A1 | V4 | o | W4 | E1 | R1 | | | TW | | | | | | DL | | O1 | N1 | | | | DW | K5 | | DL | | G2 | | DL | | | L1 | | | | | | H4 | I1 | | DL | R1 | TW | | | TL | U1 | | | DW | | | I1 | N1 | | | E1 | | | DL | | T1 | | DL | | DL | | | C3 | DL | | A1 | | DW | | | I1 | TL | | | | C3 | A1 | I1 | R1 | D2 | S1 | TL | | | I1 | N1 | | | | | | DL | D2 | | | E1 | | J8 | | O1 | | | | B3 | U1 | T1 | T1 | E1 | | | | H4 | E1 | | D2 | DL | | | I1 | | | DL | N1 | | | TL | E1 | L1 | | I1 | | T1 | | O1 | | F4 | E1 | T1 | U1 | S1 | | | L1 | DL | Z10 | | A1 | DL | M3 | DL | | | | DL | | | G2 | Y4 | R1 | E1 | N1 | E1 | | E1 | O1 | L1 | O1 | P3 | I1 | l | E1 | | DL | | R1 | DL | N1 | | | F4 | A1 | X8 | | | DL | | M3 | O1 | B3 | S1 | | I1 | | | | T1 | O1 | A1 | D2 | Y4 | | | | | TW | | A1 | G2 | A1 | P3 | E1 | | S1 | O1 | A1 | R1 | "
+ " | | | TW | | | TL | | TL | | | TW | | | | | | DL | | | DW | | | | DW | | | DL | | | | DL | | | DL | | | | | | DL | | | DL | B3 | TW | | | TL | | | | G2 | | | | Q10 | | | R1 | | | DL | | | | DL | A1 | DL | | | U1 | DL | | O1 | | DW | | | | TL | | Z10 | I1 | G2 | | E1 | | O1 | M3 | TL | | | | DL | | | E1 | | | DL | L1 | | N1 | O1 | | | | DW | | | | B3 | O1 | O1 | D2 | L1 | E1 | S1 | | TL | | | | DL | V4 | | O1 | | U1 | DL | S1 | N1 | E1 | D2 | | DW | | D2 | | I1 | | | | I1 | | | | T1 | A1 | | | N1 | E1 | A1 | T1 | N1 | E1 | s | S1 | | | DL | | W4 | U1 | V4 | E1 | A1 | | I1 | | L1 | O1 | T1 | A1 | H4 | | | K5 | | DL | | R1 | DL | A1 | | | P3 | I1 | X8 | I1 | E1 | DL | | | | DL | T1 | | T1 | I1 | | | t | | | DL | | | | | | H4 | | E1 | F4 | | Y4 | I1 | R1 | R1 | | | | "
],
"text/plain": [
- "['#',\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",
- " 'A',\n",
- " 'V',\n",
- " 'o',\n",
- " 'W',\n",
- " 'E',\n",
- " 'R',\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",
- " 'O',\n",
- " 'N',\n",
" '.',\n",
- " '.',\n",
- " '.',\n",
- " '-',\n",
- " 'K',\n",
+ " '█',\n",
+ " '█',\n",
" '.',\n",
" ':',\n",
" '.',\n",
+ " '.',\n",
+ " ':',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " ':',\n",
+ " '.',\n",
+ " '.',\n",
+ " ':',\n",
+ " 'B',\n",
+ " '█',\n",
+ " '█',\n",
+ " '≡',\n",
+ " '.',\n",
+ " '.',\n",
+ " '∴',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
" 'G',\n",
- " '#',\n",
- " '#',\n",
- " '.',\n",
- " ':',\n",
- " '.',\n",
- " '.',\n",
- " 'L',\n",
" '.',\n",
" '.',\n",
" '.',\n",
+ " 'Q',\n",
" '.',\n",
" '.',\n",
- " 'H',\n",
- " 'I',\n",
- " '.',\n",
- " ':',\n",
" 'R',\n",
- " '#',\n",
- " '#',\n",
+ " '█',\n",
+ " '█',\n",
+ " '.',\n",
+ " '.',\n",
+ " ':',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " ':',\n",
+ " 'A',\n",
+ " ':',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'U',\n",
+ " ':',\n",
+ " '.',\n",
+ " 'O',\n",
+ " '█',\n",
+ " '█',\n",
+ " '.',\n",
" '=',\n",
" '.',\n",
" '.',\n",
- " ';',\n",
- " 'U',\n",
" '.',\n",
+ " '∴',\n",
" '.',\n",
- " '-',\n",
- " '.',\n",
- " '.',\n",
- " 'I',\n",
- " 'N',\n",
- " '.',\n",
- " '.',\n",
- " 'E',\n",
- " '#',\n",
- " '#',\n",
- " '.',\n",
- " '.',\n",
- " ':',\n",
- " '.',\n",
- " 'T',\n",
- " '.',\n",
- " ':',\n",
- " '.',\n",
- " ':',\n",
- " '.',\n",
- " '.',\n",
- " 'C',\n",
- " ':',\n",
- " '.',\n",
- " 'A',\n",
- " '#',\n",
- " '#',\n",
- " '.',\n",
- " '-',\n",
- " '.',\n",
- " '.',\n",
- " 'I',\n",
- " ';',\n",
- " '.',\n",
- " '.',\n",
- " '.',\n",
- " 'C',\n",
- " 'A',\n",
- " 'I',\n",
- " 'R',\n",
- " 'D',\n",
- " 'S',\n",
- " '#',\n",
- " '#',\n",
- " ';',\n",
- " '.',\n",
- " '.',\n",
- " 'I',\n",
- " 'N',\n",
- " '.',\n",
- " '.',\n",
- " '.',\n",
- " '.',\n",
- " '.',\n",
- " ':',\n",
- " 'D',\n",
- " '.',\n",
- " '.',\n",
- " 'E',\n",
- " '#',\n",
- " '#',\n",
- " '.',\n",
- " 'J',\n",
- " '.',\n",
- " 'O',\n",
- " '.',\n",
- " '.',\n",
- " '.',\n",
- " 'B',\n",
- " 'U',\n",
- " 'T',\n",
- " 'T',\n",
- " 'E',\n",
- " '.',\n",
- " '.',\n",
- " '.',\n",
- " '#',\n",
- " '#',\n",
- " 'H',\n",
- " 'E',\n",
- " '.',\n",
- " 'D',\n",
- " ':',\n",
- " '.',\n",
- " '.',\n",
- " 'I',\n",
- " '.',\n",
- " '.',\n",
- " ':',\n",
- " 'N',\n",
- " '.',\n",
- " '.',\n",
- " ';',\n",
- " '#',\n",
- " '#',\n",
- " 'E',\n",
- " 'L',\n",
- " '.',\n",
- " 'I',\n",
- " '.',\n",
- " 'T',\n",
- " '.',\n",
- " 'O',\n",
- " '.',\n",
- " 'F',\n",
- " 'E',\n",
- " 'T',\n",
- " 'U',\n",
- " 'S',\n",
- " '.',\n",
- " '#',\n",
- " '#',\n",
- " '.',\n",
- " 'L',\n",
- " ':',\n",
" 'Z',\n",
- " '.',\n",
- " 'A',\n",
- " ':',\n",
- " 'M',\n",
- " ':',\n",
- " '.',\n",
- " '.',\n",
- " '.',\n",
- " ':',\n",
- " '.',\n",
- " '.',\n",
- " '#',\n",
- " '#',\n",
- " 'G',\n",
- " 'Y',\n",
- " 'R',\n",
- " 'E',\n",
- " 'N',\n",
- " 'E',\n",
- " '.',\n",
- " 'E',\n",
- " 'O',\n",
- " 'L',\n",
- " 'O',\n",
- " 'P',\n",
" 'I',\n",
- " 'l',\n",
+ " 'G',\n",
+ " '.',\n",
" 'E',\n",
- " '#',\n",
- " '#',\n",
" '.',\n",
- " ':',\n",
- " '.',\n",
- " 'R',\n",
- " ':',\n",
- " 'N',\n",
- " '.',\n",
- " '.',\n",
- " 'F',\n",
- " 'A',\n",
- " 'X',\n",
- " '.',\n",
- " '.',\n",
- " ':',\n",
- " '.',\n",
- " '#',\n",
- " '#',\n",
- " 'M',\n",
" 'O',\n",
+ " 'M',\n",
+ " '█',\n",
+ " '█',\n",
+ " '∴',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " ':',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'E',\n",
+ " '.',\n",
+ " '.',\n",
+ " ':',\n",
+ " 'L',\n",
+ " '.',\n",
+ " 'N',\n",
+ " 'O',\n",
+ " '█',\n",
+ " '█',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '=',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
" 'B',\n",
+ " 'O',\n",
+ " 'O',\n",
+ " 'D',\n",
+ " 'L',\n",
+ " 'E',\n",
" 'S',\n",
" '.',\n",
+ " '█',\n",
+ " '█',\n",
+ " '∴',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " ':',\n",
+ " 'V',\n",
+ " '.',\n",
+ " 'O',\n",
+ " '.',\n",
+ " 'U',\n",
+ " ':',\n",
+ " 'S',\n",
+ " 'N',\n",
+ " 'E',\n",
+ " 'D',\n",
+ " '█',\n",
+ " '█',\n",
+ " '.',\n",
+ " '=',\n",
+ " '.',\n",
+ " 'D',\n",
+ " '.',\n",
+ " 'I',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
" 'I',\n",
" '.',\n",
" '.',\n",
" '.',\n",
" 'T',\n",
- " 'O',\n",
" 'A',\n",
- " 'D',\n",
- " 'Y',\n",
- " '.',\n",
- " '#',\n",
- " '#',\n",
+ " '█',\n",
+ " '█',\n",
" '.',\n",
" '.',\n",
- " '.',\n",
- " '=',\n",
- " '.',\n",
- " 'A',\n",
- " 'G',\n",
- " 'A',\n",
- " 'P',\n",
+ " 'N',\n",
" 'E',\n",
- " '.',\n",
- " 'S',\n",
- " 'O',\n",
" 'A',\n",
+ " 'T',\n",
+ " 'N',\n",
+ " 'E',\n",
+ " 's',\n",
+ " 'S',\n",
+ " '.',\n",
+ " '.',\n",
+ " ':',\n",
+ " '.',\n",
+ " 'W',\n",
+ " '█',\n",
+ " '█',\n",
+ " 'U',\n",
+ " 'V',\n",
+ " 'E',\n",
+ " 'A',\n",
+ " '.',\n",
+ " 'I',\n",
+ " '.',\n",
+ " 'L',\n",
+ " 'O',\n",
+ " 'T',\n",
+ " 'A',\n",
+ " 'H',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'K',\n",
+ " '█',\n",
+ " '█',\n",
+ " '.',\n",
+ " ':',\n",
+ " '.',\n",
" 'R',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#']"
+ " ':',\n",
+ " 'A',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'P',\n",
+ " 'I',\n",
+ " 'X',\n",
+ " 'I',\n",
+ " 'E',\n",
+ " ':',\n",
+ " '.',\n",
+ " '█',\n",
+ " '█',\n",
+ " '.',\n",
+ " '.',\n",
+ " ':',\n",
+ " 'T',\n",
+ " '.',\n",
+ " 'T',\n",
+ " 'I',\n",
+ " '.',\n",
+ " '.',\n",
+ " 't',\n",
+ " '.',\n",
+ " '.',\n",
+ " ':',\n",
+ " '.',\n",
+ " '.',\n",
+ " '█',\n",
+ " '█',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'H',\n",
+ " '.',\n",
+ " 'E',\n",
+ " 'F',\n",
+ " '.',\n",
+ " 'Y',\n",
+ " 'I',\n",
+ " 'R',\n",
+ " 'R',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█']"
]
},
"metadata": {},
@@ -12199,7 +17175,7 @@
{
"data": {
"text/html": [
- "Player 1 with rack UW makes Play(start=38, dir=1, letters='WON', rack='U') for 11 points; draws: U; scores: [321, 401]"
+ "Player 1 with rack IMGRORY makes Play(start=92, dir=1, letters='YAM', rack='IGROR') for 22 points ; draws: IGRORNJ; scores: [297, 316]"
],
"text/plain": [
""
@@ -12211,298 +17187,523 @@
{
"data": {
"text/html": [
- " | | | A1 | V4 | o | W4 | E1 | R1 | | | TW | | | | | | DL | W4 | O1 | N1 | | | | DW | K5 | | DL | | G2 | | DL | | | L1 | | | | | | H4 | I1 | | DL | R1 | TW | | | TL | U1 | | | DW | | | I1 | N1 | | | E1 | | | DL | | T1 | | DL | | DL | | | C3 | DL | | A1 | | DW | | | I1 | TL | | | | C3 | A1 | I1 | R1 | D2 | S1 | TL | | | I1 | N1 | | | | | | DL | D2 | | | E1 | | J8 | | O1 | | | | B3 | U1 | T1 | T1 | E1 | | | | H4 | E1 | | D2 | DL | | | I1 | | | DL | N1 | | | TL | E1 | L1 | | I1 | | T1 | | O1 | | F4 | E1 | T1 | U1 | S1 | | | L1 | DL | Z10 | | A1 | DL | M3 | DL | | | | DL | | | G2 | Y4 | R1 | E1 | N1 | E1 | | E1 | O1 | L1 | O1 | P3 | I1 | l | E1 | | DL | | R1 | DL | N1 | | | F4 | A1 | X8 | | | DL | | M3 | O1 | B3 | S1 | | I1 | | | | T1 | O1 | A1 | D2 | Y4 | | | | | TW | | A1 | G2 | A1 | P3 | E1 | | S1 | O1 | A1 | R1 | "
+ " | | | TW | | | TL | | TL | | | TW | | | | | | DL | | | DW | | | | DW | | | DL | | | | DL | | | DL | | | | | | DL | | | DL | B3 | TW | | | TL | | | | G2 | | | | Q10 | | | R1 | | | DL | | | | Y4 | A1 | M3 | | | U1 | DL | | O1 | | DW | | | | TL | | Z10 | I1 | G2 | | E1 | | O1 | M3 | TL | | | | DL | | | E1 | | | DL | L1 | | N1 | O1 | | | | DW | | | | B3 | O1 | O1 | D2 | L1 | E1 | S1 | | TL | | | | DL | V4 | | O1 | | U1 | DL | S1 | N1 | E1 | D2 | | DW | | D2 | | I1 | | | | I1 | | | | T1 | A1 | | | N1 | E1 | A1 | T1 | N1 | E1 | s | S1 | | | DL | | W4 | U1 | V4 | E1 | A1 | | I1 | | L1 | O1 | T1 | A1 | H4 | | | K5 | | DL | | R1 | DL | A1 | | | P3 | I1 | X8 | I1 | E1 | DL | | | | DL | T1 | | T1 | I1 | | | t | | | DL | | | | | | H4 | | E1 | F4 | | Y4 | I1 | R1 | R1 | | | | "
],
"text/plain": [
- "['#',\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",
- " 'A',\n",
- " 'V',\n",
- " 'o',\n",
- " 'W',\n",
- " 'E',\n",
- " 'R',\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",
- " 'W',\n",
- " 'O',\n",
- " 'N',\n",
" '.',\n",
" '.',\n",
- " '.',\n",
- " '-',\n",
- " 'K',\n",
+ " '█',\n",
+ " '█',\n",
" '.',\n",
" ':',\n",
" '.',\n",
+ " '.',\n",
+ " ':',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " ':',\n",
+ " '.',\n",
+ " '.',\n",
+ " ':',\n",
+ " 'B',\n",
+ " '█',\n",
+ " '█',\n",
+ " '≡',\n",
+ " '.',\n",
+ " '.',\n",
+ " '∴',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
" 'G',\n",
- " '#',\n",
- " '#',\n",
- " '.',\n",
- " ':',\n",
- " '.',\n",
- " '.',\n",
- " 'L',\n",
" '.',\n",
" '.',\n",
" '.',\n",
+ " 'Q',\n",
" '.',\n",
" '.',\n",
- " 'H',\n",
- " 'I',\n",
- " '.',\n",
- " ':',\n",
" 'R',\n",
- " '#',\n",
- " '#',\n",
+ " '█',\n",
+ " '█',\n",
+ " '.',\n",
+ " '.',\n",
+ " ':',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'Y',\n",
+ " 'A',\n",
+ " 'M',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'U',\n",
+ " ':',\n",
+ " '.',\n",
+ " 'O',\n",
+ " '█',\n",
+ " '█',\n",
+ " '.',\n",
" '=',\n",
" '.',\n",
" '.',\n",
- " ';',\n",
- " 'U',\n",
" '.',\n",
+ " '∴',\n",
" '.',\n",
- " '-',\n",
- " '.',\n",
- " '.',\n",
- " 'I',\n",
- " 'N',\n",
- " '.',\n",
- " '.',\n",
- " 'E',\n",
- " '#',\n",
- " '#',\n",
- " '.',\n",
- " '.',\n",
- " ':',\n",
- " '.',\n",
- " 'T',\n",
- " '.',\n",
- " ':',\n",
- " '.',\n",
- " ':',\n",
- " '.',\n",
- " '.',\n",
- " 'C',\n",
- " ':',\n",
- " '.',\n",
- " 'A',\n",
- " '#',\n",
- " '#',\n",
- " '.',\n",
- " '-',\n",
- " '.',\n",
- " '.',\n",
- " 'I',\n",
- " ';',\n",
- " '.',\n",
- " '.',\n",
- " '.',\n",
- " 'C',\n",
- " 'A',\n",
- " 'I',\n",
- " 'R',\n",
- " 'D',\n",
- " 'S',\n",
- " '#',\n",
- " '#',\n",
- " ';',\n",
- " '.',\n",
- " '.',\n",
- " 'I',\n",
- " 'N',\n",
- " '.',\n",
- " '.',\n",
- " '.',\n",
- " '.',\n",
- " '.',\n",
- " ':',\n",
- " 'D',\n",
- " '.',\n",
- " '.',\n",
- " 'E',\n",
- " '#',\n",
- " '#',\n",
- " '.',\n",
- " 'J',\n",
- " '.',\n",
- " 'O',\n",
- " '.',\n",
- " '.',\n",
- " '.',\n",
- " 'B',\n",
- " 'U',\n",
- " 'T',\n",
- " 'T',\n",
- " 'E',\n",
- " '.',\n",
- " '.',\n",
- " '.',\n",
- " '#',\n",
- " '#',\n",
- " 'H',\n",
- " 'E',\n",
- " '.',\n",
- " 'D',\n",
- " ':',\n",
- " '.',\n",
- " '.',\n",
- " 'I',\n",
- " '.',\n",
- " '.',\n",
- " ':',\n",
- " 'N',\n",
- " '.',\n",
- " '.',\n",
- " ';',\n",
- " '#',\n",
- " '#',\n",
- " 'E',\n",
- " 'L',\n",
- " '.',\n",
- " 'I',\n",
- " '.',\n",
- " 'T',\n",
- " '.',\n",
- " 'O',\n",
- " '.',\n",
- " 'F',\n",
- " 'E',\n",
- " 'T',\n",
- " 'U',\n",
- " 'S',\n",
- " '.',\n",
- " '#',\n",
- " '#',\n",
- " '.',\n",
- " 'L',\n",
- " ':',\n",
" 'Z',\n",
- " '.',\n",
- " 'A',\n",
- " ':',\n",
- " 'M',\n",
- " ':',\n",
- " '.',\n",
- " '.',\n",
- " '.',\n",
- " ':',\n",
- " '.',\n",
- " '.',\n",
- " '#',\n",
- " '#',\n",
- " 'G',\n",
- " 'Y',\n",
- " 'R',\n",
- " 'E',\n",
- " 'N',\n",
- " 'E',\n",
- " '.',\n",
- " 'E',\n",
- " 'O',\n",
- " 'L',\n",
- " 'O',\n",
- " 'P',\n",
" 'I',\n",
- " 'l',\n",
+ " 'G',\n",
+ " '.',\n",
" 'E',\n",
- " '#',\n",
- " '#',\n",
" '.',\n",
- " ':',\n",
- " '.',\n",
- " 'R',\n",
- " ':',\n",
- " 'N',\n",
- " '.',\n",
- " '.',\n",
- " 'F',\n",
- " 'A',\n",
- " 'X',\n",
- " '.',\n",
- " '.',\n",
- " ':',\n",
- " '.',\n",
- " '#',\n",
- " '#',\n",
- " 'M',\n",
" 'O',\n",
+ " 'M',\n",
+ " '█',\n",
+ " '█',\n",
+ " '∴',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " ':',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'E',\n",
+ " '.',\n",
+ " '.',\n",
+ " ':',\n",
+ " 'L',\n",
+ " '.',\n",
+ " 'N',\n",
+ " 'O',\n",
+ " '█',\n",
+ " '█',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '=',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
" 'B',\n",
+ " 'O',\n",
+ " 'O',\n",
+ " 'D',\n",
+ " 'L',\n",
+ " 'E',\n",
" 'S',\n",
" '.',\n",
+ " '█',\n",
+ " '█',\n",
+ " '∴',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " ':',\n",
+ " 'V',\n",
+ " '.',\n",
+ " 'O',\n",
+ " '.',\n",
+ " 'U',\n",
+ " ':',\n",
+ " 'S',\n",
+ " 'N',\n",
+ " 'E',\n",
+ " 'D',\n",
+ " '█',\n",
+ " '█',\n",
+ " '.',\n",
+ " '=',\n",
+ " '.',\n",
+ " 'D',\n",
+ " '.',\n",
+ " 'I',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
" 'I',\n",
" '.',\n",
" '.',\n",
" '.',\n",
" 'T',\n",
- " 'O',\n",
" 'A',\n",
- " 'D',\n",
- " 'Y',\n",
- " '.',\n",
- " '#',\n",
- " '#',\n",
+ " '█',\n",
+ " '█',\n",
" '.',\n",
" '.',\n",
- " '.',\n",
- " '=',\n",
- " '.',\n",
- " 'A',\n",
- " 'G',\n",
- " 'A',\n",
- " 'P',\n",
+ " 'N',\n",
" 'E',\n",
- " '.',\n",
- " 'S',\n",
- " 'O',\n",
" 'A',\n",
+ " 'T',\n",
+ " 'N',\n",
+ " 'E',\n",
+ " 's',\n",
+ " 'S',\n",
+ " '.',\n",
+ " '.',\n",
+ " ':',\n",
+ " '.',\n",
+ " 'W',\n",
+ " '█',\n",
+ " '█',\n",
+ " 'U',\n",
+ " 'V',\n",
+ " 'E',\n",
+ " 'A',\n",
+ " '.',\n",
+ " 'I',\n",
+ " '.',\n",
+ " 'L',\n",
+ " 'O',\n",
+ " 'T',\n",
+ " 'A',\n",
+ " 'H',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'K',\n",
+ " '█',\n",
+ " '█',\n",
+ " '.',\n",
+ " ':',\n",
+ " '.',\n",
" 'R',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#']"
+ " ':',\n",
+ " 'A',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'P',\n",
+ " 'I',\n",
+ " 'X',\n",
+ " 'I',\n",
+ " 'E',\n",
+ " ':',\n",
+ " '.',\n",
+ " '█',\n",
+ " '█',\n",
+ " '.',\n",
+ " '.',\n",
+ " ':',\n",
+ " 'T',\n",
+ " '.',\n",
+ " 'T',\n",
+ " 'I',\n",
+ " '.',\n",
+ " '.',\n",
+ " 't',\n",
+ " '.',\n",
+ " '.',\n",
+ " ':',\n",
+ " '.',\n",
+ " '.',\n",
+ " '█',\n",
+ " '█',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'H',\n",
+ " '.',\n",
+ " 'E',\n",
+ " 'F',\n",
+ " '.',\n",
+ " 'Y',\n",
+ " 'I',\n",
+ " 'R',\n",
+ " 'R',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█']"
]
},
"metadata": {},
@@ -12511,7 +17712,7 @@
{
"data": {
"text/html": [
- "Player 0 with rack QV makes Play(start=0, dir=1, letters='', rack='QV') for 0 points; draws: QV; scores: [321, 401]"
+ "Player 0 with rack LCUEDEA makes Play(start=24, dir=17, letters='DECAY', rack='LUE') for 18 points ; draws: LUETSAW; scores: [315, 316]"
],
"text/plain": [
""
@@ -12523,298 +17724,523 @@
{
"data": {
"text/html": [
- " | | | A1 | V4 | o | W4 | E1 | R1 | | | TW | | | | | | DL | W4 | O1 | N1 | | | | DW | K5 | | DL | | G2 | | DL | | | L1 | | | | | | H4 | I1 | | DL | R1 | TW | | | TL | U1 | | | DW | | | I1 | N1 | | | E1 | | | DL | | T1 | | DL | | DL | | | C3 | DL | | A1 | | DW | | | I1 | TL | | | | C3 | A1 | I1 | R1 | D2 | S1 | TL | | | I1 | N1 | | | | | | DL | D2 | | | E1 | | J8 | | O1 | | | | B3 | U1 | T1 | T1 | E1 | | | | H4 | E1 | | D2 | DL | | | I1 | | | DL | N1 | | | TL | E1 | L1 | | I1 | | T1 | | O1 | | F4 | E1 | T1 | U1 | S1 | | | L1 | DL | Z10 | | A1 | DL | M3 | DL | | | | DL | | | G2 | Y4 | R1 | E1 | N1 | E1 | | E1 | O1 | L1 | O1 | P3 | I1 | l | E1 | | DL | | R1 | DL | N1 | | | F4 | A1 | X8 | | | DL | | M3 | O1 | B3 | S1 | | I1 | | | | T1 | O1 | A1 | D2 | Y4 | | | | | TW | | A1 | G2 | A1 | P3 | E1 | | S1 | O1 | A1 | R1 | "
+ " | | | TW | | | D2 | | TL | | | TW | | | | | | DL | | | DW | E1 | | | DW | | | DL | | | | DL | | | DL | | C3 | | | | DL | | | DL | B3 | TW | | | TL | | | A1 | G2 | | | | Q10 | | | R1 | | | DL | | | | Y4 | A1 | M3 | | | U1 | DL | | O1 | | DW | | | | TL | | Z10 | I1 | G2 | | E1 | | O1 | M3 | TL | | | | DL | | | E1 | | | DL | L1 | | N1 | O1 | | | | DW | | | | B3 | O1 | O1 | D2 | L1 | E1 | S1 | | TL | | | | DL | V4 | | O1 | | U1 | DL | S1 | N1 | E1 | D2 | | DW | | D2 | | I1 | | | | I1 | | | | T1 | A1 | | | N1 | E1 | A1 | T1 | N1 | E1 | s | S1 | | | DL | | W4 | U1 | V4 | E1 | A1 | | I1 | | L1 | O1 | T1 | A1 | H4 | | | K5 | | DL | | R1 | DL | A1 | | | P3 | I1 | X8 | I1 | E1 | DL | | | | DL | T1 | | T1 | I1 | | | t | | | DL | | | | | | H4 | | E1 | F4 | | Y4 | I1 | R1 | R1 | | | | "
],
"text/plain": [
- "['#',\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",
- " 'A',\n",
- " 'V',\n",
- " 'o',\n",
- " 'W',\n",
+ " '≡',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'D',\n",
+ " '.',\n",
+ " '∴',\n",
+ " '.',\n",
+ " '.',\n",
+ " '≡',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '█',\n",
+ " '█',\n",
+ " '.',\n",
+ " '.',\n",
+ " ':',\n",
+ " '.',\n",
+ " '.',\n",
+ " '=',\n",
" 'E',\n",
- " 'R',\n",
" '.',\n",
" '.',\n",
" '=',\n",
" '.',\n",
" '.',\n",
- " '.',\n",
- " '#',\n",
- " '#',\n",
- " '.',\n",
- " '.',\n",
- " ':',\n",
- " 'W',\n",
- " 'O',\n",
- " 'N',\n",
- " '.',\n",
- " '.',\n",
- " '.',\n",
- " '-',\n",
- " 'K',\n",
- " '.',\n",
" ':',\n",
" '.',\n",
- " 'G',\n",
- " '#',\n",
- " '#',\n",
+ " '.',\n",
+ " '█',\n",
+ " '█',\n",
" '.',\n",
" ':',\n",
" '.',\n",
" '.',\n",
- " 'L',\n",
- " '.',\n",
- " '.',\n",
- " '.',\n",
- " '.',\n",
- " '.',\n",
- " 'H',\n",
- " 'I',\n",
- " '.',\n",
" ':',\n",
- " 'R',\n",
- " '#',\n",
- " '#',\n",
- " '=',\n",
- " '.',\n",
- " '.',\n",
- " ';',\n",
- " 'U',\n",
- " '.',\n",
- " '.',\n",
- " '-',\n",
- " '.',\n",
- " '.',\n",
- " 'I',\n",
- " 'N',\n",
- " '.',\n",
- " '.',\n",
- " 'E',\n",
- " '#',\n",
- " '#',\n",
- " '.',\n",
- " '.',\n",
- " ':',\n",
- " '.',\n",
- " 'T',\n",
- " '.',\n",
- " ':',\n",
- " '.',\n",
- " ':',\n",
- " '.',\n",
" '.',\n",
" 'C',\n",
- " ':',\n",
- " '.',\n",
- " 'A',\n",
- " '#',\n",
- " '#',\n",
- " '.',\n",
- " '-',\n",
- " '.',\n",
- " '.',\n",
- " 'I',\n",
- " ';',\n",
- " '.',\n",
- " '.',\n",
- " '.',\n",
- " 'C',\n",
- " 'A',\n",
- " 'I',\n",
- " 'R',\n",
- " 'D',\n",
- " 'S',\n",
- " '#',\n",
- " '#',\n",
- " ';',\n",
- " '.',\n",
- " '.',\n",
- " 'I',\n",
- " 'N',\n",
- " '.',\n",
- " '.',\n",
" '.',\n",
" '.',\n",
" '.',\n",
" ':',\n",
- " 'D',\n",
- " '.',\n",
- " '.',\n",
- " 'E',\n",
- " '#',\n",
- " '#',\n",
- " '.',\n",
- " 'J',\n",
- " '.',\n",
- " 'O',\n",
- " '.',\n",
" '.',\n",
" '.',\n",
+ " ':',\n",
" 'B',\n",
+ " '█',\n",
+ " '█',\n",
+ " '≡',\n",
+ " '.',\n",
+ " '.',\n",
+ " '∴',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'A',\n",
+ " 'G',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'Q',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'R',\n",
+ " '█',\n",
+ " '█',\n",
+ " '.',\n",
+ " '.',\n",
+ " ':',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'Y',\n",
+ " 'A',\n",
+ " 'M',\n",
+ " '.',\n",
+ " '.',\n",
" 'U',\n",
- " 'T',\n",
- " 'T',\n",
- " 'E',\n",
- " '.',\n",
- " '.',\n",
- " '.',\n",
- " '#',\n",
- " '#',\n",
- " 'H',\n",
- " 'E',\n",
- " '.',\n",
- " 'D',\n",
" ':',\n",
" '.',\n",
- " '.',\n",
- " 'I',\n",
- " '.',\n",
- " '.',\n",
- " ':',\n",
- " 'N',\n",
- " '.',\n",
- " '.',\n",
- " ';',\n",
- " '#',\n",
- " '#',\n",
- " 'E',\n",
- " 'L',\n",
- " '.',\n",
- " 'I',\n",
- " '.',\n",
- " 'T',\n",
- " '.',\n",
" 'O',\n",
+ " '█',\n",
+ " '█',\n",
" '.',\n",
- " 'F',\n",
- " 'E',\n",
- " 'T',\n",
- " 'U',\n",
- " 'S',\n",
+ " '=',\n",
" '.',\n",
- " '#',\n",
- " '#',\n",
" '.',\n",
- " 'L',\n",
- " ':',\n",
+ " '.',\n",
+ " '∴',\n",
+ " '.',\n",
" 'Z',\n",
- " '.',\n",
- " 'A',\n",
- " ':',\n",
- " 'M',\n",
- " ':',\n",
- " '.',\n",
- " '.',\n",
- " '.',\n",
- " ':',\n",
- " '.',\n",
- " '.',\n",
- " '#',\n",
- " '#',\n",
- " 'G',\n",
- " 'Y',\n",
- " 'R',\n",
- " 'E',\n",
- " 'N',\n",
- " 'E',\n",
- " '.',\n",
- " 'E',\n",
- " 'O',\n",
- " 'L',\n",
- " 'O',\n",
- " 'P',\n",
" 'I',\n",
- " 'l',\n",
+ " 'G',\n",
+ " '.',\n",
" 'E',\n",
- " '#',\n",
- " '#',\n",
" '.',\n",
- " ':',\n",
- " '.',\n",
- " 'R',\n",
- " ':',\n",
- " 'N',\n",
- " '.',\n",
- " '.',\n",
- " 'F',\n",
- " 'A',\n",
- " 'X',\n",
- " '.',\n",
- " '.',\n",
- " ':',\n",
- " '.',\n",
- " '#',\n",
- " '#',\n",
- " 'M',\n",
" 'O',\n",
+ " 'M',\n",
+ " '█',\n",
+ " '█',\n",
+ " '∴',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " ':',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'E',\n",
+ " '.',\n",
+ " '.',\n",
+ " ':',\n",
+ " 'L',\n",
+ " '.',\n",
+ " 'N',\n",
+ " 'O',\n",
+ " '█',\n",
+ " '█',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '=',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
" 'B',\n",
+ " 'O',\n",
+ " 'O',\n",
+ " 'D',\n",
+ " 'L',\n",
+ " 'E',\n",
" 'S',\n",
" '.',\n",
+ " '█',\n",
+ " '█',\n",
+ " '∴',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " ':',\n",
+ " 'V',\n",
+ " '.',\n",
+ " 'O',\n",
+ " '.',\n",
+ " 'U',\n",
+ " ':',\n",
+ " 'S',\n",
+ " 'N',\n",
+ " 'E',\n",
+ " 'D',\n",
+ " '█',\n",
+ " '█',\n",
+ " '.',\n",
+ " '=',\n",
+ " '.',\n",
+ " 'D',\n",
+ " '.',\n",
+ " 'I',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
" 'I',\n",
" '.',\n",
" '.',\n",
" '.',\n",
" 'T',\n",
- " 'O',\n",
" 'A',\n",
- " 'D',\n",
- " 'Y',\n",
- " '.',\n",
- " '#',\n",
- " '#',\n",
+ " '█',\n",
+ " '█',\n",
" '.',\n",
" '.',\n",
- " '.',\n",
- " '=',\n",
- " '.',\n",
- " 'A',\n",
- " 'G',\n",
- " 'A',\n",
- " 'P',\n",
+ " 'N',\n",
" 'E',\n",
- " '.',\n",
- " 'S',\n",
- " 'O',\n",
" 'A',\n",
+ " 'T',\n",
+ " 'N',\n",
+ " 'E',\n",
+ " 's',\n",
+ " 'S',\n",
+ " '.',\n",
+ " '.',\n",
+ " ':',\n",
+ " '.',\n",
+ " 'W',\n",
+ " '█',\n",
+ " '█',\n",
+ " 'U',\n",
+ " 'V',\n",
+ " 'E',\n",
+ " 'A',\n",
+ " '.',\n",
+ " 'I',\n",
+ " '.',\n",
+ " 'L',\n",
+ " 'O',\n",
+ " 'T',\n",
+ " 'A',\n",
+ " 'H',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'K',\n",
+ " '█',\n",
+ " '█',\n",
+ " '.',\n",
+ " ':',\n",
+ " '.',\n",
" 'R',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#']"
+ " ':',\n",
+ " 'A',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'P',\n",
+ " 'I',\n",
+ " 'X',\n",
+ " 'I',\n",
+ " 'E',\n",
+ " ':',\n",
+ " '.',\n",
+ " '█',\n",
+ " '█',\n",
+ " '.',\n",
+ " '.',\n",
+ " ':',\n",
+ " 'T',\n",
+ " '.',\n",
+ " 'T',\n",
+ " 'I',\n",
+ " '.',\n",
+ " '.',\n",
+ " 't',\n",
+ " '.',\n",
+ " '.',\n",
+ " ':',\n",
+ " '.',\n",
+ " '.',\n",
+ " '█',\n",
+ " '█',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'H',\n",
+ " '.',\n",
+ " 'E',\n",
+ " 'F',\n",
+ " '.',\n",
+ " 'Y',\n",
+ " 'I',\n",
+ " 'R',\n",
+ " 'R',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█']"
]
},
"metadata": {},
@@ -12823,7 +18249,7 @@
{
"data": {
"text/html": [
- "Player 1 with rack U makes Play(start=225, dir=1, letters='RUN', rack='') for 7 points; draws: ; scores: [321, 408]"
+ "Player 1 with rack IGRORNJ makes Play(start=40, dir=1, letters='REJOIN', rack='GR') for 52 points ; draws: GRNPFEC; scores: [315, 368]"
],
"text/plain": [
""
@@ -12835,298 +18261,4282 @@
{
"data": {
"text/html": [
- " | | | A1 | V4 | o | W4 | E1 | R1 | | | TW | | | | | | DL | W4 | O1 | N1 | | | | DW | K5 | | DL | | G2 | | DL | | | L1 | | | | | | H4 | I1 | | DL | R1 | TW | | | TL | U1 | | | DW | | | I1 | N1 | | | E1 | | | DL | | T1 | | DL | | DL | | | C3 | DL | | A1 | | DW | | | I1 | TL | | | | C3 | A1 | I1 | R1 | D2 | S1 | TL | | | I1 | N1 | | | | | | DL | D2 | | | E1 | | J8 | | O1 | | | | B3 | U1 | T1 | T1 | E1 | | | | H4 | E1 | | D2 | DL | | | I1 | | | DL | N1 | | | TL | E1 | L1 | | I1 | | T1 | | O1 | | F4 | E1 | T1 | U1 | S1 | | | L1 | DL | Z10 | | A1 | DL | M3 | DL | | | | DL | | | G2 | Y4 | R1 | E1 | N1 | E1 | | E1 | O1 | L1 | O1 | P3 | I1 | l | E1 | | DL | | R1 | U1 | N1 | | | F4 | A1 | X8 | | | DL | | M3 | O1 | B3 | S1 | | I1 | | | | T1 | O1 | A1 | D2 | Y4 | | | | | TW | | A1 | G2 | A1 | P3 | E1 | | S1 | O1 | A1 | R1 | "
+ " | | | TW | | | D2 | | TL | | | TW | | | | | | DL | | | R1 | E1 | J8 | O1 | I1 | N1 | | DL | | | | DL | | | DL | | C3 | | | | DL | | | DL | B3 | TW | | | TL | | | A1 | G2 | | | | Q10 | | | R1 | | | DL | | | | Y4 | A1 | M3 | | | U1 | DL | | O1 | | DW | | | | TL | | Z10 | I1 | G2 | | E1 | | O1 | M3 | TL | | | | DL | | | E1 | | | DL | L1 | | N1 | O1 | | | | DW | | | | B3 | O1 | O1 | D2 | L1 | E1 | S1 | | TL | | | | DL | V4 | | O1 | | U1 | DL | S1 | N1 | E1 | D2 | | DW | | D2 | | I1 | | | | I1 | | | | T1 | A1 | | | N1 | E1 | A1 | T1 | N1 | E1 | s | S1 | | | DL | | W4 | U1 | V4 | E1 | A1 | | I1 | | L1 | O1 | T1 | A1 | H4 | | | K5 | | DL | | R1 | DL | A1 | | | P3 | I1 | X8 | I1 | E1 | DL | | | | DL | T1 | | T1 | I1 | | | t | | | DL | | | | | | H4 | | E1 | F4 | | Y4 | I1 | R1 | R1 | | | | "
],
"text/plain": [
- "['#',\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",
- " 'A',\n",
- " 'V',\n",
- " 'o',\n",
- " 'W',\n",
- " 'E',\n",
- " 'R',\n",
+ " '≡',\n",
" '.',\n",
" '.',\n",
- " '=',\n",
- " '.',\n",
- " '.',\n",
- " '.',\n",
- " '#',\n",
- " '#',\n",
- " '.',\n",
- " '.',\n",
- " ':',\n",
- " 'W',\n",
- " 'O',\n",
- " 'N',\n",
- " '.',\n",
- " '.',\n",
- " '.',\n",
- " '-',\n",
- " 'K',\n",
- " '.',\n",
- " ':',\n",
- " '.',\n",
- " 'G',\n",
- " '#',\n",
- " '#',\n",
- " '.',\n",
- " ':',\n",
- " '.',\n",
- " '.',\n",
- " 'L',\n",
- " '.',\n",
- " '.',\n",
- " '.',\n",
- " '.',\n",
- " '.',\n",
- " 'H',\n",
- " 'I',\n",
- " '.',\n",
- " ':',\n",
- " 'R',\n",
- " '#',\n",
- " '#',\n",
- " '=',\n",
- " '.',\n",
- " '.',\n",
- " ';',\n",
- " 'U',\n",
- " '.',\n",
- " '.',\n",
- " '-',\n",
- " '.',\n",
- " '.',\n",
- " 'I',\n",
- " 'N',\n",
- " '.',\n",
- " '.',\n",
- " 'E',\n",
- " '#',\n",
- " '#',\n",
- " '.',\n",
- " '.',\n",
- " ':',\n",
- " '.',\n",
- " 'T',\n",
- " '.',\n",
- " ':',\n",
- " '.',\n",
- " ':',\n",
- " '.',\n",
- " '.',\n",
- " 'C',\n",
- " ':',\n",
- " '.',\n",
- " 'A',\n",
- " '#',\n",
- " '#',\n",
- " '.',\n",
- " '-',\n",
- " '.',\n",
- " '.',\n",
- " 'I',\n",
- " ';',\n",
- " '.',\n",
- " '.',\n",
- " '.',\n",
- " 'C',\n",
- " 'A',\n",
- " 'I',\n",
- " 'R',\n",
- " 'D',\n",
- " 'S',\n",
- " '#',\n",
- " '#',\n",
- " ';',\n",
- " '.',\n",
- " '.',\n",
- " 'I',\n",
- " 'N',\n",
- " '.',\n",
- " '.',\n",
- " '.',\n",
- " '.',\n",
- " '.',\n",
- " ':',\n",
" 'D',\n",
" '.',\n",
+ " '∴',\n",
" '.',\n",
+ " '.',\n",
+ " '≡',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '█',\n",
+ " '█',\n",
+ " '.',\n",
+ " '.',\n",
+ " ':',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'R',\n",
" 'E',\n",
- " '#',\n",
- " '#',\n",
- " '.',\n",
" 'J',\n",
- " '.',\n",
" 'O',\n",
- " '.',\n",
- " '.',\n",
- " '.',\n",
- " 'B',\n",
- " 'U',\n",
- " 'T',\n",
- " 'T',\n",
- " 'E',\n",
- " '.',\n",
- " '.',\n",
- " '.',\n",
- " '#',\n",
- " '#',\n",
- " 'H',\n",
- " 'E',\n",
- " '.',\n",
- " 'D',\n",
- " ':',\n",
- " '.',\n",
- " '.',\n",
" 'I',\n",
- " '.',\n",
- " '.',\n",
- " ':',\n",
" 'N',\n",
" '.',\n",
- " '.',\n",
- " ';',\n",
- " '#',\n",
- " '#',\n",
- " 'E',\n",
- " 'L',\n",
- " '.',\n",
- " 'I',\n",
- " '.',\n",
- " 'T',\n",
- " '.',\n",
- " 'O',\n",
- " '.',\n",
- " 'F',\n",
- " 'E',\n",
- " 'T',\n",
- " 'U',\n",
- " 'S',\n",
- " '.',\n",
- " '#',\n",
- " '#',\n",
- " '.',\n",
- " 'L',\n",
" ':',\n",
- " 'Z',\n",
+ " '.',\n",
+ " '.',\n",
+ " '█',\n",
+ " '█',\n",
+ " '.',\n",
+ " ':',\n",
+ " '.',\n",
+ " '.',\n",
+ " ':',\n",
+ " '.',\n",
+ " 'C',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " ':',\n",
+ " '.',\n",
+ " '.',\n",
+ " ':',\n",
+ " 'B',\n",
+ " '█',\n",
+ " '█',\n",
+ " '≡',\n",
+ " '.',\n",
+ " '.',\n",
+ " '∴',\n",
+ " '.',\n",
" '.',\n",
" 'A',\n",
- " ':',\n",
- " 'M',\n",
- " ':',\n",
- " '.',\n",
- " '.',\n",
- " '.',\n",
- " ':',\n",
- " '.',\n",
- " '.',\n",
- " '#',\n",
- " '#',\n",
" 'G',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'Q',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'R',\n",
+ " '█',\n",
+ " '█',\n",
+ " '.',\n",
+ " '.',\n",
+ " ':',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
" 'Y',\n",
- " 'R',\n",
- " 'E',\n",
- " 'N',\n",
- " 'E',\n",
- " '.',\n",
- " 'E',\n",
- " 'O',\n",
- " 'L',\n",
- " 'O',\n",
- " 'P',\n",
- " 'I',\n",
- " 'l',\n",
- " 'E',\n",
- " '#',\n",
- " '#',\n",
- " '.',\n",
- " ':',\n",
- " '.',\n",
- " 'R',\n",
- " 'U',\n",
- " 'N',\n",
- " '.',\n",
- " '.',\n",
- " 'F',\n",
" 'A',\n",
- " 'X',\n",
- " '.',\n",
- " '.',\n",
- " ':',\n",
- " '.',\n",
- " '#',\n",
- " '#',\n",
" 'M',\n",
- " 'O',\n",
- " 'B',\n",
- " 'S',\n",
" '.',\n",
+ " '.',\n",
+ " 'U',\n",
+ " ':',\n",
+ " '.',\n",
+ " 'O',\n",
+ " '█',\n",
+ " '█',\n",
+ " '.',\n",
+ " '=',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '∴',\n",
+ " '.',\n",
+ " 'Z',\n",
" 'I',\n",
+ " 'G',\n",
" '.',\n",
+ " 'E',\n",
" '.',\n",
- " '.',\n",
- " 'T',\n",
" 'O',\n",
- " 'A',\n",
- " 'D',\n",
- " 'Y',\n",
+ " 'M',\n",
+ " '█',\n",
+ " '█',\n",
+ " '∴',\n",
" '.',\n",
- " '#',\n",
- " '#',\n",
+ " '.',\n",
+ " '.',\n",
+ " ':',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'E',\n",
+ " '.',\n",
+ " '.',\n",
+ " ':',\n",
+ " 'L',\n",
+ " '.',\n",
+ " 'N',\n",
+ " 'O',\n",
+ " '█',\n",
+ " '█',\n",
" '.',\n",
" '.',\n",
" '.',\n",
" '=',\n",
" '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'B',\n",
+ " 'O',\n",
+ " 'O',\n",
+ " 'D',\n",
+ " 'L',\n",
+ " 'E',\n",
+ " 'S',\n",
+ " '.',\n",
+ " '█',\n",
+ " '█',\n",
+ " '∴',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " ':',\n",
+ " 'V',\n",
+ " '.',\n",
+ " 'O',\n",
+ " '.',\n",
+ " 'U',\n",
+ " ':',\n",
+ " 'S',\n",
+ " 'N',\n",
+ " 'E',\n",
+ " 'D',\n",
+ " '█',\n",
+ " '█',\n",
+ " '.',\n",
+ " '=',\n",
+ " '.',\n",
+ " 'D',\n",
+ " '.',\n",
+ " 'I',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'I',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'T',\n",
+ " 'A',\n",
+ " '█',\n",
+ " '█',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'N',\n",
+ " 'E',\n",
+ " 'A',\n",
+ " 'T',\n",
+ " 'N',\n",
+ " 'E',\n",
+ " 's',\n",
+ " 'S',\n",
+ " '.',\n",
+ " '.',\n",
+ " ':',\n",
+ " '.',\n",
+ " 'W',\n",
+ " '█',\n",
+ " '█',\n",
+ " 'U',\n",
+ " 'V',\n",
+ " 'E',\n",
+ " 'A',\n",
+ " '.',\n",
+ " 'I',\n",
+ " '.',\n",
+ " 'L',\n",
+ " 'O',\n",
+ " 'T',\n",
+ " 'A',\n",
+ " 'H',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'K',\n",
+ " '█',\n",
+ " '█',\n",
+ " '.',\n",
+ " ':',\n",
+ " '.',\n",
+ " 'R',\n",
+ " ':',\n",
+ " 'A',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'P',\n",
+ " 'I',\n",
+ " 'X',\n",
+ " 'I',\n",
+ " 'E',\n",
+ " ':',\n",
+ " '.',\n",
+ " '█',\n",
+ " '█',\n",
+ " '.',\n",
+ " '.',\n",
+ " ':',\n",
+ " 'T',\n",
+ " '.',\n",
+ " 'T',\n",
+ " 'I',\n",
+ " '.',\n",
+ " '.',\n",
+ " 't',\n",
+ " '.',\n",
+ " '.',\n",
+ " ':',\n",
+ " '.',\n",
+ " '.',\n",
+ " '█',\n",
+ " '█',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'H',\n",
+ " '.',\n",
+ " 'E',\n",
+ " 'F',\n",
+ " '.',\n",
+ " 'Y',\n",
+ " 'I',\n",
+ " 'R',\n",
+ " 'R',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█']"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ "Player 0 with rack LUETSAW makes Play(start=26, dir=1, letters='WAES', rack='LUT') for 62 points ; draws: LUTA; scores: [377, 368]"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ " | | | TW | | | D2 | | W4 | A1 | E1 | S1 | | | | | | DL | | | R1 | E1 | J8 | O1 | I1 | N1 | | DL | | | | DL | | | DL | | C3 | | | | DL | | | DL | B3 | TW | | | TL | | | A1 | G2 | | | | Q10 | | | R1 | | | DL | | | | Y4 | A1 | M3 | | | U1 | DL | | O1 | | DW | | | | TL | | Z10 | I1 | G2 | | E1 | | O1 | M3 | TL | | | | DL | | | E1 | | | DL | L1 | | N1 | O1 | | | | DW | | | | B3 | O1 | O1 | D2 | L1 | E1 | S1 | | TL | | | | DL | V4 | | O1 | | U1 | DL | S1 | N1 | E1 | D2 | | DW | | D2 | | I1 | | | | I1 | | | | T1 | A1 | | | N1 | E1 | A1 | T1 | N1 | E1 | s | S1 | | | DL | | W4 | U1 | V4 | E1 | A1 | | I1 | | L1 | O1 | T1 | A1 | H4 | | | K5 | | DL | | R1 | DL | A1 | | | P3 | I1 | X8 | I1 | E1 | DL | | | | DL | T1 | | T1 | I1 | | | t | | | DL | | | | | | H4 | | E1 | F4 | | Y4 | I1 | R1 | R1 | | | | "
+ ],
+ "text/plain": [
+ "['█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '≡',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'D',\n",
+ " '.',\n",
+ " 'W',\n",
+ " 'A',\n",
+ " 'E',\n",
+ " 'S',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '█',\n",
+ " '█',\n",
+ " '.',\n",
+ " '.',\n",
+ " ':',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'R',\n",
+ " 'E',\n",
+ " 'J',\n",
+ " 'O',\n",
+ " 'I',\n",
+ " 'N',\n",
+ " '.',\n",
+ " ':',\n",
+ " '.',\n",
+ " '.',\n",
+ " '█',\n",
+ " '█',\n",
+ " '.',\n",
+ " ':',\n",
+ " '.',\n",
+ " '.',\n",
+ " ':',\n",
+ " '.',\n",
+ " 'C',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " ':',\n",
+ " '.',\n",
+ " '.',\n",
+ " ':',\n",
+ " 'B',\n",
+ " '█',\n",
+ " '█',\n",
+ " '≡',\n",
+ " '.',\n",
+ " '.',\n",
+ " '∴',\n",
+ " '.',\n",
+ " '.',\n",
" 'A',\n",
" 'G',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'Q',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'R',\n",
+ " '█',\n",
+ " '█',\n",
+ " '.',\n",
+ " '.',\n",
+ " ':',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'Y',\n",
" 'A',\n",
- " 'P',\n",
+ " 'M',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'U',\n",
+ " ':',\n",
+ " '.',\n",
+ " 'O',\n",
+ " '█',\n",
+ " '█',\n",
+ " '.',\n",
+ " '=',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '∴',\n",
+ " '.',\n",
+ " 'Z',\n",
+ " 'I',\n",
+ " 'G',\n",
+ " '.',\n",
" 'E',\n",
" '.',\n",
- " 'S',\n",
" 'O',\n",
+ " 'M',\n",
+ " '█',\n",
+ " '█',\n",
+ " '∴',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " ':',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'E',\n",
+ " '.',\n",
+ " '.',\n",
+ " ':',\n",
+ " 'L',\n",
+ " '.',\n",
+ " 'N',\n",
+ " 'O',\n",
+ " '█',\n",
+ " '█',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '=',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'B',\n",
+ " 'O',\n",
+ " 'O',\n",
+ " 'D',\n",
+ " 'L',\n",
+ " 'E',\n",
+ " 'S',\n",
+ " '.',\n",
+ " '█',\n",
+ " '█',\n",
+ " '∴',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " ':',\n",
+ " 'V',\n",
+ " '.',\n",
+ " 'O',\n",
+ " '.',\n",
+ " 'U',\n",
+ " ':',\n",
+ " 'S',\n",
+ " 'N',\n",
+ " 'E',\n",
+ " 'D',\n",
+ " '█',\n",
+ " '█',\n",
+ " '.',\n",
+ " '=',\n",
+ " '.',\n",
+ " 'D',\n",
+ " '.',\n",
+ " 'I',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'I',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'T',\n",
" 'A',\n",
+ " '█',\n",
+ " '█',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'N',\n",
+ " 'E',\n",
+ " 'A',\n",
+ " 'T',\n",
+ " 'N',\n",
+ " 'E',\n",
+ " 's',\n",
+ " 'S',\n",
+ " '.',\n",
+ " '.',\n",
+ " ':',\n",
+ " '.',\n",
+ " 'W',\n",
+ " '█',\n",
+ " '█',\n",
+ " 'U',\n",
+ " 'V',\n",
+ " 'E',\n",
+ " 'A',\n",
+ " '.',\n",
+ " 'I',\n",
+ " '.',\n",
+ " 'L',\n",
+ " 'O',\n",
+ " 'T',\n",
+ " 'A',\n",
+ " 'H',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'K',\n",
+ " '█',\n",
+ " '█',\n",
+ " '.',\n",
+ " ':',\n",
+ " '.',\n",
" 'R',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#',\n",
- " '#']"
+ " ':',\n",
+ " 'A',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'P',\n",
+ " 'I',\n",
+ " 'X',\n",
+ " 'I',\n",
+ " 'E',\n",
+ " ':',\n",
+ " '.',\n",
+ " '█',\n",
+ " '█',\n",
+ " '.',\n",
+ " '.',\n",
+ " ':',\n",
+ " 'T',\n",
+ " '.',\n",
+ " 'T',\n",
+ " 'I',\n",
+ " '.',\n",
+ " '.',\n",
+ " 't',\n",
+ " '.',\n",
+ " '.',\n",
+ " ':',\n",
+ " '.',\n",
+ " '.',\n",
+ " '█',\n",
+ " '█',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'H',\n",
+ " '.',\n",
+ " 'E',\n",
+ " 'F',\n",
+ " '.',\n",
+ " 'Y',\n",
+ " 'I',\n",
+ " 'R',\n",
+ " 'R',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█']"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ "Player 1 with rack GRNPFEC makes Play(start=60, dir=1, letters='ENG', rack='RPFC') for 21 points ; draws: RPFC; scores: [377, 389]"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ " | | | TW | | | D2 | | W4 | A1 | E1 | S1 | | | | | | DL | | | R1 | E1 | J8 | O1 | I1 | N1 | | DL | | | | DL | | | DL | | C3 | | E1 | N1 | G2 | | | DL | B3 | TW | | | TL | | | A1 | G2 | | | | Q10 | | | R1 | | | DL | | | | Y4 | A1 | M3 | | | U1 | DL | | O1 | | DW | | | | TL | | Z10 | I1 | G2 | | E1 | | O1 | M3 | TL | | | | DL | | | E1 | | | DL | L1 | | N1 | O1 | | | | DW | | | | B3 | O1 | O1 | D2 | L1 | E1 | S1 | | TL | | | | DL | V4 | | O1 | | U1 | DL | S1 | N1 | E1 | D2 | | DW | | D2 | | I1 | | | | I1 | | | | T1 | A1 | | | N1 | E1 | A1 | T1 | N1 | E1 | s | S1 | | | DL | | W4 | U1 | V4 | E1 | A1 | | I1 | | L1 | O1 | T1 | A1 | H4 | | | K5 | | DL | | R1 | DL | A1 | | | P3 | I1 | X8 | I1 | E1 | DL | | | | DL | T1 | | T1 | I1 | | | t | | | DL | | | | | | H4 | | E1 | F4 | | Y4 | I1 | R1 | R1 | | | | "
+ ],
+ "text/plain": [
+ "['█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '≡',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'D',\n",
+ " '.',\n",
+ " 'W',\n",
+ " 'A',\n",
+ " 'E',\n",
+ " 'S',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '█',\n",
+ " '█',\n",
+ " '.',\n",
+ " '.',\n",
+ " ':',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'R',\n",
+ " 'E',\n",
+ " 'J',\n",
+ " 'O',\n",
+ " 'I',\n",
+ " 'N',\n",
+ " '.',\n",
+ " ':',\n",
+ " '.',\n",
+ " '.',\n",
+ " '█',\n",
+ " '█',\n",
+ " '.',\n",
+ " ':',\n",
+ " '.',\n",
+ " '.',\n",
+ " ':',\n",
+ " '.',\n",
+ " 'C',\n",
+ " '.',\n",
+ " 'E',\n",
+ " 'N',\n",
+ " 'G',\n",
+ " '.',\n",
+ " '.',\n",
+ " ':',\n",
+ " 'B',\n",
+ " '█',\n",
+ " '█',\n",
+ " '≡',\n",
+ " '.',\n",
+ " '.',\n",
+ " '∴',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'A',\n",
+ " 'G',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'Q',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'R',\n",
+ " '█',\n",
+ " '█',\n",
+ " '.',\n",
+ " '.',\n",
+ " ':',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'Y',\n",
+ " 'A',\n",
+ " 'M',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'U',\n",
+ " ':',\n",
+ " '.',\n",
+ " 'O',\n",
+ " '█',\n",
+ " '█',\n",
+ " '.',\n",
+ " '=',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '∴',\n",
+ " '.',\n",
+ " 'Z',\n",
+ " 'I',\n",
+ " 'G',\n",
+ " '.',\n",
+ " 'E',\n",
+ " '.',\n",
+ " 'O',\n",
+ " 'M',\n",
+ " '█',\n",
+ " '█',\n",
+ " '∴',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " ':',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'E',\n",
+ " '.',\n",
+ " '.',\n",
+ " ':',\n",
+ " 'L',\n",
+ " '.',\n",
+ " 'N',\n",
+ " 'O',\n",
+ " '█',\n",
+ " '█',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '=',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'B',\n",
+ " 'O',\n",
+ " 'O',\n",
+ " 'D',\n",
+ " 'L',\n",
+ " 'E',\n",
+ " 'S',\n",
+ " '.',\n",
+ " '█',\n",
+ " '█',\n",
+ " '∴',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " ':',\n",
+ " 'V',\n",
+ " '.',\n",
+ " 'O',\n",
+ " '.',\n",
+ " 'U',\n",
+ " ':',\n",
+ " 'S',\n",
+ " 'N',\n",
+ " 'E',\n",
+ " 'D',\n",
+ " '█',\n",
+ " '█',\n",
+ " '.',\n",
+ " '=',\n",
+ " '.',\n",
+ " 'D',\n",
+ " '.',\n",
+ " 'I',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'I',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'T',\n",
+ " 'A',\n",
+ " '█',\n",
+ " '█',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'N',\n",
+ " 'E',\n",
+ " 'A',\n",
+ " 'T',\n",
+ " 'N',\n",
+ " 'E',\n",
+ " 's',\n",
+ " 'S',\n",
+ " '.',\n",
+ " '.',\n",
+ " ':',\n",
+ " '.',\n",
+ " 'W',\n",
+ " '█',\n",
+ " '█',\n",
+ " 'U',\n",
+ " 'V',\n",
+ " 'E',\n",
+ " 'A',\n",
+ " '.',\n",
+ " 'I',\n",
+ " '.',\n",
+ " 'L',\n",
+ " 'O',\n",
+ " 'T',\n",
+ " 'A',\n",
+ " 'H',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'K',\n",
+ " '█',\n",
+ " '█',\n",
+ " '.',\n",
+ " ':',\n",
+ " '.',\n",
+ " 'R',\n",
+ " ':',\n",
+ " 'A',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'P',\n",
+ " 'I',\n",
+ " 'X',\n",
+ " 'I',\n",
+ " 'E',\n",
+ " ':',\n",
+ " '.',\n",
+ " '█',\n",
+ " '█',\n",
+ " '.',\n",
+ " '.',\n",
+ " ':',\n",
+ " 'T',\n",
+ " '.',\n",
+ " 'T',\n",
+ " 'I',\n",
+ " '.',\n",
+ " '.',\n",
+ " 't',\n",
+ " '.',\n",
+ " '.',\n",
+ " ':',\n",
+ " '.',\n",
+ " '.',\n",
+ " '█',\n",
+ " '█',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'H',\n",
+ " '.',\n",
+ " 'E',\n",
+ " 'F',\n",
+ " '.',\n",
+ " 'Y',\n",
+ " 'I',\n",
+ " 'R',\n",
+ " 'R',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█']"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ "Player 0 with rack LUTA makes Play(start=172, dir=1, letters='TAD', rack='LU') for 11 points ; draws: LU; scores: [388, 389]"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ " | | | TW | | | D2 | | W4 | A1 | E1 | S1 | | | | | | DL | | | R1 | E1 | J8 | O1 | I1 | N1 | | DL | | | | DL | | | DL | | C3 | | E1 | N1 | G2 | | | DL | B3 | TW | | | TL | | | A1 | G2 | | | | Q10 | | | R1 | | | DL | | | | Y4 | A1 | M3 | | | U1 | DL | | O1 | | DW | | | | TL | | Z10 | I1 | G2 | | E1 | | O1 | M3 | TL | | | | DL | | | E1 | | | DL | L1 | | N1 | O1 | | | | DW | | | | B3 | O1 | O1 | D2 | L1 | E1 | S1 | | TL | | | | DL | V4 | | O1 | | U1 | DL | S1 | N1 | E1 | D2 | | T1 | A1 | D2 | | I1 | | | | I1 | | | | T1 | A1 | | | N1 | E1 | A1 | T1 | N1 | E1 | s | S1 | | | DL | | W4 | U1 | V4 | E1 | A1 | | I1 | | L1 | O1 | T1 | A1 | H4 | | | K5 | | DL | | R1 | DL | A1 | | | P3 | I1 | X8 | I1 | E1 | DL | | | | DL | T1 | | T1 | I1 | | | t | | | DL | | | | | | H4 | | E1 | F4 | | Y4 | I1 | R1 | R1 | | | | "
+ ],
+ "text/plain": [
+ "['█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '≡',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'D',\n",
+ " '.',\n",
+ " 'W',\n",
+ " 'A',\n",
+ " 'E',\n",
+ " 'S',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '█',\n",
+ " '█',\n",
+ " '.',\n",
+ " '.',\n",
+ " ':',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'R',\n",
+ " 'E',\n",
+ " 'J',\n",
+ " 'O',\n",
+ " 'I',\n",
+ " 'N',\n",
+ " '.',\n",
+ " ':',\n",
+ " '.',\n",
+ " '.',\n",
+ " '█',\n",
+ " '█',\n",
+ " '.',\n",
+ " ':',\n",
+ " '.',\n",
+ " '.',\n",
+ " ':',\n",
+ " '.',\n",
+ " 'C',\n",
+ " '.',\n",
+ " 'E',\n",
+ " 'N',\n",
+ " 'G',\n",
+ " '.',\n",
+ " '.',\n",
+ " ':',\n",
+ " 'B',\n",
+ " '█',\n",
+ " '█',\n",
+ " '≡',\n",
+ " '.',\n",
+ " '.',\n",
+ " '∴',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'A',\n",
+ " 'G',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'Q',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'R',\n",
+ " '█',\n",
+ " '█',\n",
+ " '.',\n",
+ " '.',\n",
+ " ':',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'Y',\n",
+ " 'A',\n",
+ " 'M',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'U',\n",
+ " ':',\n",
+ " '.',\n",
+ " 'O',\n",
+ " '█',\n",
+ " '█',\n",
+ " '.',\n",
+ " '=',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '∴',\n",
+ " '.',\n",
+ " 'Z',\n",
+ " 'I',\n",
+ " 'G',\n",
+ " '.',\n",
+ " 'E',\n",
+ " '.',\n",
+ " 'O',\n",
+ " 'M',\n",
+ " '█',\n",
+ " '█',\n",
+ " '∴',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " ':',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'E',\n",
+ " '.',\n",
+ " '.',\n",
+ " ':',\n",
+ " 'L',\n",
+ " '.',\n",
+ " 'N',\n",
+ " 'O',\n",
+ " '█',\n",
+ " '█',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '=',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'B',\n",
+ " 'O',\n",
+ " 'O',\n",
+ " 'D',\n",
+ " 'L',\n",
+ " 'E',\n",
+ " 'S',\n",
+ " '.',\n",
+ " '█',\n",
+ " '█',\n",
+ " '∴',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " ':',\n",
+ " 'V',\n",
+ " '.',\n",
+ " 'O',\n",
+ " '.',\n",
+ " 'U',\n",
+ " ':',\n",
+ " 'S',\n",
+ " 'N',\n",
+ " 'E',\n",
+ " 'D',\n",
+ " '█',\n",
+ " '█',\n",
+ " '.',\n",
+ " 'T',\n",
+ " 'A',\n",
+ " 'D',\n",
+ " '.',\n",
+ " 'I',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'I',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'T',\n",
+ " 'A',\n",
+ " '█',\n",
+ " '█',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'N',\n",
+ " 'E',\n",
+ " 'A',\n",
+ " 'T',\n",
+ " 'N',\n",
+ " 'E',\n",
+ " 's',\n",
+ " 'S',\n",
+ " '.',\n",
+ " '.',\n",
+ " ':',\n",
+ " '.',\n",
+ " 'W',\n",
+ " '█',\n",
+ " '█',\n",
+ " 'U',\n",
+ " 'V',\n",
+ " 'E',\n",
+ " 'A',\n",
+ " '.',\n",
+ " 'I',\n",
+ " '.',\n",
+ " 'L',\n",
+ " 'O',\n",
+ " 'T',\n",
+ " 'A',\n",
+ " 'H',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'K',\n",
+ " '█',\n",
+ " '█',\n",
+ " '.',\n",
+ " ':',\n",
+ " '.',\n",
+ " 'R',\n",
+ " ':',\n",
+ " 'A',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'P',\n",
+ " 'I',\n",
+ " 'X',\n",
+ " 'I',\n",
+ " 'E',\n",
+ " ':',\n",
+ " '.',\n",
+ " '█',\n",
+ " '█',\n",
+ " '.',\n",
+ " '.',\n",
+ " ':',\n",
+ " 'T',\n",
+ " '.',\n",
+ " 'T',\n",
+ " 'I',\n",
+ " '.',\n",
+ " '.',\n",
+ " 't',\n",
+ " '.',\n",
+ " '.',\n",
+ " ':',\n",
+ " '.',\n",
+ " '.',\n",
+ " '█',\n",
+ " '█',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'H',\n",
+ " '.',\n",
+ " 'E',\n",
+ " 'F',\n",
+ " '.',\n",
+ " 'Y',\n",
+ " 'I',\n",
+ " 'R',\n",
+ " 'R',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█']"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ "Player 1 with rack RPFC makes Play(start=96, dir=1, letters='CUP', rack='RF') for 10 points ; draws: RF; scores: [388, 399]"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ " | | | TW | | | D2 | | W4 | A1 | E1 | S1 | | | | | | DL | | | R1 | E1 | J8 | O1 | I1 | N1 | | DL | | | | DL | | | DL | | C3 | | E1 | N1 | G2 | | | DL | B3 | TW | | | TL | | | A1 | G2 | | | | Q10 | | | R1 | | | DL | | | | Y4 | A1 | M3 | | C3 | U1 | P3 | | O1 | | DW | | | | TL | | Z10 | I1 | G2 | | E1 | | O1 | M3 | TL | | | | DL | | | E1 | | | DL | L1 | | N1 | O1 | | | | DW | | | | B3 | O1 | O1 | D2 | L1 | E1 | S1 | | TL | | | | DL | V4 | | O1 | | U1 | DL | S1 | N1 | E1 | D2 | | T1 | A1 | D2 | | I1 | | | | I1 | | | | T1 | A1 | | | N1 | E1 | A1 | T1 | N1 | E1 | s | S1 | | | DL | | W4 | U1 | V4 | E1 | A1 | | I1 | | L1 | O1 | T1 | A1 | H4 | | | K5 | | DL | | R1 | DL | A1 | | | P3 | I1 | X8 | I1 | E1 | DL | | | | DL | T1 | | T1 | I1 | | | t | | | DL | | | | | | H4 | | E1 | F4 | | Y4 | I1 | R1 | R1 | | | | "
+ ],
+ "text/plain": [
+ "['█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '≡',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'D',\n",
+ " '.',\n",
+ " 'W',\n",
+ " 'A',\n",
+ " 'E',\n",
+ " 'S',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '█',\n",
+ " '█',\n",
+ " '.',\n",
+ " '.',\n",
+ " ':',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'R',\n",
+ " 'E',\n",
+ " 'J',\n",
+ " 'O',\n",
+ " 'I',\n",
+ " 'N',\n",
+ " '.',\n",
+ " ':',\n",
+ " '.',\n",
+ " '.',\n",
+ " '█',\n",
+ " '█',\n",
+ " '.',\n",
+ " ':',\n",
+ " '.',\n",
+ " '.',\n",
+ " ':',\n",
+ " '.',\n",
+ " 'C',\n",
+ " '.',\n",
+ " 'E',\n",
+ " 'N',\n",
+ " 'G',\n",
+ " '.',\n",
+ " '.',\n",
+ " ':',\n",
+ " 'B',\n",
+ " '█',\n",
+ " '█',\n",
+ " '≡',\n",
+ " '.',\n",
+ " '.',\n",
+ " '∴',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'A',\n",
+ " 'G',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'Q',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'R',\n",
+ " '█',\n",
+ " '█',\n",
+ " '.',\n",
+ " '.',\n",
+ " ':',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'Y',\n",
+ " 'A',\n",
+ " 'M',\n",
+ " '.',\n",
+ " 'C',\n",
+ " 'U',\n",
+ " 'P',\n",
+ " '.',\n",
+ " 'O',\n",
+ " '█',\n",
+ " '█',\n",
+ " '.',\n",
+ " '=',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '∴',\n",
+ " '.',\n",
+ " 'Z',\n",
+ " 'I',\n",
+ " 'G',\n",
+ " '.',\n",
+ " 'E',\n",
+ " '.',\n",
+ " 'O',\n",
+ " 'M',\n",
+ " '█',\n",
+ " '█',\n",
+ " '∴',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " ':',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'E',\n",
+ " '.',\n",
+ " '.',\n",
+ " ':',\n",
+ " 'L',\n",
+ " '.',\n",
+ " 'N',\n",
+ " 'O',\n",
+ " '█',\n",
+ " '█',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '=',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'B',\n",
+ " 'O',\n",
+ " 'O',\n",
+ " 'D',\n",
+ " 'L',\n",
+ " 'E',\n",
+ " 'S',\n",
+ " '.',\n",
+ " '█',\n",
+ " '█',\n",
+ " '∴',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " ':',\n",
+ " 'V',\n",
+ " '.',\n",
+ " 'O',\n",
+ " '.',\n",
+ " 'U',\n",
+ " ':',\n",
+ " 'S',\n",
+ " 'N',\n",
+ " 'E',\n",
+ " 'D',\n",
+ " '█',\n",
+ " '█',\n",
+ " '.',\n",
+ " 'T',\n",
+ " 'A',\n",
+ " 'D',\n",
+ " '.',\n",
+ " 'I',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'I',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'T',\n",
+ " 'A',\n",
+ " '█',\n",
+ " '█',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'N',\n",
+ " 'E',\n",
+ " 'A',\n",
+ " 'T',\n",
+ " 'N',\n",
+ " 'E',\n",
+ " 's',\n",
+ " 'S',\n",
+ " '.',\n",
+ " '.',\n",
+ " ':',\n",
+ " '.',\n",
+ " 'W',\n",
+ " '█',\n",
+ " '█',\n",
+ " 'U',\n",
+ " 'V',\n",
+ " 'E',\n",
+ " 'A',\n",
+ " '.',\n",
+ " 'I',\n",
+ " '.',\n",
+ " 'L',\n",
+ " 'O',\n",
+ " 'T',\n",
+ " 'A',\n",
+ " 'H',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'K',\n",
+ " '█',\n",
+ " '█',\n",
+ " '.',\n",
+ " ':',\n",
+ " '.',\n",
+ " 'R',\n",
+ " ':',\n",
+ " 'A',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'P',\n",
+ " 'I',\n",
+ " 'X',\n",
+ " 'I',\n",
+ " 'E',\n",
+ " ':',\n",
+ " '.',\n",
+ " '█',\n",
+ " '█',\n",
+ " '.',\n",
+ " '.',\n",
+ " ':',\n",
+ " 'T',\n",
+ " '.',\n",
+ " 'T',\n",
+ " 'I',\n",
+ " '.',\n",
+ " '.',\n",
+ " 't',\n",
+ " '.',\n",
+ " '.',\n",
+ " ':',\n",
+ " '.',\n",
+ " '.',\n",
+ " '█',\n",
+ " '█',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'H',\n",
+ " '.',\n",
+ " 'E',\n",
+ " 'F',\n",
+ " '.',\n",
+ " 'Y',\n",
+ " 'I',\n",
+ " 'R',\n",
+ " 'R',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█']"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ "Player 0 with rack LU makes Play(start=127, dir=1, letters='EL', rack='U') for 8 points ; draws: U; scores: [396, 399]"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ " | | | TW | | | D2 | | W4 | A1 | E1 | S1 | | | | | | DL | | | R1 | E1 | J8 | O1 | I1 | N1 | | DL | | | | DL | | | DL | | C3 | | E1 | N1 | G2 | | | DL | B3 | TW | | | TL | | | A1 | G2 | | | | Q10 | | | R1 | | | DL | | | | Y4 | A1 | M3 | | C3 | U1 | P3 | | O1 | | DW | | | | TL | | Z10 | I1 | G2 | | E1 | | O1 | M3 | TL | | | | DL | | | E1 | L1 | | DL | L1 | | N1 | O1 | | | | DW | | | | B3 | O1 | O1 | D2 | L1 | E1 | S1 | | TL | | | | DL | V4 | | O1 | | U1 | DL | S1 | N1 | E1 | D2 | | T1 | A1 | D2 | | I1 | | | | I1 | | | | T1 | A1 | | | N1 | E1 | A1 | T1 | N1 | E1 | s | S1 | | | DL | | W4 | U1 | V4 | E1 | A1 | | I1 | | L1 | O1 | T1 | A1 | H4 | | | K5 | | DL | | R1 | DL | A1 | | | P3 | I1 | X8 | I1 | E1 | DL | | | | DL | T1 | | T1 | I1 | | | t | | | DL | | | | | | H4 | | E1 | F4 | | Y4 | I1 | R1 | R1 | | | | "
+ ],
+ "text/plain": [
+ "['█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '≡',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'D',\n",
+ " '.',\n",
+ " 'W',\n",
+ " 'A',\n",
+ " 'E',\n",
+ " 'S',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '█',\n",
+ " '█',\n",
+ " '.',\n",
+ " '.',\n",
+ " ':',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'R',\n",
+ " 'E',\n",
+ " 'J',\n",
+ " 'O',\n",
+ " 'I',\n",
+ " 'N',\n",
+ " '.',\n",
+ " ':',\n",
+ " '.',\n",
+ " '.',\n",
+ " '█',\n",
+ " '█',\n",
+ " '.',\n",
+ " ':',\n",
+ " '.',\n",
+ " '.',\n",
+ " ':',\n",
+ " '.',\n",
+ " 'C',\n",
+ " '.',\n",
+ " 'E',\n",
+ " 'N',\n",
+ " 'G',\n",
+ " '.',\n",
+ " '.',\n",
+ " ':',\n",
+ " 'B',\n",
+ " '█',\n",
+ " '█',\n",
+ " '≡',\n",
+ " '.',\n",
+ " '.',\n",
+ " '∴',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'A',\n",
+ " 'G',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'Q',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'R',\n",
+ " '█',\n",
+ " '█',\n",
+ " '.',\n",
+ " '.',\n",
+ " ':',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'Y',\n",
+ " 'A',\n",
+ " 'M',\n",
+ " '.',\n",
+ " 'C',\n",
+ " 'U',\n",
+ " 'P',\n",
+ " '.',\n",
+ " 'O',\n",
+ " '█',\n",
+ " '█',\n",
+ " '.',\n",
+ " '=',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '∴',\n",
+ " '.',\n",
+ " 'Z',\n",
+ " 'I',\n",
+ " 'G',\n",
+ " '.',\n",
+ " 'E',\n",
+ " '.',\n",
+ " 'O',\n",
+ " 'M',\n",
+ " '█',\n",
+ " '█',\n",
+ " '∴',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " ':',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'E',\n",
+ " 'L',\n",
+ " '.',\n",
+ " ':',\n",
+ " 'L',\n",
+ " '.',\n",
+ " 'N',\n",
+ " 'O',\n",
+ " '█',\n",
+ " '█',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '=',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'B',\n",
+ " 'O',\n",
+ " 'O',\n",
+ " 'D',\n",
+ " 'L',\n",
+ " 'E',\n",
+ " 'S',\n",
+ " '.',\n",
+ " '█',\n",
+ " '█',\n",
+ " '∴',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " ':',\n",
+ " 'V',\n",
+ " '.',\n",
+ " 'O',\n",
+ " '.',\n",
+ " 'U',\n",
+ " ':',\n",
+ " 'S',\n",
+ " 'N',\n",
+ " 'E',\n",
+ " 'D',\n",
+ " '█',\n",
+ " '█',\n",
+ " '.',\n",
+ " 'T',\n",
+ " 'A',\n",
+ " 'D',\n",
+ " '.',\n",
+ " 'I',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'I',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'T',\n",
+ " 'A',\n",
+ " '█',\n",
+ " '█',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'N',\n",
+ " 'E',\n",
+ " 'A',\n",
+ " 'T',\n",
+ " 'N',\n",
+ " 'E',\n",
+ " 's',\n",
+ " 'S',\n",
+ " '.',\n",
+ " '.',\n",
+ " ':',\n",
+ " '.',\n",
+ " 'W',\n",
+ " '█',\n",
+ " '█',\n",
+ " 'U',\n",
+ " 'V',\n",
+ " 'E',\n",
+ " 'A',\n",
+ " '.',\n",
+ " 'I',\n",
+ " '.',\n",
+ " 'L',\n",
+ " 'O',\n",
+ " 'T',\n",
+ " 'A',\n",
+ " 'H',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'K',\n",
+ " '█',\n",
+ " '█',\n",
+ " '.',\n",
+ " ':',\n",
+ " '.',\n",
+ " 'R',\n",
+ " ':',\n",
+ " 'A',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'P',\n",
+ " 'I',\n",
+ " 'X',\n",
+ " 'I',\n",
+ " 'E',\n",
+ " ':',\n",
+ " '.',\n",
+ " '█',\n",
+ " '█',\n",
+ " '.',\n",
+ " '.',\n",
+ " ':',\n",
+ " 'T',\n",
+ " '.',\n",
+ " 'T',\n",
+ " 'I',\n",
+ " '.',\n",
+ " '.',\n",
+ " 't',\n",
+ " '.',\n",
+ " '.',\n",
+ " ':',\n",
+ " '.',\n",
+ " '.',\n",
+ " '█',\n",
+ " '█',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'H',\n",
+ " '.',\n",
+ " 'E',\n",
+ " 'F',\n",
+ " '.',\n",
+ " 'Y',\n",
+ " 'I',\n",
+ " 'R',\n",
+ " 'R',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█']"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ "Player 1 with rack RF makes Play(start=234, dir=17, letters='EF', rack='R') for 9 points ; draws: R; scores: [396, 408]"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ " | | | TW | | | D2 | | W4 | A1 | E1 | S1 | | | | | | DL | | | R1 | E1 | J8 | O1 | I1 | N1 | | DL | | | | DL | | | DL | | C3 | | E1 | N1 | G2 | | | DL | B3 | TW | | | TL | | | A1 | G2 | | | | Q10 | | | R1 | | | DL | | | | Y4 | A1 | M3 | | C3 | U1 | P3 | | O1 | | DW | | | | TL | | Z10 | I1 | G2 | | E1 | | O1 | M3 | TL | | | | DL | | | E1 | L1 | | DL | L1 | | N1 | O1 | | | | DW | | | | B3 | O1 | O1 | D2 | L1 | E1 | S1 | | TL | | | | DL | V4 | | O1 | | U1 | DL | S1 | N1 | E1 | D2 | | T1 | A1 | D2 | | I1 | | | | I1 | | | | T1 | A1 | | | N1 | E1 | A1 | T1 | N1 | E1 | s | S1 | | | DL | | W4 | U1 | V4 | E1 | A1 | | I1 | | L1 | O1 | T1 | A1 | H4 | | | K5 | | DL | | R1 | DL | A1 | | | P3 | I1 | X8 | I1 | E1 | DL | | | | DL | T1 | | T1 | I1 | | | t | | | F4 | | | | | | H4 | | E1 | F4 | | Y4 | I1 | R1 | R1 | | | | "
+ ],
+ "text/plain": [
+ "['█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '≡',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'D',\n",
+ " '.',\n",
+ " 'W',\n",
+ " 'A',\n",
+ " 'E',\n",
+ " 'S',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '█',\n",
+ " '█',\n",
+ " '.',\n",
+ " '.',\n",
+ " ':',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'R',\n",
+ " 'E',\n",
+ " 'J',\n",
+ " 'O',\n",
+ " 'I',\n",
+ " 'N',\n",
+ " '.',\n",
+ " ':',\n",
+ " '.',\n",
+ " '.',\n",
+ " '█',\n",
+ " '█',\n",
+ " '.',\n",
+ " ':',\n",
+ " '.',\n",
+ " '.',\n",
+ " ':',\n",
+ " '.',\n",
+ " 'C',\n",
+ " '.',\n",
+ " 'E',\n",
+ " 'N',\n",
+ " 'G',\n",
+ " '.',\n",
+ " '.',\n",
+ " ':',\n",
+ " 'B',\n",
+ " '█',\n",
+ " '█',\n",
+ " '≡',\n",
+ " '.',\n",
+ " '.',\n",
+ " '∴',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'A',\n",
+ " 'G',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'Q',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'R',\n",
+ " '█',\n",
+ " '█',\n",
+ " '.',\n",
+ " '.',\n",
+ " ':',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'Y',\n",
+ " 'A',\n",
+ " 'M',\n",
+ " '.',\n",
+ " 'C',\n",
+ " 'U',\n",
+ " 'P',\n",
+ " '.',\n",
+ " 'O',\n",
+ " '█',\n",
+ " '█',\n",
+ " '.',\n",
+ " '=',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '∴',\n",
+ " '.',\n",
+ " 'Z',\n",
+ " 'I',\n",
+ " 'G',\n",
+ " '.',\n",
+ " 'E',\n",
+ " '.',\n",
+ " 'O',\n",
+ " 'M',\n",
+ " '█',\n",
+ " '█',\n",
+ " '∴',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " ':',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'E',\n",
+ " 'L',\n",
+ " '.',\n",
+ " ':',\n",
+ " 'L',\n",
+ " '.',\n",
+ " 'N',\n",
+ " 'O',\n",
+ " '█',\n",
+ " '█',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '=',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'B',\n",
+ " 'O',\n",
+ " 'O',\n",
+ " 'D',\n",
+ " 'L',\n",
+ " 'E',\n",
+ " 'S',\n",
+ " '.',\n",
+ " '█',\n",
+ " '█',\n",
+ " '∴',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " ':',\n",
+ " 'V',\n",
+ " '.',\n",
+ " 'O',\n",
+ " '.',\n",
+ " 'U',\n",
+ " ':',\n",
+ " 'S',\n",
+ " 'N',\n",
+ " 'E',\n",
+ " 'D',\n",
+ " '█',\n",
+ " '█',\n",
+ " '.',\n",
+ " 'T',\n",
+ " 'A',\n",
+ " 'D',\n",
+ " '.',\n",
+ " 'I',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'I',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'T',\n",
+ " 'A',\n",
+ " '█',\n",
+ " '█',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'N',\n",
+ " 'E',\n",
+ " 'A',\n",
+ " 'T',\n",
+ " 'N',\n",
+ " 'E',\n",
+ " 's',\n",
+ " 'S',\n",
+ " '.',\n",
+ " '.',\n",
+ " ':',\n",
+ " '.',\n",
+ " 'W',\n",
+ " '█',\n",
+ " '█',\n",
+ " 'U',\n",
+ " 'V',\n",
+ " 'E',\n",
+ " 'A',\n",
+ " '.',\n",
+ " 'I',\n",
+ " '.',\n",
+ " 'L',\n",
+ " 'O',\n",
+ " 'T',\n",
+ " 'A',\n",
+ " 'H',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'K',\n",
+ " '█',\n",
+ " '█',\n",
+ " '.',\n",
+ " ':',\n",
+ " '.',\n",
+ " 'R',\n",
+ " ':',\n",
+ " 'A',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'P',\n",
+ " 'I',\n",
+ " 'X',\n",
+ " 'I',\n",
+ " 'E',\n",
+ " ':',\n",
+ " '.',\n",
+ " '█',\n",
+ " '█',\n",
+ " '.',\n",
+ " '.',\n",
+ " ':',\n",
+ " 'T',\n",
+ " '.',\n",
+ " 'T',\n",
+ " 'I',\n",
+ " '.',\n",
+ " '.',\n",
+ " 't',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'F',\n",
+ " '.',\n",
+ " '.',\n",
+ " '█',\n",
+ " '█',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'H',\n",
+ " '.',\n",
+ " 'E',\n",
+ " 'F',\n",
+ " '.',\n",
+ " 'Y',\n",
+ " 'I',\n",
+ " 'R',\n",
+ " 'R',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█']"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ "Player 0 with rack U makes Play(start=258, dir=1, letters='UH', rack='') for 5 points ; draws: ; scores: [401, 408]"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ " | | | TW | | | D2 | | W4 | A1 | E1 | S1 | | | | | | DL | | | R1 | E1 | J8 | O1 | I1 | N1 | | DL | | | | DL | | | DL | | C3 | | E1 | N1 | G2 | | | DL | B3 | TW | | | TL | | | A1 | G2 | | | | Q10 | | | R1 | | | DL | | | | Y4 | A1 | M3 | | C3 | U1 | P3 | | O1 | | DW | | | | TL | | Z10 | I1 | G2 | | E1 | | O1 | M3 | TL | | | | DL | | | E1 | L1 | | DL | L1 | | N1 | O1 | | | | DW | | | | B3 | O1 | O1 | D2 | L1 | E1 | S1 | | TL | | | | DL | V4 | | O1 | | U1 | DL | S1 | N1 | E1 | D2 | | T1 | A1 | D2 | | I1 | | | | I1 | | | | T1 | A1 | | | N1 | E1 | A1 | T1 | N1 | E1 | s | S1 | | | DL | | W4 | U1 | V4 | E1 | A1 | | I1 | | L1 | O1 | T1 | A1 | H4 | | | K5 | | DL | | R1 | DL | A1 | | | P3 | I1 | X8 | I1 | E1 | DL | | | | DL | T1 | | T1 | I1 | | | t | | | F4 | | | | | U1 | H4 | | E1 | F4 | | Y4 | I1 | R1 | R1 | | | | "
+ ],
+ "text/plain": [
+ "['█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '≡',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'D',\n",
+ " '.',\n",
+ " 'W',\n",
+ " 'A',\n",
+ " 'E',\n",
+ " 'S',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '█',\n",
+ " '█',\n",
+ " '.',\n",
+ " '.',\n",
+ " ':',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'R',\n",
+ " 'E',\n",
+ " 'J',\n",
+ " 'O',\n",
+ " 'I',\n",
+ " 'N',\n",
+ " '.',\n",
+ " ':',\n",
+ " '.',\n",
+ " '.',\n",
+ " '█',\n",
+ " '█',\n",
+ " '.',\n",
+ " ':',\n",
+ " '.',\n",
+ " '.',\n",
+ " ':',\n",
+ " '.',\n",
+ " 'C',\n",
+ " '.',\n",
+ " 'E',\n",
+ " 'N',\n",
+ " 'G',\n",
+ " '.',\n",
+ " '.',\n",
+ " ':',\n",
+ " 'B',\n",
+ " '█',\n",
+ " '█',\n",
+ " '≡',\n",
+ " '.',\n",
+ " '.',\n",
+ " '∴',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'A',\n",
+ " 'G',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'Q',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'R',\n",
+ " '█',\n",
+ " '█',\n",
+ " '.',\n",
+ " '.',\n",
+ " ':',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'Y',\n",
+ " 'A',\n",
+ " 'M',\n",
+ " '.',\n",
+ " 'C',\n",
+ " 'U',\n",
+ " 'P',\n",
+ " '.',\n",
+ " 'O',\n",
+ " '█',\n",
+ " '█',\n",
+ " '.',\n",
+ " '=',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '∴',\n",
+ " '.',\n",
+ " 'Z',\n",
+ " 'I',\n",
+ " 'G',\n",
+ " '.',\n",
+ " 'E',\n",
+ " '.',\n",
+ " 'O',\n",
+ " 'M',\n",
+ " '█',\n",
+ " '█',\n",
+ " '∴',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " ':',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'E',\n",
+ " 'L',\n",
+ " '.',\n",
+ " ':',\n",
+ " 'L',\n",
+ " '.',\n",
+ " 'N',\n",
+ " 'O',\n",
+ " '█',\n",
+ " '█',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '=',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'B',\n",
+ " 'O',\n",
+ " 'O',\n",
+ " 'D',\n",
+ " 'L',\n",
+ " 'E',\n",
+ " 'S',\n",
+ " '.',\n",
+ " '█',\n",
+ " '█',\n",
+ " '∴',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " ':',\n",
+ " 'V',\n",
+ " '.',\n",
+ " 'O',\n",
+ " '.',\n",
+ " 'U',\n",
+ " ':',\n",
+ " 'S',\n",
+ " 'N',\n",
+ " 'E',\n",
+ " 'D',\n",
+ " '█',\n",
+ " '█',\n",
+ " '.',\n",
+ " 'T',\n",
+ " 'A',\n",
+ " 'D',\n",
+ " '.',\n",
+ " 'I',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'I',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'T',\n",
+ " 'A',\n",
+ " '█',\n",
+ " '█',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'N',\n",
+ " 'E',\n",
+ " 'A',\n",
+ " 'T',\n",
+ " 'N',\n",
+ " 'E',\n",
+ " 's',\n",
+ " 'S',\n",
+ " '.',\n",
+ " '.',\n",
+ " ':',\n",
+ " '.',\n",
+ " 'W',\n",
+ " '█',\n",
+ " '█',\n",
+ " 'U',\n",
+ " 'V',\n",
+ " 'E',\n",
+ " 'A',\n",
+ " '.',\n",
+ " 'I',\n",
+ " '.',\n",
+ " 'L',\n",
+ " 'O',\n",
+ " 'T',\n",
+ " 'A',\n",
+ " 'H',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'K',\n",
+ " '█',\n",
+ " '█',\n",
+ " '.',\n",
+ " ':',\n",
+ " '.',\n",
+ " 'R',\n",
+ " ':',\n",
+ " 'A',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'P',\n",
+ " 'I',\n",
+ " 'X',\n",
+ " 'I',\n",
+ " 'E',\n",
+ " ':',\n",
+ " '.',\n",
+ " '█',\n",
+ " '█',\n",
+ " '.',\n",
+ " '.',\n",
+ " ':',\n",
+ " 'T',\n",
+ " '.',\n",
+ " 'T',\n",
+ " 'I',\n",
+ " '.',\n",
+ " '.',\n",
+ " 't',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'F',\n",
+ " '.',\n",
+ " '.',\n",
+ " '█',\n",
+ " '█',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'U',\n",
+ " 'H',\n",
+ " '.',\n",
+ " 'E',\n",
+ " 'F',\n",
+ " '.',\n",
+ " 'Y',\n",
+ " 'I',\n",
+ " 'R',\n",
+ " 'R',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█',\n",
+ " '█']"
]
},
"metadata": {},
@@ -13135,10 +22545,10 @@
{
"data": {
"text/plain": [
- "[307, 422]"
+ "[402, 407]"
]
},
- "execution_count": 63,
+ "execution_count": 59,
"metadata": {},
"output_type": "execute_result"
}
@@ -13158,16 +22568,12 @@
}
},
"source": [
- "That was an exciting game, ranging to the four edges of the board, with three bingos: INCIDENT,\n",
- "EOLOPILE and \n",
- "VOLUTIN (yes, those are actual words). \n",
- "\n",
- "But that was just one game; Let's get statistics for both players over, say, 10 games:"
+ "That was an exciting high-scoring game, but it was just one game. Let's get statistics for both players over, say, 10 games:"
]
},
{
"cell_type": "code",
- "execution_count": 64,
+ "execution_count": 60,
"metadata": {
"button": false,
"collapsed": false,
@@ -13182,9 +22588,9 @@
"name": "stdout",
"output_type": "stream",
"text": [
- "min: 278, median: 389, mean: 378.15, max: 447\n",
- "CPU times: user 26.7 s, sys: 313 ms, total: 27 s\n",
- "Wall time: 29.1 s\n"
+ "min: 307, median: 373.5, mean: 382.8, max: 459\n",
+ "CPU times: user 33.2 s, sys: 324 ms, total: 33.5 s\n",
+ "Wall time: 36.2 s\n"
]
}
],
@@ -13193,11 +22599,11 @@
"\n",
"games = 10\n",
"\n",
- "scores = sorted(score for game in range(games) \n",
- " for score in play_game(verbose=False))\n",
+ "scores = [score for game in range(games) \n",
+ " for score in play_game(verbose=False)]\n",
"\n",
"print('min: {}, median: {}, mean: {}, max: {}'.format(\n",
- " min(scores), scores[games], sum(scores)/(2*games), max(scores)))"
+ " min(scores), median(scores), mean(scores), max(scores)))"
]
},
{
@@ -13218,7 +22624,7 @@
},
{
"cell_type": "code",
- "execution_count": 65,
+ "execution_count": 61,
"metadata": {
"button": false,
"collapsed": false,
@@ -13235,7 +22641,7 @@
"'ok'"
]
},
- "execution_count": 65,
+ "execution_count": 61,
"metadata": {},
"output_type": "execute_result"
}
@@ -13258,10 +22664,16 @@
" assert dict_prefixes({'HELLO', 'HELP', 'HELPER'}) == {\n",
" '', 'H', 'HE', 'HEL', 'HELL', 'HELP', 'HELPE'}\n",
" \n",
- " assert rack_prefixes('ABC') == {'', 'A', 'AB', 'AC', 'B', 'BA', 'BAC', 'C', 'CA', 'CAB'}\n",
+ " assert set(rack_prefixes('ABC')) == {'', 'C', 'B', 'A', 'AB', 'CA', 'AC', 'BA', 'BAC', 'CAB'}\n",
" assert len(rack_prefixes('LETTERS')) == 155\n",
" assert len(rack_prefixes('LETTER_')) == 1590\n",
" \n",
+ " assert remove('SET', 'EELRTTS') == 'ELRT'\n",
+ " remove('TREaT', 'EELRTT_') == 'EL'\n",
+ " \n",
+ " assert len(WWF) == len(SCRABBLE) == 17 * 17\n",
+ " assert all(sq in EMPTY or sq == OFF for sq in WWF + SCRABBLE)\n",
+ " \n",
" DOWN = WWF.down\n",
" plays = {\n",
" Play(145, DOWN, 'ENTER', ''),\n",
@@ -13270,7 +22682,6 @@
" Play(158, DOWN, 'MUSES', ''),\n",
" Play(172, ACROSS, 'VIRULeNT', ''),\n",
" Play(213, ACROSS, 'RED', ''),\n",
- " Play(198, ACROSS, 'LYTHE', ''),\n",
" Play(147, DOWN, 'CHILDREN', ''),\n",
" Play(164, ACROSS, 'HEARD', ''),\n",
" Play(117, DOWN, 'BRIDLES', ''),\n",
@@ -13283,9 +22694,11 @@
" assert len(WWF) == len(board) == 17 * 17\n",
" assert all_anchors(WWF) == [144]\n",
" assert all_anchors(board) == [\n",
- " 100, 114, 115, 116, 121, 127, 128, 130, 137, 139, 141, 143, 146, 148, 149, 150, 154, 156, 157, 159, 160, \n",
- " 161, 163, 171, 180, 182, 183, 184, 188, 190, 191, 193, 194, 195, 197, 206, 208, 210, 212, 216, 217, 218, \n",
- " 225, 227, 230, 231, 233, 236, 243, 248, 250, 265, 267]\n",
+ " 100, 114, 115, 116, 121, 127, 128, 130, 137, 139, 141, 143, \n",
+ " 146, 148, 149, 150, 154, 156, 157, 159, 160, 161, 163, 171, \n",
+ " 180, 182, 183, 184, 188, 190, 191, 193, 194, 195, 197, 199, \n",
+ " 201, 206, 208, 210, 212, 216, 218, 225, 227, 230, 231, 233, \n",
+ " 236, 243, 248, 250, 265, 267]\n",
" \n",
" assert crossword(board, 141, ACROSS) == '.MUSES'\n",
" assert crossword(board, 148, ACROSS) == 'T.E'\n",
@@ -13340,7 +22753,7 @@
"1. **Is the code easy to follow?** \n",
" - I'm biased, but I think this code is easy to understand, test, and modify.\n",
"2. **Does the strategy score well?** \n",
- " - Yes: the mean and median are both well over 350, which is enough for [the elite club](https://www.facebook.com/WWF350Club) of high scorers. \n",
+ " - Yes: the mean and median scores are both over 350, which is enough for [the elite club](https://www.facebook.com/WWF350Club) of high scorers. \n",
" - No: this is not quite world-champion caliber.\n",
"3. **Is the code fast enough?** \n",
" - It takes less than 3 seconds to play a complete game for both players; that's fast enough for me. If desired, the code could be made about 100 times faster, by using multiprocessing, by caching more information, by not building explicit lists for intermediate results (although those intermediate results make the code easier to test), by using PyPy or Cython, or by porting to another language.\n",
@@ -13348,12 +22761,11 @@
" - We could give players the option of trading in tiles.\n",
" - We could explore better strategies. A better strategy might:\n",
" - Plan ahead to use high-scoring letters only with bonuses.\n",
- " - Manage letters to increase the chance of a bingo.\n",
" - Use blank tiles strategically, not greedily.\n",
+ " - Manage letters to increase the chance of a bingo.\n",
" - Play defensively to avoid giving the opponent good chances at high scores.\n",
" - Think ahead in the end game to go out before the opponent (or at least avoid being stuck with high-scoring letters in the rack).\n",
" - In the end game, know which tiles have not been played and thus which ones the opponent could have.\n",
- " - The display could be prettier.\n",
" - The game could be interfaced to an online game server.\n",
" - More complete unit tests would be great.\n",
" - We could compare this program to those of the [giants](https://www.cs.cmu.edu/afs/cs/academic/class/15451-s06/www/lectures/scrabble.pdf) whose [shoulders](http://ericsink.com/downloads/faster-scrabble-gordon.pdf) we [stood](http://web.archive.org/web/20040116175427/http://www.math-info.univ-paris5.fr/~bouzy/ProjetUE3/Scrabble.pdf) [upon](http://www.gtoal.com/wordgames/scrabble.html).\n",
|