Deleting files from git
authorNeil Smith <neil.git@njae.me.uk>
Thu, 22 Jan 2015 21:31:59 +0000 (21:31 +0000)
committerNeil Smith <neil.git@njae.me.uk>
Thu, 22 Jan 2015 21:31:59 +0000 (21:31 +0000)
hangman/hangman-better.ipynb [deleted file]
hangman/hangman-both.ipynb [deleted file]
hangman/hangman-guesser.ipynb [deleted file]
hangman/hangman-logging.ipynb [deleted file]
hangman/hangman-setter.ipynb [deleted file]

diff --git a/hangman/hangman-better.ipynb b/hangman/hangman-better.ipynb
deleted file mode 100644 (file)
index 20a12e0..0000000
+++ /dev/null
@@ -1,2335 +0,0 @@
-{
- "metadata": {
-  "name": "",
-  "signature": "sha256:32b3b300745f022158bfde0b3fc0a50b11d36551211371d50140e9f9d2a7b8e1"
- },
- "nbformat": 3,
- "nbformat_minor": 0,
- "worksheets": [
-  {
-   "cells": [
-    {
-     "cell_type": "code",
-     "collapsed": false,
-     "input": [
-      "import re\n",
-      "import random\n",
-      "import string\n",
-      "import collections"
-     ],
-     "language": "python",
-     "metadata": {},
-     "outputs": [],
-     "prompt_number": 1
-    },
-    {
-     "cell_type": "code",
-     "collapsed": false,
-     "input": [
-      "WORDS = [w.strip() for w in open('/usr/share/dict/british-english').readlines() \n",
-      "         if re.match(r'^[a-z]*$', w.strip())]"
-     ],
-     "language": "python",
-     "metadata": {},
-     "outputs": [],
-     "prompt_number": 2
-    },
-    {
-     "cell_type": "code",
-     "collapsed": false,
-     "input": [
-      "LETTER_COUNTS = collections.Counter(l.lower() for l in open('sherlock-holmes.txt').read() if l in string.ascii_letters)\n",
-      "LETTERS_IN_ORDER = [p[0] for p in LETTER_COUNTS.most_common()]"
-     ],
-     "language": "python",
-     "metadata": {},
-     "outputs": [],
-     "prompt_number": 3
-    },
-    {
-     "cell_type": "code",
-     "collapsed": false,
-     "input": [
-      "STARTING_LIVES = 10"
-     ],
-     "language": "python",
-     "metadata": {},
-     "outputs": [],
-     "prompt_number": 4
-    },
-    {
-     "cell_type": "code",
-     "collapsed": false,
-     "input": [
-      "class Game:\n",
-      "    def __init__(self, target, player=None, lives=STARTING_LIVES):\n",
-      "        self.lives = lives\n",
-      "        self.player = player\n",
-      "        self.target = target\n",
-      "        self.discovered = list('_' * len(target))\n",
-      "        self.wrong_letters = []\n",
-      "        self.game_finished = False\n",
-      "        self.game_won = False\n",
-      "        self.game_lost = False\n",
-      "    \n",
-      "    def find_all(self, letter):\n",
-      "        return [p for p, l in enumerate(self.target) if l == letter]\n",
-      "    \n",
-      "    def update_discovered_word(self, guessed_letter):\n",
-      "        locations = self.find_all(guessed_letter)\n",
-      "        for location in locations:\n",
-      "            self.discovered[location] = guessed_letter\n",
-      "        return self.discovered\n",
-      "    \n",
-      "    def do_turn(self):\n",
-      "        if self.player:\n",
-      "            guess = self.player.guess(self.discovered, self.wrong_letters, self.lives)\n",
-      "        else:\n",
-      "            guess = self.ask_for_guess()\n",
-      "        if guess in self.target:\n",
-      "            self.update_discovered_word(guess)\n",
-      "        else:\n",
-      "            self.lives -= 1\n",
-      "            if guess not in self.wrong_letters:\n",
-      "                self.wrong_letters += [guess]\n",
-      "        if self.lives == 0:\n",
-      "            self.game_finished = True\n",
-      "            self.game_lost = True\n",
-      "        if '_' not in self.discovered:\n",
-      "            self.game_finished = True\n",
-      "            self.game_won = True\n",
-      "            \n",
-      "    def ask_for_guess(self):\n",
-      "        print('Word:', ' '.join(self.discovered), \n",
-      "              ' : Lives =', self.lives, \n",
-      "              ', wrong guesses:', ' '.join(sorted(self.wrong_letters)))\n",
-      "        guess = input('Enter letter: ').strip().lower()[0]\n",
-      "        return guess\n",
-      "    \n",
-      "    def play_game(self):\n",
-      "        while not self.game_finished:\n",
-      "            self.do_turn()\n",
-      "        if not self.player:\n",
-      "            self.report_on_game()\n",
-      "        return self.game_won\n",
-      "    \n",
-      "    def report_on_game(self):\n",
-      "        if self.game_won:\n",
-      "            print('You won! The word was', self.target)\n",
-      "        else:\n",
-      "            print('You lost. The word was', self.target)\n",
-      "        return self.game_won"
-     ],
-     "language": "python",
-     "metadata": {},
-     "outputs": [],
-     "prompt_number": 5
-    },
-    {
-     "cell_type": "code",
-     "collapsed": false,
-     "input": [
-      "class PlayerFixedOrder:\n",
-      "    def __init__(self, ordered_letters):\n",
-      "        self.ordered_letters = ordered_letters\n",
-      "        \n",
-      "    def guess(self, discovered, missed, lives):\n",
-      "        guessed_letters = [l.lower() for l in discovered + missed if l in string.ascii_letters]\n",
-      "        return [l for l in self.ordered_letters if l not in guessed_letters][0]"
-     ],
-     "language": "python",
-     "metadata": {},
-     "outputs": [],
-     "prompt_number": 6
-    },
-    {
-     "cell_type": "code",
-     "collapsed": false,
-     "input": [
-      "class PlayerAlphabetical(PlayerFixedOrder):\n",
-      "    def __init__(self):\n",
-      "        super().__init__(string.ascii_lowercase)\n",
-      "\n",
-      "class PlayerFreqOrdered(PlayerFixedOrder):\n",
-      "    def __init__(self):\n",
-      "        super().__init__(LETTERS_IN_ORDER)\n"
-     ],
-     "language": "python",
-     "metadata": {},
-     "outputs": [],
-     "prompt_number": 7
-    },
-    {
-     "cell_type": "code",
-     "collapsed": false,
-     "input": [
-      "%%timeit\n",
-      "\n",
-      "wins = 0\n",
-      "for _ in range(1000):\n",
-      "    g = Game(random.choice(WORDS), player=PlayerAlphabetical())\n",
-      "    g.play_game()\n",
-      "    if g.game_won:\n",
-      "        wins += 1\n",
-      "print(wins)"
-     ],
-     "language": "python",
-     "metadata": {},
-     "outputs": [
-      {
-       "output_type": "stream",
-       "stream": "stdout",
-       "text": [
-        "50\n",
-        "59"
-       ]
-      },
-      {
-       "output_type": "stream",
-       "stream": "stdout",
-       "text": [
-        "\n",
-        "33"
-       ]
-      },
-      {
-       "output_type": "stream",
-       "stream": "stdout",
-       "text": [
-        "\n",
-        "53"
-       ]
-      },
-      {
-       "output_type": "stream",
-       "stream": "stdout",
-       "text": [
-        "\n",
-        "49"
-       ]
-      },
-      {
-       "output_type": "stream",
-       "stream": "stdout",
-       "text": [
-        "\n",
-        "42"
-       ]
-      },
-      {
-       "output_type": "stream",
-       "stream": "stdout",
-       "text": [
-        "\n",
-        "43"
-       ]
-      },
-      {
-       "output_type": "stream",
-       "stream": "stdout",
-       "text": [
-        "\n",
-        "54"
-       ]
-      },
-      {
-       "output_type": "stream",
-       "stream": "stdout",
-       "text": [
-        "\n",
-        "49"
-       ]
-      },
-      {
-       "output_type": "stream",
-       "stream": "stdout",
-       "text": [
-        "\n",
-        "54"
-       ]
-      },
-      {
-       "output_type": "stream",
-       "stream": "stdout",
-       "text": [
-        "\n",
-        "45"
-       ]
-      },
-      {
-       "output_type": "stream",
-       "stream": "stdout",
-       "text": [
-        "\n",
-        "46"
-       ]
-      },
-      {
-       "output_type": "stream",
-       "stream": "stdout",
-       "text": [
-        "\n",
-        "44"
-       ]
-      },
-      {
-       "output_type": "stream",
-       "stream": "stdout",
-       "text": [
-        "\n",
-        "45"
-       ]
-      },
-      {
-       "output_type": "stream",
-       "stream": "stdout",
-       "text": [
-        "\n",
-        "48"
-       ]
-      },
-      {
-       "output_type": "stream",
-       "stream": "stdout",
-       "text": [
-        "\n",
-        "51"
-       ]
-      },
-      {
-       "output_type": "stream",
-       "stream": "stdout",
-       "text": [
-        "\n",
-        "46"
-       ]
-      },
-      {
-       "output_type": "stream",
-       "stream": "stdout",
-       "text": [
-        "\n",
-        "54"
-       ]
-      },
-      {
-       "output_type": "stream",
-       "stream": "stdout",
-       "text": [
-        "\n",
-        "49"
-       ]
-      },
-      {
-       "output_type": "stream",
-       "stream": "stdout",
-       "text": [
-        "\n",
-        "44"
-       ]
-      },
-      {
-       "output_type": "stream",
-       "stream": "stdout",
-       "text": [
-        "\n",
-        "42"
-       ]
-      },
-      {
-       "output_type": "stream",
-       "stream": "stdout",
-       "text": [
-        "\n",
-        "44"
-       ]
-      },
-      {
-       "output_type": "stream",
-       "stream": "stdout",
-       "text": [
-        "\n",
-        "48"
-       ]
-      },
-      {
-       "output_type": "stream",
-       "stream": "stdout",
-       "text": [
-        "\n",
-        "39"
-       ]
-      },
-      {
-       "output_type": "stream",
-       "stream": "stdout",
-       "text": [
-        "\n",
-        "46"
-       ]
-      },
-      {
-       "output_type": "stream",
-       "stream": "stdout",
-       "text": [
-        "\n",
-        "43"
-       ]
-      },
-      {
-       "output_type": "stream",
-       "stream": "stdout",
-       "text": [
-        "\n",
-        "50"
-       ]
-      },
-      {
-       "output_type": "stream",
-       "stream": "stdout",
-       "text": [
-        "\n",
-        "47"
-       ]
-      },
-      {
-       "output_type": "stream",
-       "stream": "stdout",
-       "text": [
-        "\n",
-        "52"
-       ]
-      },
-      {
-       "output_type": "stream",
-       "stream": "stdout",
-       "text": [
-        "\n",
-        "46"
-       ]
-      },
-      {
-       "output_type": "stream",
-       "stream": "stdout",
-       "text": [
-        "\n",
-        "55"
-       ]
-      },
-      {
-       "output_type": "stream",
-       "stream": "stdout",
-       "text": [
-        "\n",
-        "47"
-       ]
-      },
-      {
-       "output_type": "stream",
-       "stream": "stdout",
-       "text": [
-        "\n",
-        "39"
-       ]
-      },
-      {
-       "output_type": "stream",
-       "stream": "stdout",
-       "text": [
-        "\n",
-        "55"
-       ]
-      },
-      {
-       "output_type": "stream",
-       "stream": "stdout",
-       "text": [
-        "\n",
-        "40"
-       ]
-      },
-      {
-       "output_type": "stream",
-       "stream": "stdout",
-       "text": [
-        "\n",
-        "46"
-       ]
-      },
-      {
-       "output_type": "stream",
-       "stream": "stdout",
-       "text": [
-        "\n",
-        "53"
-       ]
-      },
-      {
-       "output_type": "stream",
-       "stream": "stdout",
-       "text": [
-        "\n",
-        "43"
-       ]
-      },
-      {
-       "output_type": "stream",
-       "stream": "stdout",
-       "text": [
-        "\n",
-        "40"
-       ]
-      },
-      {
-       "output_type": "stream",
-       "stream": "stdout",
-       "text": [
-        "\n",
-        "53"
-       ]
-      },
-      {
-       "output_type": "stream",
-       "stream": "stdout",
-       "text": [
-        "\n",
-        "41"
-       ]
-      },
-      {
-       "output_type": "stream",
-       "stream": "stdout",
-       "text": [
-        "\n",
-        "10 loops, best of 3: 64.2 ms per loop\n"
-       ]
-      }
-     ],
-     "prompt_number": 54
-    },
-    {
-     "cell_type": "code",
-     "collapsed": false,
-     "input": [
-      "%%timeit\n",
-      "\n",
-      "wins = 0\n",
-      "for _ in range(1000):\n",
-      "    g = Game(random.choice(WORDS), player=PlayerFreqOrdered())\n",
-      "    g.play_game()\n",
-      "    if g.game_won:\n",
-      "        wins += 1\n",
-      "print(wins)"
-     ],
-     "language": "python",
-     "metadata": {},
-     "outputs": [
-      {
-       "output_type": "stream",
-       "stream": "stdout",
-       "text": [
-        "334\n",
-        "342"
-       ]
-      },
-      {
-       "output_type": "stream",
-       "stream": "stdout",
-       "text": [
-        "\n",
-        "318"
-       ]
-      },
-      {
-       "output_type": "stream",
-       "stream": "stdout",
-       "text": [
-        "\n",
-        "313"
-       ]
-      },
-      {
-       "output_type": "stream",
-       "stream": "stdout",
-       "text": [
-        "\n",
-        "353"
-       ]
-      },
-      {
-       "output_type": "stream",
-       "stream": "stdout",
-       "text": [
-        "\n",
-        "304"
-       ]
-      },
-      {
-       "output_type": "stream",
-       "stream": "stdout",
-       "text": [
-        "\n",
-        "332"
-       ]
-      },
-      {
-       "output_type": "stream",
-       "stream": "stdout",
-       "text": [
-        "\n",
-        "313"
-       ]
-      },
-      {
-       "output_type": "stream",
-       "stream": "stdout",
-       "text": [
-        "\n",
-        "335"
-       ]
-      },
-      {
-       "output_type": "stream",
-       "stream": "stdout",
-       "text": [
-        "\n",
-        "339"
-       ]
-      },
-      {
-       "output_type": "stream",
-       "stream": "stdout",
-       "text": [
-        "\n",
-        "328"
-       ]
-      },
-      {
-       "output_type": "stream",
-       "stream": "stdout",
-       "text": [
-        "\n",
-        "334"
-       ]
-      },
-      {
-       "output_type": "stream",
-       "stream": "stdout",
-       "text": [
-        "\n",
-        "322"
-       ]
-      },
-      {
-       "output_type": "stream",
-       "stream": "stdout",
-       "text": [
-        "\n",
-        "347"
-       ]
-      },
-      {
-       "output_type": "stream",
-       "stream": "stdout",
-       "text": [
-        "\n",
-        "334"
-       ]
-      },
-      {
-       "output_type": "stream",
-       "stream": "stdout",
-       "text": [
-        "\n",
-        "340"
-       ]
-      },
-      {
-       "output_type": "stream",
-       "stream": "stdout",
-       "text": [
-        "\n",
-        "319"
-       ]
-      },
-      {
-       "output_type": "stream",
-       "stream": "stdout",
-       "text": [
-        "\n",
-        "365"
-       ]
-      },
-      {
-       "output_type": "stream",
-       "stream": "stdout",
-       "text": [
-        "\n",
-        "315"
-       ]
-      },
-      {
-       "output_type": "stream",
-       "stream": "stdout",
-       "text": [
-        "\n",
-        "307"
-       ]
-      },
-      {
-       "output_type": "stream",
-       "stream": "stdout",
-       "text": [
-        "\n",
-        "314"
-       ]
-      },
-      {
-       "output_type": "stream",
-       "stream": "stdout",
-       "text": [
-        "\n",
-        "317"
-       ]
-      },
-      {
-       "output_type": "stream",
-       "stream": "stdout",
-       "text": [
-        "\n",
-        "310"
-       ]
-      },
-      {
-       "output_type": "stream",
-       "stream": "stdout",
-       "text": [
-        "\n",
-        "324"
-       ]
-      },
-      {
-       "output_type": "stream",
-       "stream": "stdout",
-       "text": [
-        "\n",
-        "313"
-       ]
-      },
-      {
-       "output_type": "stream",
-       "stream": "stdout",
-       "text": [
-        "\n",
-        "318"
-       ]
-      },
-      {
-       "output_type": "stream",
-       "stream": "stdout",
-       "text": [
-        "\n",
-        "314"
-       ]
-      },
-      {
-       "output_type": "stream",
-       "stream": "stdout",
-       "text": [
-        "\n",
-        "324"
-       ]
-      },
-      {
-       "output_type": "stream",
-       "stream": "stdout",
-       "text": [
-        "\n",
-        "297"
-       ]
-      },
-      {
-       "output_type": "stream",
-       "stream": "stdout",
-       "text": [
-        "\n",
-        "335"
-       ]
-      },
-      {
-       "output_type": "stream",
-       "stream": "stdout",
-       "text": [
-        "\n",
-        "335"
-       ]
-      },
-      {
-       "output_type": "stream",
-       "stream": "stdout",
-       "text": [
-        "\n",
-        "343"
-       ]
-      },
-      {
-       "output_type": "stream",
-       "stream": "stdout",
-       "text": [
-        "\n",
-        "342"
-       ]
-      },
-      {
-       "output_type": "stream",
-       "stream": "stdout",
-       "text": [
-        "\n",
-        "318"
-       ]
-      },
-      {
-       "output_type": "stream",
-       "stream": "stdout",
-       "text": [
-        "\n",
-        "306"
-       ]
-      },
-      {
-       "output_type": "stream",
-       "stream": "stdout",
-       "text": [
-        "\n",
-        "353"
-       ]
-      },
-      {
-       "output_type": "stream",
-       "stream": "stdout",
-       "text": [
-        "\n",
-        "332"
-       ]
-      },
-      {
-       "output_type": "stream",
-       "stream": "stdout",
-       "text": [
-        "\n",
-        "330"
-       ]
-      },
-      {
-       "output_type": "stream",
-       "stream": "stdout",
-       "text": [
-        "\n",
-        "334"
-       ]
-      },
-      {
-       "output_type": "stream",
-       "stream": "stdout",
-       "text": [
-        "\n",
-        "307"
-       ]
-      },
-      {
-       "output_type": "stream",
-       "stream": "stdout",
-       "text": [
-        "\n",
-        "306"
-       ]
-      },
-      {
-       "output_type": "stream",
-       "stream": "stdout",
-       "text": [
-        "\n",
-        "10 loops, best of 3: 96.2 ms per loop\n"
-       ]
-      }
-     ],
-     "prompt_number": 56
-    },
-    {
-     "cell_type": "code",
-     "collapsed": false,
-     "input": [
-      "%%timeit\n",
-      "\n",
-      "wins = 0\n",
-      "for _ in range(1000):\n",
-      "    g = Game(random.choice(WORDS), player=PlayerFixedOrder(list(reversed(string.ascii_lowercase))))\n",
-      "    g.play_game()\n",
-      "    if g.game_won:\n",
-      "        wins += 1\n",
-      "print(wins)"
-     ],
-     "language": "python",
-     "metadata": {},
-     "outputs": [
-      {
-       "output_type": "stream",
-       "stream": "stdout",
-       "text": [
-        "7\n",
-        "5"
-       ]
-      },
-      {
-       "output_type": "stream",
-       "stream": "stdout",
-       "text": [
-        "\n",
-        "6"
-       ]
-      },
-      {
-       "output_type": "stream",
-       "stream": "stdout",
-       "text": [
-        "\n",
-        "7"
-       ]
-      },
-      {
-       "output_type": "stream",
-       "stream": "stdout",
-       "text": [
-        "\n",
-        "7"
-       ]
-      },
-      {
-       "output_type": "stream",
-       "stream": "stdout",
-       "text": [
-        "\n",
-        "10"
-       ]
-      },
-      {
-       "output_type": "stream",
-       "stream": "stdout",
-       "text": [
-        "\n",
-        "8"
-       ]
-      },
-      {
-       "output_type": "stream",
-       "stream": "stdout",
-       "text": [
-        "\n",
-        "5"
-       ]
-      },
-      {
-       "output_type": "stream",
-       "stream": "stdout",
-       "text": [
-        "\n",
-        "5"
-       ]
-      },
-      {
-       "output_type": "stream",
-       "stream": "stdout",
-       "text": [
-        "\n",
-        "5"
-       ]
-      },
-      {
-       "output_type": "stream",
-       "stream": "stdout",
-       "text": [
-        "\n",
-        "9"
-       ]
-      },
-      {
-       "output_type": "stream",
-       "stream": "stdout",
-       "text": [
-        "\n",
-        "3"
-       ]
-      },
-      {
-       "output_type": "stream",
-       "stream": "stdout",
-       "text": [
-        "\n",
-        "8"
-       ]
-      },
-      {
-       "output_type": "stream",
-       "stream": "stdout",
-       "text": [
-        "\n",
-        "13"
-       ]
-      },
-      {
-       "output_type": "stream",
-       "stream": "stdout",
-       "text": [
-        "\n",
-        "8"
-       ]
-      },
-      {
-       "output_type": "stream",
-       "stream": "stdout",
-       "text": [
-        "\n",
-        "10"
-       ]
-      },
-      {
-       "output_type": "stream",
-       "stream": "stdout",
-       "text": [
-        "\n",
-        "9"
-       ]
-      },
-      {
-       "output_type": "stream",
-       "stream": "stdout",
-       "text": [
-        "\n",
-        "9"
-       ]
-      },
-      {
-       "output_type": "stream",
-       "stream": "stdout",
-       "text": [
-        "\n",
-        "12"
-       ]
-      },
-      {
-       "output_type": "stream",
-       "stream": "stdout",
-       "text": [
-        "\n",
-        "6"
-       ]
-      },
-      {
-       "output_type": "stream",
-       "stream": "stdout",
-       "text": [
-        "\n",
-        "6"
-       ]
-      },
-      {
-       "output_type": "stream",
-       "stream": "stdout",
-       "text": [
-        "\n",
-        "14"
-       ]
-      },
-      {
-       "output_type": "stream",
-       "stream": "stdout",
-       "text": [
-        "\n",
-        "9"
-       ]
-      },
-      {
-       "output_type": "stream",
-       "stream": "stdout",
-       "text": [
-        "\n",
-        "1"
-       ]
-      },
-      {
-       "output_type": "stream",
-       "stream": "stdout",
-       "text": [
-        "\n",
-        "8"
-       ]
-      },
-      {
-       "output_type": "stream",
-       "stream": "stdout",
-       "text": [
-        "\n",
-        "8"
-       ]
-      },
-      {
-       "output_type": "stream",
-       "stream": "stdout",
-       "text": [
-        "\n",
-        "7"
-       ]
-      },
-      {
-       "output_type": "stream",
-       "stream": "stdout",
-       "text": [
-        "\n",
-        "9"
-       ]
-      },
-      {
-       "output_type": "stream",
-       "stream": "stdout",
-       "text": [
-        "\n",
-        "10"
-       ]
-      },
-      {
-       "output_type": "stream",
-       "stream": "stdout",
-       "text": [
-        "\n",
-        "6"
-       ]
-      },
-      {
-       "output_type": "stream",
-       "stream": "stdout",
-       "text": [
-        "\n",
-        "7"
-       ]
-      },
-      {
-       "output_type": "stream",
-       "stream": "stdout",
-       "text": [
-        "\n",
-        "6"
-       ]
-      },
-      {
-       "output_type": "stream",
-       "stream": "stdout",
-       "text": [
-        "\n",
-        "4"
-       ]
-      },
-      {
-       "output_type": "stream",
-       "stream": "stdout",
-       "text": [
-        "\n",
-        "6"
-       ]
-      },
-      {
-       "output_type": "stream",
-       "stream": "stdout",
-       "text": [
-        "\n",
-        "3"
-       ]
-      },
-      {
-       "output_type": "stream",
-       "stream": "stdout",
-       "text": [
-        "\n",
-        "7"
-       ]
-      },
-      {
-       "output_type": "stream",
-       "stream": "stdout",
-       "text": [
-        "\n",
-        "7"
-       ]
-      },
-      {
-       "output_type": "stream",
-       "stream": "stdout",
-       "text": [
-        "\n",
-        "10"
-       ]
-      },
-      {
-       "output_type": "stream",
-       "stream": "stdout",
-       "text": [
-        "\n",
-        "11"
-       ]
-      },
-      {
-       "output_type": "stream",
-       "stream": "stdout",
-       "text": [
-        "\n",
-        "6"
-       ]
-      },
-      {
-       "output_type": "stream",
-       "stream": "stdout",
-       "text": [
-        "\n",
-        "4"
-       ]
-      },
-      {
-       "output_type": "stream",
-       "stream": "stdout",
-       "text": [
-        "\n",
-        "10 loops, best of 3: 74.6 ms per loop\n"
-       ]
-      }
-     ],
-     "prompt_number": 57
-    },
-    {
-     "cell_type": "code",
-     "collapsed": false,
-     "input": [
-      "DICT_COUNTS = collections.Counter(l.lower() for l in open('/usr/share/dict/british-english').read() if l in string.ascii_letters)\n",
-      "DICT_LETTERS_IN_ORDER = [p[0] for p in DICT_COUNTS.most_common()]"
-     ],
-     "language": "python",
-     "metadata": {},
-     "outputs": [],
-     "prompt_number": 11
-    },
-    {
-     "cell_type": "code",
-     "collapsed": false,
-     "input": [
-      "DICT_COUNTS"
-     ],
-     "language": "python",
-     "metadata": {},
-     "outputs": [
-      {
-       "metadata": {},
-       "output_type": "pyout",
-       "prompt_number": 12,
-       "text": [
-        "Counter({'s': 91332, 'e': 88692, 'i': 66900, 'a': 64468, 'r': 57460, 'n': 57128, 't': 52949, 'o': 49121, 'l': 40995, 'c': 31854, 'd': 28505, 'u': 26372, 'g': 22693, 'm': 22549, 'p': 22249, 'h': 19337, 'b': 15540, 'y': 12652, 'f': 10679, 'k': 8386, 'v': 8000, 'w': 7505, 'x': 2125, 'z': 2058, 'j': 1950, 'q': 1536})"
-       ]
-      }
-     ],
-     "prompt_number": 12
-    },
-    {
-     "cell_type": "code",
-     "collapsed": false,
-     "input": [
-      "print(DICT_LETTERS_IN_ORDER)\n",
-      "print(LETTERS_IN_ORDER)"
-     ],
-     "language": "python",
-     "metadata": {},
-     "outputs": [
-      {
-       "output_type": "stream",
-       "stream": "stdout",
-       "text": [
-        "['s', 'e', 'i', 'a', 'r', 'n', 't', 'o', 'l', 'c', 'd', 'u', 'g', 'm', 'p', 'h', 'b', 'y', 'f', 'k', 'v', 'w', 'x', 'z', 'j', 'q']\n",
-        "['e', 't', 'a', 'o', 'i', 'h', 'n', 's', 'r', 'd', 'l', 'u', 'm', 'w', 'c', 'y', 'f', 'g', 'p', 'b', 'v', 'k', 'x', 'j', 'q', 'z']\n"
-       ]
-      }
-     ],
-     "prompt_number": 13
-    },
-    {
-     "cell_type": "code",
-     "collapsed": false,
-     "input": [
-      "wins = 0\n",
-      "for _ in range(1000):\n",
-      "    g = Game(random.choice(WORDS), player=PlayerFixedOrder(DICT_LETTERS_IN_ORDER))\n",
-      "    g.play_game()\n",
-      "    if g.game_won:\n",
-      "        wins += 1\n",
-      "print(wins)"
-     ],
-     "language": "python",
-     "metadata": {},
-     "outputs": [
-      {
-       "output_type": "stream",
-       "stream": "stdout",
-       "text": [
-        "440\n"
-       ]
-      }
-     ],
-     "prompt_number": 14
-    },
-    {
-     "cell_type": "code",
-     "collapsed": false,
-     "input": [
-      "class PlayerAdaptiveLength:\n",
-      "    def __init__(self, words):\n",
-      "        self.all_words = words\n",
-      "        self.candidate_words = None\n",
-      "        \n",
-      "    def guess(self, discovered, missed, lives):\n",
-      "        if not self.candidate_words:\n",
-      "            self.set_ordered_letters(len(discovered))\n",
-      "        guessed_letters = [l.lower() for l in discovered + missed if l in string.ascii_letters]\n",
-      "        return [l for l in self.ordered_letters if l not in guessed_letters][0]\n",
-      "    \n",
-      "    def set_ordered_letters(self, word_len):\n",
-      "        self.candidate_words = [w for w in self.all_words if len(w) == word_len]\n",
-      "        counts = collections.Counter(l.lower() for l in ''.join(self.candidate_words) if l in string.ascii_letters)\n",
-      "        self.ordered_letters = [p[0] for p in counts.most_common()]"
-     ],
-     "language": "python",
-     "metadata": {},
-     "outputs": [],
-     "prompt_number": 33
-    },
-    {
-     "cell_type": "code",
-     "collapsed": false,
-     "input": [
-      "wins = 0\n",
-      "for _ in range(1000):\n",
-      "    g = Game(random.choice(WORDS), player=PlayerAdaptiveLength(WORDS))\n",
-      "    g.play_game()\n",
-      "    if g.game_won:\n",
-      "        wins += 1\n",
-      "print(wins)"
-     ],
-     "language": "python",
-     "metadata": {},
-     "outputs": [
-      {
-       "output_type": "stream",
-       "stream": "stdout",
-       "text": [
-        "474\n"
-       ]
-      }
-     ],
-     "prompt_number": 34
-    },
-    {
-     "cell_type": "code",
-     "collapsed": false,
-     "input": [
-      "class PlayerAdaptiveIncludedLetters:\n",
-      "    def __init__(self, words):\n",
-      "        self.candidate_words = words\n",
-      "        \n",
-      "    def guess(self, discovered, missed, lives):\n",
-      "        self.filter_candidate_words(discovered)\n",
-      "        self.set_ordered_letters()\n",
-      "        guessed_letters = [l.lower() for l in discovered + missed if l in string.ascii_letters]\n",
-      "        return [l for l in self.ordered_letters if l not in guessed_letters][0]\n",
-      "    \n",
-      "    def filter_candidate_words(self, discovered):\n",
-      "        exp = re.compile('^' + ''.join(discovered).replace('_', '.') + '$')\n",
-      "        self.candidate_words = [w for w in self.candidate_words if exp.match(w)]\n",
-      "        \n",
-      "    def set_ordered_letters(self):\n",
-      "        counts = collections.Counter(l.lower() for l in ''.join(self.candidate_words) if l in string.ascii_letters)\n",
-      "        self.ordered_letters = [p[0] for p in counts.most_common()]"
-     ],
-     "language": "python",
-     "metadata": {},
-     "outputs": [],
-     "prompt_number": 35
-    },
-    {
-     "cell_type": "code",
-     "collapsed": false,
-     "input": [
-      "wins = 0\n",
-      "for _ in range(1000):\n",
-      "    g = Game(random.choice(WORDS), player=PlayerAdaptiveIncludedLetters(WORDS))\n",
-      "    g.play_game()\n",
-      "    if g.game_won:\n",
-      "        wins += 1\n",
-      "print(wins)"
-     ],
-     "language": "python",
-     "metadata": {},
-     "outputs": [
-      {
-       "output_type": "stream",
-       "stream": "stdout",
-       "text": [
-        "982\n"
-       ]
-      }
-     ],
-     "prompt_number": 36
-    },
-    {
-     "cell_type": "code",
-     "collapsed": false,
-     "input": [
-      "re.match('^[^xaz]*$', 'happy')"
-     ],
-     "language": "python",
-     "metadata": {},
-     "outputs": [],
-     "prompt_number": 37
-    },
-    {
-     "cell_type": "code",
-     "collapsed": false,
-     "input": [
-      "class PlayerAdaptiveExcludedLetters:\n",
-      "    def __init__(self, words):\n",
-      "        self.candidate_words = words\n",
-      "        \n",
-      "    def guess(self, discovered, missed, lives):\n",
-      "        self.filter_candidate_words(missed)\n",
-      "        self.set_ordered_letters()\n",
-      "        guessed_letters = [l.lower() for l in discovered + missed if l in string.ascii_letters]\n",
-      "        return [l for l in self.ordered_letters if l not in guessed_letters][0]\n",
-      "    \n",
-      "    def filter_candidate_words(self, missed):\n",
-      "        if missed:\n",
-      "            exp = re.compile('^[^' + ''.join(missed) + ']*$')\n",
-      "            self.candidate_words = [w for w in self.candidate_words if exp.match(w)]\n",
-      "        \n",
-      "    def set_ordered_letters(self):\n",
-      "        counts = collections.Counter(l.lower() for l in ''.join(self.candidate_words) if l in string.ascii_letters)\n",
-      "        self.ordered_letters = [p[0] for p in counts.most_common()]"
-     ],
-     "language": "python",
-     "metadata": {},
-     "outputs": [],
-     "prompt_number": 38
-    },
-    {
-     "cell_type": "code",
-     "collapsed": false,
-     "input": [
-      "wins = 0\n",
-      "for _ in range(1000):\n",
-      "    g = Game(random.choice(WORDS), player=PlayerAdaptiveExcludedLetters(WORDS))\n",
-      "    g.play_game()\n",
-      "    if g.game_won:\n",
-      "        wins += 1\n",
-      "print(wins)"
-     ],
-     "language": "python",
-     "metadata": {},
-     "outputs": [
-      {
-       "output_type": "stream",
-       "stream": "stdout",
-       "text": [
-        "502\n"
-       ]
-      }
-     ],
-     "prompt_number": 39
-    },
-    {
-     "cell_type": "code",
-     "collapsed": false,
-     "input": [
-      "class PlayerAdaptivePattern:\n",
-      "    def __init__(self, words):\n",
-      "        self.candidate_words = words\n",
-      "        \n",
-      "    def guess(self, discovered, missed, lives):\n",
-      "        self.filter_candidate_words(discovered, missed)\n",
-      "        self.set_ordered_letters()\n",
-      "        guessed_letters = [l.lower() for l in discovered + missed if l in string.ascii_letters]\n",
-      "        return [l for l in self.ordered_letters if l not in guessed_letters][0]\n",
-      "    \n",
-      "    def filter_candidate_words(self, discovered, missed):\n",
-      "        attempted_letters = list(set(l.lower() for l in discovered + missed if l in string.ascii_letters))\n",
-      "        if attempted_letters:\n",
-      "            exclusion_pattern = '[^' + ''.join(attempted_letters) + ']'\n",
-      "        else:\n",
-      "            exclusion_pattern = '.'\n",
-      "        exp = re.compile('^' + ''.join(discovered).replace('_', exclusion_pattern) + '$')\n",
-      "        self.candidate_words = [w for w in self.candidate_words if exp.match(w)]\n",
-      "        \n",
-      "    def set_ordered_letters(self):\n",
-      "        counts = collections.Counter(l.lower() for l in ''.join(self.candidate_words) if l in string.ascii_letters)\n",
-      "        self.ordered_letters = [p[0] for p in counts.most_common()]\n"
-     ],
-     "language": "python",
-     "metadata": {},
-     "outputs": [],
-     "prompt_number": 40
-    },
-    {
-     "cell_type": "code",
-     "collapsed": false,
-     "input": [
-      "wins = 0\n",
-      "for _ in range(1000):\n",
-      "    g = Game(random.choice(WORDS), player=PlayerAdaptivePattern(WORDS))\n",
-      "    g.play_game()\n",
-      "    if g.game_won:\n",
-      "        wins += 1\n",
-      "print(wins)"
-     ],
-     "language": "python",
-     "metadata": {},
-     "outputs": [
-      {
-       "output_type": "stream",
-       "stream": "stdout",
-       "text": [
-        "993\n"
-       ]
-      }
-     ],
-     "prompt_number": 41
-    },
-    {
-     "cell_type": "code",
-     "collapsed": false,
-     "input": [
-      "%%timeit\n",
-      "\n",
-      "wins = 0\n",
-      "for _ in range(1000):\n",
-      "    g = Game(random.choice(WORDS), player=PlayerAdaptivePattern(WORDS))\n",
-      "    g.play_game()\n",
-      "    if g.game_won:\n",
-      "        wins += 1\n",
-      "print(wins)"
-     ],
-     "language": "python",
-     "metadata": {},
-     "outputs": [
-      {
-       "output_type": "stream",
-       "stream": "stdout",
-       "text": [
-        "994\n",
-        "993"
-       ]
-      },
-      {
-       "output_type": "stream",
-       "stream": "stdout",
-       "text": [
-        "\n",
-        "987"
-       ]
-      },
-      {
-       "output_type": "stream",
-       "stream": "stdout",
-       "text": [
-        "\n",
-        "993"
-       ]
-      },
-      {
-       "output_type": "stream",
-       "stream": "stdout",
-       "text": [
-        "\n",
-        "1 loops, best of 3: 30.6 s per loop\n"
-       ]
-      }
-     ],
-     "prompt_number": 42
-    },
-    {
-     "cell_type": "code",
-     "collapsed": false,
-     "input": [
-      "class PlayerAdaptive:\n",
-      "    def __init__(self, words):\n",
-      "        self.candidate_words = words\n",
-      "        \n",
-      "    def guess(self, discovered, missed, lives):\n",
-      "        self.filter_candidate_words(discovered, missed)\n",
-      "        self.set_ordered_letters()\n",
-      "        guessed_letters = [l.lower() for l in discovered + missed if l in string.ascii_letters]\n",
-      "        return [l for l in self.ordered_letters if l not in guessed_letters][0]\n",
-      "    \n",
-      "    def filter_candidate_words(self, discovered, missed):\n",
-      "        pass\n",
-      "        \n",
-      "    def set_ordered_letters(self):\n",
-      "        counts = collections.Counter(l.lower() \n",
-      "                                     for l in ''.join(self.candidate_words) + string.ascii_lowercase \n",
-      "                                     if l in string.ascii_letters)\n",
-      "        self.ordered_letters = [p[0] for p in counts.most_common()]"
-     ],
-     "language": "python",
-     "metadata": {},
-     "outputs": [],
-     "prompt_number": 43
-    },
-    {
-     "cell_type": "code",
-     "collapsed": false,
-     "input": [
-      "class PlayerAdaptiveLength(PlayerAdaptive):\n",
-      "    def __init__(self, words):\n",
-      "        super().__init__(words)\n",
-      "        self.word_len = None\n",
-      "        self.ordered_letters = None\n",
-      "        \n",
-      "    def filter_candidate_words(self, discovered, missed):\n",
-      "        if not self.word_len:\n",
-      "            self.word_len = len(discovered)\n",
-      "            self.candidate_words = [w for w in self.candidate_words if len(w) == self.word_len]\n",
-      "    \n",
-      "    def set_ordered_letters(self):\n",
-      "        if not self.ordered_letters:\n",
-      "            super().set_ordered_letters()"
-     ],
-     "language": "python",
-     "metadata": {},
-     "outputs": [],
-     "prompt_number": 44
-    },
-    {
-     "cell_type": "code",
-     "collapsed": false,
-     "input": [
-      "class PlayerAdaptiveIncludedLetters(PlayerAdaptive):\n",
-      "    def filter_candidate_words(self, discovered, missed):\n",
-      "        exp = re.compile('^' + ''.join(discovered).replace('_', '.') + '$')\n",
-      "        self.candidate_words = [w for w in self.candidate_words if exp.match(w)]"
-     ],
-     "language": "python",
-     "metadata": {},
-     "outputs": [],
-     "prompt_number": 45
-    },
-    {
-     "cell_type": "code",
-     "collapsed": false,
-     "input": [
-      "class PlayerAdaptiveExcludedLetters(PlayerAdaptive):\n",
-      "    def filter_candidate_words(self, discovered, missed):\n",
-      "        if missed:\n",
-      "            exp = re.compile('^[^' + ''.join(missed) + ']*$')\n",
-      "            self.candidate_words = [w for w in self.candidate_words if exp.match(w)]        "
-     ],
-     "language": "python",
-     "metadata": {},
-     "outputs": [],
-     "prompt_number": 46
-    },
-    {
-     "cell_type": "code",
-     "collapsed": false,
-     "input": [
-      "class PlayerAdaptivePattern(PlayerAdaptive):\n",
-      "    def filter_candidate_words(self, discovered, missed):\n",
-      "        attempted_letters = [l for l in discovered if l != '_'] + missed\n",
-      "        if attempted_letters:\n",
-      "            exclusion_pattern = '[^' + ''.join(attempted_letters) + ']'\n",
-      "        else:\n",
-      "            exclusion_pattern = '.'\n",
-      "        exp = re.compile('^' + ''.join(discovered).replace('_', exclusion_pattern) + '$')\n",
-      "        self.candidate_words = [w for w in self.candidate_words if exp.match(w)]"
-     ],
-     "language": "python",
-     "metadata": {},
-     "outputs": [],
-     "prompt_number": 47
-    },
-    {
-     "cell_type": "code",
-     "collapsed": false,
-     "input": [
-      "%%timeit\n",
-      "\n",
-      "wins = 0\n",
-      "for _ in range(1000):\n",
-      "    g = Game(random.choice(WORDS), player=PlayerAdaptiveLength(WORDS))\n",
-      "    g.play_game()\n",
-      "    if g.game_won:\n",
-      "        wins += 1\n",
-      "print(wins)"
-     ],
-     "language": "python",
-     "metadata": {},
-     "outputs": [
-      {
-       "output_type": "stream",
-       "stream": "stdout",
-       "text": [
-        "479\n",
-        "455"
-       ]
-      },
-      {
-       "output_type": "stream",
-       "stream": "stdout",
-       "text": [
-        "\n",
-        "460"
-       ]
-      },
-      {
-       "output_type": "stream",
-       "stream": "stdout",
-       "text": [
-        "\n",
-        "498"
-       ]
-      },
-      {
-       "output_type": "stream",
-       "stream": "stdout",
-       "text": [
-        "\n",
-        "1 loops, best of 3: 15.9 s per loop\n"
-       ]
-      }
-     ],
-     "prompt_number": 48
-    },
-    {
-     "cell_type": "code",
-     "collapsed": false,
-     "input": [
-      "%%timeit\n",
-      "\n",
-      "wins = 0\n",
-      "for _ in range(1000):\n",
-      "    g = Game(random.choice(WORDS), player=PlayerAdaptiveIncludedLetters(WORDS))\n",
-      "    g.play_game()\n",
-      "    if g.game_won:\n",
-      "        wins += 1\n",
-      "print(wins)"
-     ],
-     "language": "python",
-     "metadata": {},
-     "outputs": [
-      {
-       "output_type": "stream",
-       "stream": "stdout",
-       "text": [
-        "981\n",
-        "983"
-       ]
-      },
-      {
-       "output_type": "stream",
-       "stream": "stdout",
-       "text": [
-        "\n",
-        "980"
-       ]
-      },
-      {
-       "output_type": "stream",
-       "stream": "stdout",
-       "text": [
-        "\n",
-        "980"
-       ]
-      },
-      {
-       "output_type": "stream",
-       "stream": "stdout",
-       "text": [
-        "\n",
-        "1 loops, best of 3: 36.9 s per loop\n"
-       ]
-      }
-     ],
-     "prompt_number": 49
-    },
-    {
-     "cell_type": "code",
-     "collapsed": false,
-     "input": [
-      "%%timeit\n",
-      "\n",
-      "wins = 0\n",
-      "for _ in range(1000):\n",
-      "    g = Game(random.choice(WORDS), player=PlayerAdaptiveExcludedLetters(WORDS))\n",
-      "    g.play_game()\n",
-      "    if g.game_won:\n",
-      "        wins += 1\n",
-      "print(wins)"
-     ],
-     "language": "python",
-     "metadata": {},
-     "outputs": [
-      {
-       "output_type": "stream",
-       "stream": "stdout",
-       "text": [
-        "521\n",
-        "484"
-       ]
-      },
-      {
-       "output_type": "stream",
-       "stream": "stdout",
-       "text": [
-        "\n",
-        "491"
-       ]
-      },
-      {
-       "output_type": "stream",
-       "stream": "stdout",
-       "text": [
-        "\n",
-        "518"
-       ]
-      },
-      {
-       "output_type": "stream",
-       "stream": "stdout",
-       "text": [
-        "\n",
-        "1 loops, best of 3: 7min 18s per loop\n"
-       ]
-      }
-     ],
-     "prompt_number": 50
-    },
-    {
-     "cell_type": "code",
-     "collapsed": false,
-     "input": [
-      "%%timeit\n",
-      "\n",
-      "wins = 0\n",
-      "for _ in range(1000):\n",
-      "    g = Game(random.choice(WORDS), player=PlayerAdaptivePattern(WORDS))\n",
-      "    g.play_game()\n",
-      "    if g.game_won:\n",
-      "        wins += 1\n",
-      "print(wins)"
-     ],
-     "language": "python",
-     "metadata": {},
-     "outputs": [
-      {
-       "output_type": "stream",
-       "stream": "stdout",
-       "text": [
-        "987\n",
-        "988"
-       ]
-      },
-      {
-       "output_type": "stream",
-       "stream": "stdout",
-       "text": [
-        "\n",
-        "996"
-       ]
-      },
-      {
-       "output_type": "stream",
-       "stream": "stdout",
-       "text": [
-        "\n",
-        "995"
-       ]
-      },
-      {
-       "output_type": "stream",
-       "stream": "stdout",
-       "text": [
-        "\n",
-        "1 loops, best of 3: 31.1 s per loop\n"
-       ]
-      }
-     ],
-     "prompt_number": 51
-    },
-    {
-     "cell_type": "code",
-     "collapsed": false,
-     "input": [
-      "for _ in range(1000):\n",
-      "    g = Game(random.choice(WORDS), player=PlayerAdaptivePattern(WORDS))\n",
-      "    g.play_game()\n",
-      "    if not g.game_won:\n",
-      "        print(g.target, g.discovered, g.wrong_letters)"
-     ],
-     "language": "python",
-     "metadata": {},
-     "outputs": [
-      {
-       "output_type": "stream",
-       "stream": "stdout",
-       "text": [
-        "naked ['_', 'a', '_', 'e', 'd'] ['s', 'r', 'w', 'c', 't', 'g', 'l', 'f', 'p', 'm']\n",
-        "wound"
-       ]
-      },
-      {
-       "output_type": "stream",
-       "stream": "stdout",
-       "text": [
-        " ['_', 'o', 'u', 'n', 'd'] ['s', 'e', 'a', 'y', 'p', 'm', 'f', 'h', 'b', 'r']\n",
-        "hut"
-       ]
-      },
-      {
-       "output_type": "stream",
-       "stream": "stdout",
-       "text": [
-        " ['_', 'u', 't'] ['a', 'o', 'e', 'i', 'b', 'g', 'n', 'p', 'm', 'c']\n",
-        "fucker"
-       ]
-      },
-      {
-       "output_type": "stream",
-       "stream": "stdout",
-       "text": [
-        " ['_', 'u', '_', '_', 'e', 'r'] ['d', 's', 'i', 'a', 'o', 't', 'b', 'n', 'm', 'l']\n",
-        "fox"
-       ]
-      },
-      {
-       "output_type": "stream",
-       "stream": "stdout",
-       "text": [
-        " ['_', 'o', '_'] ['a', 't', 'b', 'd', 'w', 'p', 'n', 's', 'g', 'y']\n",
-        "wills"
-       ]
-      },
-      {
-       "output_type": "stream",
-       "stream": "stdout",
-       "text": [
-        " ['_', 'i', 'l', 'l', 's'] ['e', 'o', 'a', 'g', 'p', 'm', 'k', 'f', 'h', 'd']\n",
-        "bunny"
-       ]
-      },
-      {
-       "output_type": "stream",
-       "stream": "stdout",
-       "text": [
-        " ['_', 'u', 'n', 'n', 'y'] ['s', 'e', 'a', 'o', 'i', 'm', 'l', 'g', 'f', 't']\n",
-        "curving"
-       ]
-      },
-      {
-       "output_type": "stream",
-       "stream": "stdout",
-       "text": [
-        " ['c', 'u', '_', '_', 'i', 'n', 'g'] ['e', 'a', 'o', 'l', 's', 'f', 'p', 'b', 't', 'm']\n",
-        "hoe"
-       ]
-      },
-      {
-       "output_type": "stream",
-       "stream": "stdout",
-       "text": [
-        " ['_', 'o', '_'] ['a', 't', 'b', 'd', 'w', 'p', 'n', 's', 'g', 'y']\n",
-        "butt"
-       ]
-      },
-      {
-       "output_type": "stream",
-       "stream": "stdout",
-       "text": [
-        " ['_', 'u', '_', '_'] ['e', 's', 'o', 'a', 'i', 'l', 'f', 'r', 'n', 'm']\n",
-        "mucked"
-       ]
-      },
-      {
-       "output_type": "stream",
-       "stream": "stdout",
-       "text": [
-        " ['_', 'u', '_', '_', 'e', 'd'] ['a', 'o', 'i', 'l', 's', 't', 'f', 'p', 'g', 'b']\n",
-        "flaw"
-       ]
-      },
-      {
-       "output_type": "stream",
-       "stream": "stdout",
-       "text": [
-        " ['f', 'l', 'a', '_'] ['e', 's', 'o', 'r', 'y', 'g', 'k', 'x', 'p', 'n']\n"
-       ]
-      }
-     ],
-     "prompt_number": 52
-    },
-    {
-     "cell_type": "code",
-     "collapsed": false,
-     "input": [
-      "iterations = 10000\n",
-      "wins = 0\n",
-      "for _ in range(iterations):\n",
-      "    g = Game(random.choice(WORDS), player=PlayerAdaptivePattern(WORDS))\n",
-      "    g.play_game()\n",
-      "    if g.game_won:\n",
-      "        wins += 1\n",
-      "print(wins / iterations)"
-     ],
-     "language": "python",
-     "metadata": {},
-     "outputs": [
-      {
-       "output_type": "stream",
-       "stream": "stdout",
-       "text": [
-        "0.9936\n"
-       ]
-      }
-     ],
-     "prompt_number": 53
-    },
-    {
-     "cell_type": "code",
-     "collapsed": false,
-     "input": [
-      "class PlayerAdaptiveNoRegex:\n",
-      "    def __init__(self, words):\n",
-      "        self.candidate_words = words\n",
-      "        \n",
-      "    def guess(self, discovered, missed, lives):\n",
-      "        self.filter_candidate_words(discovered, missed)\n",
-      "        self.set_ordered_letters()\n",
-      "        guessed_letters = [l.lower() for l in discovered + missed if l in string.ascii_letters]\n",
-      "        return [l for l in self.ordered_letters if l not in guessed_letters][0]\n",
-      "    \n",
-      "    def filter_candidate_words(self, discovered, missed):\n",
-      "        pass\n",
-      "        \n",
-      "    def set_ordered_letters(self):\n",
-      "        counts = collections.Counter(l.lower() \n",
-      "                                     for l in ''.join(self.candidate_words) + string.ascii_lowercase \n",
-      "                                     if l in string.ascii_letters)\n",
-      "        self.ordered_letters = [p[0] for p in counts.most_common()]\n",
-      "\n",
-      "    def match(self, pattern, target, excluded=None):\n",
-      "        if not excluded:\n",
-      "            excluded = ''\n",
-      "        if len(pattern) != len(target):\n",
-      "            return False\n",
-      "        for m, c in zip(pattern, target):\n",
-      "            if m == '_' and c not in excluded:\n",
-      "                # true\n",
-      "                pass\n",
-      "            elif m != '_' and m == c:\n",
-      "                # true\n",
-      "                pass\n",
-      "            else:\n",
-      "                return False\n",
-      "        return True        "
-     ],
-     "language": "python",
-     "metadata": {},
-     "outputs": [],
-     "prompt_number": 59
-    },
-    {
-     "cell_type": "code",
-     "collapsed": false,
-     "input": [
-      "class PlayerAdaptiveLengthNoRegex(PlayerAdaptiveNoRegex):\n",
-      "    def __init__(self, words):\n",
-      "        super().__init__(words)\n",
-      "        self.word_len = None\n",
-      "        self.ordered_letters = None\n",
-      "        \n",
-      "    def filter_candidate_words(self, discovered, missed):\n",
-      "        if not self.word_len:\n",
-      "            self.word_len = len(discovered)\n",
-      "            self.candidate_words = [w for w in self.candidate_words if len(w) == self.word_len]\n",
-      "    \n",
-      "    def set_ordered_letters(self):\n",
-      "        if not self.ordered_letters:\n",
-      "            super().set_ordered_letters()"
-     ],
-     "language": "python",
-     "metadata": {},
-     "outputs": [],
-     "prompt_number": 60
-    },
-    {
-     "cell_type": "code",
-     "collapsed": false,
-     "input": [
-      "class PlayerAdaptiveIncludedLettersNoRegex(PlayerAdaptiveNoRegex):\n",
-      "    def filter_candidate_words(self, discovered, missed):\n",
-      "        self.candidate_words = [w for w in self.candidate_words if self.match(discovered, w)]"
-     ],
-     "language": "python",
-     "metadata": {},
-     "outputs": [],
-     "prompt_number": 61
-    },
-    {
-     "cell_type": "code",
-     "collapsed": false,
-     "input": [
-      "class PlayerAdaptiveExcludedLettersNoRegex(PlayerAdaptiveNoRegex):\n",
-      "    def filter_candidate_words(self, discovered, missed):\n",
-      "        if missed:\n",
-      "            empty_target = '_' * len(discovered)\n",
-      "            self.candidate_words = [w for w in self.candidate_words if self.match(empty_target, w, missed)]        "
-     ],
-     "language": "python",
-     "metadata": {},
-     "outputs": [],
-     "prompt_number": 66
-    },
-    {
-     "cell_type": "code",
-     "collapsed": false,
-     "input": [
-      "class PlayerAdaptivePatternNoRegex(PlayerAdaptiveNoRegex):\n",
-      "    def filter_candidate_words(self, discovered, missed):\n",
-      "        attempted_letters = [l for l in discovered if l != '_'] + missed\n",
-      "        self.candidate_words = [w for w in self.candidate_words if self.match(discovered, w, attempted_letters)]"
-     ],
-     "language": "python",
-     "metadata": {},
-     "outputs": [],
-     "prompt_number": 67
-    },
-    {
-     "cell_type": "code",
-     "collapsed": false,
-     "input": [
-      "%%timeit\n",
-      "\n",
-      "wins = 0\n",
-      "for _ in range(1000):\n",
-      "    g = Game(random.choice(WORDS), player=PlayerAdaptiveLengthNoRegex(WORDS))\n",
-      "    g.play_game()\n",
-      "    if g.game_won:\n",
-      "        wins += 1\n",
-      "print(wins)"
-     ],
-     "language": "python",
-     "metadata": {},
-     "outputs": [
-      {
-       "output_type": "stream",
-       "stream": "stdout",
-       "text": [
-        "471\n",
-        "492"
-       ]
-      },
-      {
-       "output_type": "stream",
-       "stream": "stdout",
-       "text": [
-        "\n",
-        "502"
-       ]
-      },
-      {
-       "output_type": "stream",
-       "stream": "stdout",
-       "text": [
-        "\n",
-        "469"
-       ]
-      },
-      {
-       "output_type": "stream",
-       "stream": "stdout",
-       "text": [
-        "\n",
-        "1 loops, best of 3: 16 s per loop\n"
-       ]
-      }
-     ],
-     "prompt_number": 69
-    },
-    {
-     "cell_type": "code",
-     "collapsed": false,
-     "input": [
-      "%%timeit\n",
-      "\n",
-      "wins = 0\n",
-      "for _ in range(1000):\n",
-      "    g = Game(random.choice(WORDS), player=PlayerAdaptiveIncludedLettersNoRegex(WORDS))\n",
-      "    g.play_game()\n",
-      "    if g.game_won:\n",
-      "        wins += 1\n",
-      "print(wins)"
-     ],
-     "language": "python",
-     "metadata": {},
-     "outputs": [
-      {
-       "output_type": "stream",
-       "stream": "stdout",
-       "text": [
-        "978\n",
-        "979"
-       ]
-      },
-      {
-       "output_type": "stream",
-       "stream": "stdout",
-       "text": [
-        "\n",
-        "983"
-       ]
-      },
-      {
-       "output_type": "stream",
-       "stream": "stdout",
-       "text": [
-        "\n",
-        "979"
-       ]
-      },
-      {
-       "output_type": "stream",
-       "stream": "stdout",
-       "text": [
-        "\n",
-        "1 loops, best of 3: 48 s per loop\n"
-       ]
-      }
-     ],
-     "prompt_number": 70
-    },
-    {
-     "cell_type": "code",
-     "collapsed": false,
-     "input": [
-      "%%timeit\n",
-      "\n",
-      "wins = 0\n",
-      "for _ in range(1000):\n",
-      "    g = Game(random.choice(WORDS), player=PlayerAdaptiveExcludedLettersNoRegex(WORDS))\n",
-      "    g.play_game()\n",
-      "    if g.game_won:\n",
-      "        wins += 1\n",
-      "print(wins)"
-     ],
-     "language": "python",
-     "metadata": {},
-     "outputs": [
-      {
-       "output_type": "stream",
-       "stream": "stdout",
-       "text": [
-        "582\n",
-        "595"
-       ]
-      },
-      {
-       "output_type": "stream",
-       "stream": "stdout",
-       "text": [
-        "\n",
-        "587"
-       ]
-      },
-      {
-       "output_type": "stream",
-       "stream": "stdout",
-       "text": [
-        "\n",
-        "611"
-       ]
-      },
-      {
-       "output_type": "stream",
-       "stream": "stdout",
-       "text": [
-        "\n",
-        "1 loops, best of 3: 4min 59s per loop\n"
-       ]
-      }
-     ],
-     "prompt_number": 71
-    },
-    {
-     "cell_type": "code",
-     "collapsed": false,
-     "input": [
-      "%%timeit\n",
-      "\n",
-      "wins = 0\n",
-      "for _ in range(1000):\n",
-      "    g = Game(random.choice(WORDS), player=PlayerAdaptivePatternNoRegex(WORDS))\n",
-      "    g.play_game()\n",
-      "    if g.game_won:\n",
-      "        wins += 1\n",
-      "print(wins)"
-     ],
-     "language": "python",
-     "metadata": {},
-     "outputs": [
-      {
-       "output_type": "stream",
-       "stream": "stdout",
-       "text": [
-        "991\n",
-        "992"
-       ]
-      },
-      {
-       "output_type": "stream",
-       "stream": "stdout",
-       "text": [
-        "\n",
-        "993"
-       ]
-      },
-      {
-       "output_type": "stream",
-       "stream": "stdout",
-       "text": [
-        "\n",
-        "994"
-       ]
-      },
-      {
-       "output_type": "stream",
-       "stream": "stdout",
-       "text": [
-        "\n",
-        "1 loops, best of 3: 37.9 s per loop\n"
-       ]
-      }
-     ],
-     "prompt_number": 72
-    },
-    {
-     "cell_type": "code",
-     "collapsed": false,
-     "input": [],
-     "language": "python",
-     "metadata": {},
-     "outputs": [],
-     "prompt_number": 72
-    }
-   ],
-   "metadata": {}
-  }
- ]
-}
\ No newline at end of file
diff --git a/hangman/hangman-both.ipynb b/hangman/hangman-both.ipynb
deleted file mode 100644 (file)
index d9e565b..0000000
+++ /dev/null
@@ -1,1186 +0,0 @@
-{
- "metadata": {
-  "name": "",
-  "signature": "sha256:5e9f030b42097ebbcce2654cdb1d9370fde38b61bdbfa85a0cc700e76d5a8a71"
- },
- "nbformat": 3,
- "nbformat_minor": 0,
- "worksheets": [
-  {
-   "cells": [
-    {
-     "cell_type": "code",
-     "collapsed": false,
-     "input": [
-      "import re\n",
-      "import random\n",
-      "import string\n",
-      "import collections"
-     ],
-     "language": "python",
-     "metadata": {},
-     "outputs": [],
-     "prompt_number": 71
-    },
-    {
-     "cell_type": "code",
-     "collapsed": false,
-     "input": [
-      "WORDS = [w.strip() for w in open('/usr/share/dict/british-english').readlines() \n",
-      "         if re.match(r'^[a-z]*$', w.strip())]"
-     ],
-     "language": "python",
-     "metadata": {},
-     "outputs": [],
-     "prompt_number": 72
-    },
-    {
-     "cell_type": "code",
-     "collapsed": false,
-     "input": [
-      "STARTING_LIVES = 10"
-     ],
-     "language": "python",
-     "metadata": {},
-     "outputs": [],
-     "prompt_number": 73
-    },
-    {
-     "cell_type": "code",
-     "collapsed": false,
-     "input": [
-      "class Game:\n",
-      "    def __init__(self, target, player=None, lives=STARTING_LIVES):\n",
-      "        self.lives = lives\n",
-      "        self.player = player\n",
-      "        self.target = target\n",
-      "        self.discovered = list('_' * len(target))\n",
-      "        self.wrong_letters = []\n",
-      "        self.game_finished = False\n",
-      "        self.game_won = False\n",
-      "        self.game_lost = False\n",
-      "    \n",
-      "    def find_all(self, letter):\n",
-      "        return [p for p, l in enumerate(self.target) if l == letter]\n",
-      "    \n",
-      "    def update_discovered_word(self, guessed_letter):\n",
-      "        locations = self.find_all(guessed_letter)\n",
-      "        for location in locations:\n",
-      "            self.discovered[location] = guessed_letter\n",
-      "        return self.discovered\n",
-      "    \n",
-      "    def do_turn(self):\n",
-      "        if self.player:\n",
-      "            guess = self.player.guess(self.discovered, self.wrong_letters, self.lives)\n",
-      "        else:\n",
-      "            guess = self.ask_for_guess()\n",
-      "        if guess in self.target:\n",
-      "            self.update_discovered_word(guess)\n",
-      "        else:\n",
-      "            self.lives -= 1\n",
-      "            if guess not in self.wrong_letters:\n",
-      "                self.wrong_letters += [guess]\n",
-      "        if self.lives == 0:\n",
-      "            self.game_finished = True\n",
-      "            self.game_lost = True\n",
-      "        if '_' not in self.discovered:\n",
-      "            self.game_finished = True\n",
-      "            self.game_won = True\n",
-      "            \n",
-      "    def ask_for_guess(self):\n",
-      "        print('Word:', ' '.join(self.discovered), \n",
-      "              ' : Lives =', self.lives, \n",
-      "              ', wrong guesses:', ' '.join(sorted(self.wrong_letters)))\n",
-      "        guess = input('Enter letter: ').strip().lower()[0]\n",
-      "        return guess\n",
-      "    \n",
-      "    def play_game(self):\n",
-      "        self.do_turn()\n",
-      "        while not self.game_finished:\n",
-      "            self.do_turn()\n",
-      "        if not self.player:\n",
-      "            self.report_on_game()\n",
-      "        return self.game_won\n",
-      "    \n",
-      "    def report_on_game(self):\n",
-      "        if self.game_won:\n",
-      "            print('You won! The word was', self.target)\n",
-      "        else:\n",
-      "            print('You lost. The word was', self.target)\n",
-      "        return self.game_won"
-     ],
-     "language": "python",
-     "metadata": {},
-     "outputs": [],
-     "prompt_number": 74
-    },
-    {
-     "cell_type": "code",
-     "collapsed": false,
-     "input": [
-      "g = Game(random.choice(WORDS))"
-     ],
-     "language": "python",
-     "metadata": {},
-     "outputs": [],
-     "prompt_number": 75
-    },
-    {
-     "cell_type": "code",
-     "collapsed": false,
-     "input": [
-      "g.target"
-     ],
-     "language": "python",
-     "metadata": {},
-     "outputs": [
-      {
-       "metadata": {},
-       "output_type": "pyout",
-       "prompt_number": 76,
-       "text": [
-        "'strife'"
-       ]
-      }
-     ],
-     "prompt_number": 76
-    },
-    {
-     "cell_type": "code",
-     "collapsed": false,
-     "input": [
-      "g.discovered"
-     ],
-     "language": "python",
-     "metadata": {},
-     "outputs": [
-      {
-       "metadata": {},
-       "output_type": "pyout",
-       "prompt_number": 77,
-       "text": [
-        "['_', '_', '_', '_', '_', '_']"
-       ]
-      }
-     ],
-     "prompt_number": 77
-    },
-    {
-     "cell_type": "code",
-     "collapsed": false,
-     "input": [
-      "g.do_turn()"
-     ],
-     "language": "python",
-     "metadata": {},
-     "outputs": [
-      {
-       "output_type": "stream",
-       "stream": "stdout",
-       "text": [
-        "Word: _ _ _ _ _ _  : Lives = 10 , wrong guesses: \n"
-       ]
-      },
-      {
-       "name": "stdout",
-       "output_type": "stream",
-       "stream": "stdout",
-       "text": [
-        "Enter letter: e\n"
-       ]
-      }
-     ],
-     "prompt_number": 78
-    },
-    {
-     "cell_type": "code",
-     "collapsed": false,
-     "input": [
-      "g.lives"
-     ],
-     "language": "python",
-     "metadata": {},
-     "outputs": [
-      {
-       "metadata": {},
-       "output_type": "pyout",
-       "prompt_number": 79,
-       "text": [
-        "10"
-       ]
-      }
-     ],
-     "prompt_number": 79
-    },
-    {
-     "cell_type": "code",
-     "collapsed": false,
-     "input": [
-      "g.wrong_letters"
-     ],
-     "language": "python",
-     "metadata": {},
-     "outputs": [
-      {
-       "metadata": {},
-       "output_type": "pyout",
-       "prompt_number": 80,
-       "text": [
-        "[]"
-       ]
-      }
-     ],
-     "prompt_number": 80
-    },
-    {
-     "cell_type": "code",
-     "collapsed": false,
-     "input": [
-      "g.do_turn()"
-     ],
-     "language": "python",
-     "metadata": {},
-     "outputs": [
-      {
-       "output_type": "stream",
-       "stream": "stdout",
-       "text": [
-        "Word: _ _ _ _ _ e  : Lives = 10 , wrong guesses: \n"
-       ]
-      },
-      {
-       "name": "stdout",
-       "output_type": "stream",
-       "stream": "stdout",
-       "text": [
-        "Enter letter: d\n"
-       ]
-      }
-     ],
-     "prompt_number": 81
-    },
-    {
-     "cell_type": "code",
-     "collapsed": false,
-     "input": [
-      "g.lives"
-     ],
-     "language": "python",
-     "metadata": {},
-     "outputs": [
-      {
-       "metadata": {},
-       "output_type": "pyout",
-       "prompt_number": 82,
-       "text": [
-        "9"
-       ]
-      }
-     ],
-     "prompt_number": 82
-    },
-    {
-     "cell_type": "code",
-     "collapsed": false,
-     "input": [
-      "g.discovered"
-     ],
-     "language": "python",
-     "metadata": {},
-     "outputs": [
-      {
-       "metadata": {},
-       "output_type": "pyout",
-       "prompt_number": 83,
-       "text": [
-        "['_', '_', '_', '_', '_', 'e']"
-       ]
-      }
-     ],
-     "prompt_number": 83
-    },
-    {
-     "cell_type": "code",
-     "collapsed": false,
-     "input": [
-      "g.wrong_letters"
-     ],
-     "language": "python",
-     "metadata": {},
-     "outputs": [
-      {
-       "metadata": {},
-       "output_type": "pyout",
-       "prompt_number": 84,
-       "text": [
-        "['d']"
-       ]
-      }
-     ],
-     "prompt_number": 84
-    },
-    {
-     "cell_type": "code",
-     "collapsed": false,
-     "input": [
-      "g = Game(random.choice(WORDS))\n",
-      "g.play_game()"
-     ],
-     "language": "python",
-     "metadata": {},
-     "outputs": [
-      {
-       "output_type": "stream",
-       "stream": "stdout",
-       "text": [
-        "Word: _ _ _ _ _ _ _  : Lives = 10 , wrong guesses: \n"
-       ]
-      },
-      {
-       "name": "stdout",
-       "output_type": "stream",
-       "stream": "stdout",
-       "text": [
-        "Enter letter: d\n"
-       ]
-      },
-      {
-       "output_type": "stream",
-       "stream": "stdout",
-       "text": [
-        "Word: _ _ _ _ _ _ d  : Lives = 10 , wrong guesses: \n"
-       ]
-      },
-      {
-       "name": "stdout",
-       "output_type": "stream",
-       "stream": "stdout",
-       "text": [
-        "Enter letter: e\n"
-       ]
-      },
-      {
-       "output_type": "stream",
-       "stream": "stdout",
-       "text": [
-        "Word: _ e _ _ _ e d  : Lives = 10 , wrong guesses: \n"
-       ]
-      },
-      {
-       "name": "stdout",
-       "output_type": "stream",
-       "stream": "stdout",
-       "text": [
-        "Enter letter: f\n"
-       ]
-      },
-      {
-       "output_type": "stream",
-       "stream": "stdout",
-       "text": [
-        "Word: _ e _ _ _ e d  : Lives = 9 , wrong guesses: f\n"
-       ]
-      },
-      {
-       "name": "stdout",
-       "output_type": "stream",
-       "stream": "stdout",
-       "text": [
-        "Enter letter: e\n"
-       ]
-      },
-      {
-       "output_type": "stream",
-       "stream": "stdout",
-       "text": [
-        "Word: _ e _ _ _ e d  : Lives = 9 , wrong guesses: f\n"
-       ]
-      },
-      {
-       "name": "stdout",
-       "output_type": "stream",
-       "stream": "stdout",
-       "text": [
-        "Enter letter: s\n"
-       ]
-      },
-      {
-       "output_type": "stream",
-       "stream": "stdout",
-       "text": [
-        "Word: _ e _ _ _ e d  : Lives = 8 , wrong guesses: f s\n"
-       ]
-      },
-      {
-       "name": "stdout",
-       "output_type": "stream",
-       "stream": "stdout",
-       "text": [
-        "Enter letter: t\n"
-       ]
-      },
-      {
-       "output_type": "stream",
-       "stream": "stdout",
-       "text": [
-        "Word: _ e _ _ _ e d  : Lives = 7 , wrong guesses: f s t\n"
-       ]
-      },
-      {
-       "name": "stdout",
-       "output_type": "stream",
-       "stream": "stdout",
-       "text": [
-        "Enter letter: n\n"
-       ]
-      },
-      {
-       "output_type": "stream",
-       "stream": "stdout",
-       "text": [
-        "Word: _ e _ _ _ e d  : Lives = 6 , wrong guesses: f n s t\n"
-       ]
-      },
-      {
-       "name": "stdout",
-       "output_type": "stream",
-       "stream": "stdout",
-       "text": [
-        "Enter letter: m\n"
-       ]
-      },
-      {
-       "output_type": "stream",
-       "stream": "stdout",
-       "text": [
-        "Word: _ e _ _ _ e d  : Lives = 5 , wrong guesses: f m n s t\n"
-       ]
-      },
-      {
-       "name": "stdout",
-       "output_type": "stream",
-       "stream": "stdout",
-       "text": [
-        "Enter letter: h\n"
-       ]
-      },
-      {
-       "output_type": "stream",
-       "stream": "stdout",
-       "text": [
-        "Word: _ e _ _ _ e d  : Lives = 4 , wrong guesses: f h m n s t\n"
-       ]
-      },
-      {
-       "name": "stdout",
-       "output_type": "stream",
-       "stream": "stdout",
-       "text": [
-        "Enter letter: o\n"
-       ]
-      },
-      {
-       "output_type": "stream",
-       "stream": "stdout",
-       "text": [
-        "Word: _ e _ _ _ e d  : Lives = 3 , wrong guesses: f h m n o s t\n"
-       ]
-      },
-      {
-       "name": "stdout",
-       "output_type": "stream",
-       "stream": "stdout",
-       "text": [
-        "Enter letter: i\n"
-       ]
-      },
-      {
-       "output_type": "stream",
-       "stream": "stdout",
-       "text": [
-        "Word: _ e _ i _ e d  : Lives = 3 , wrong guesses: f h m n o s t\n"
-       ]
-      },
-      {
-       "name": "stdout",
-       "output_type": "stream",
-       "stream": "stdout",
-       "text": [
-        "Enter letter: r\n"
-       ]
-      },
-      {
-       "output_type": "stream",
-       "stream": "stdout",
-       "text": [
-        "Word: r e _ i r e d  : Lives = 3 , wrong guesses: f h m n o s t\n"
-       ]
-      },
-      {
-       "name": "stdout",
-       "output_type": "stream",
-       "stream": "stdout",
-       "text": [
-        "Enter letter: w\n"
-       ]
-      },
-      {
-       "output_type": "stream",
-       "stream": "stdout",
-       "text": [
-        "You won! The word was rewired\n"
-       ]
-      },
-      {
-       "metadata": {},
-       "output_type": "pyout",
-       "prompt_number": 85,
-       "text": [
-        "True"
-       ]
-      }
-     ],
-     "prompt_number": 85
-    },
-    {
-     "cell_type": "code",
-     "collapsed": false,
-     "input": [
-      "g = Game(random.choice(WORDS))\n",
-      "g.play_game()"
-     ],
-     "language": "python",
-     "metadata": {},
-     "outputs": [
-      {
-       "output_type": "stream",
-       "stream": "stdout",
-       "text": [
-        "Word: _ _ _ _ _  : Lives = 10 , wrong guesses: \n"
-       ]
-      },
-      {
-       "name": "stdout",
-       "output_type": "stream",
-       "stream": "stdout",
-       "text": [
-        "Enter letter: e\n"
-       ]
-      },
-      {
-       "output_type": "stream",
-       "stream": "stdout",
-       "text": [
-        "Word: _ _ _ _ _  : Lives = 9 , wrong guesses: e\n"
-       ]
-      },
-      {
-       "name": "stdout",
-       "output_type": "stream",
-       "stream": "stdout",
-       "text": [
-        "Enter letter: s\n"
-       ]
-      },
-      {
-       "output_type": "stream",
-       "stream": "stdout",
-       "text": [
-        "Word: _ _ _ _ s  : Lives = 9 , wrong guesses: e\n"
-       ]
-      },
-      {
-       "name": "stdout",
-       "output_type": "stream",
-       "stream": "stdout",
-       "text": [
-        "Enter letter: t\n"
-       ]
-      },
-      {
-       "output_type": "stream",
-       "stream": "stdout",
-       "text": [
-        "Word: _ _ _ _ s  : Lives = 8 , wrong guesses: e t\n"
-       ]
-      },
-      {
-       "name": "stdout",
-       "output_type": "stream",
-       "stream": "stdout",
-       "text": [
-        "Enter letter: o\n"
-       ]
-      },
-      {
-       "output_type": "stream",
-       "stream": "stdout",
-       "text": [
-        "Word: _ _ _ _ s  : Lives = 7 , wrong guesses: e o t\n"
-       ]
-      },
-      {
-       "name": "stdout",
-       "output_type": "stream",
-       "stream": "stdout",
-       "text": [
-        "Enter letter: i\n"
-       ]
-      },
-      {
-       "output_type": "stream",
-       "stream": "stdout",
-       "text": [
-        "Word: _ _ _ _ s  : Lives = 6 , wrong guesses: e i o t\n"
-       ]
-      },
-      {
-       "name": "stdout",
-       "output_type": "stream",
-       "stream": "stdout",
-       "text": [
-        "Enter letter: u\n"
-       ]
-      },
-      {
-       "output_type": "stream",
-       "stream": "stdout",
-       "text": [
-        "Word: _ _ _ _ s  : Lives = 5 , wrong guesses: e i o t u\n"
-       ]
-      },
-      {
-       "name": "stdout",
-       "output_type": "stream",
-       "stream": "stdout",
-       "text": [
-        "Enter letter: a\n"
-       ]
-      },
-      {
-       "output_type": "stream",
-       "stream": "stdout",
-       "text": [
-        "Word: _ _ _ _ s  : Lives = 4 , wrong guesses: a e i o t u\n"
-       ]
-      },
-      {
-       "name": "stdout",
-       "output_type": "stream",
-       "stream": "stdout",
-       "text": [
-        "Enter letter: y\n"
-       ]
-      },
-      {
-       "output_type": "stream",
-       "stream": "stdout",
-       "text": [
-        "Word: _ y _ _ s  : Lives = 4 , wrong guesses: a e i o t u\n"
-       ]
-      },
-      {
-       "name": "stdout",
-       "output_type": "stream",
-       "stream": "stdout",
-       "text": [
-        "Enter letter: w\n"
-       ]
-      },
-      {
-       "output_type": "stream",
-       "stream": "stdout",
-       "text": [
-        "Word: _ y _ _ s  : Lives = 3 , wrong guesses: a e i o t u w\n"
-       ]
-      },
-      {
-       "name": "stdout",
-       "output_type": "stream",
-       "stream": "stdout",
-       "text": [
-        "Enter letter: h\n"
-       ]
-      },
-      {
-       "output_type": "stream",
-       "stream": "stdout",
-       "text": [
-        "Word: h y _ _ s  : Lives = 3 , wrong guesses: a e i o t u w\n"
-       ]
-      },
-      {
-       "name": "stdout",
-       "output_type": "stream",
-       "stream": "stdout",
-       "text": [
-        "Enter letter: m\n"
-       ]
-      },
-      {
-       "output_type": "stream",
-       "stream": "stdout",
-       "text": [
-        "Word: h y m _ s  : Lives = 3 , wrong guesses: a e i o t u w\n"
-       ]
-      },
-      {
-       "name": "stdout",
-       "output_type": "stream",
-       "stream": "stdout",
-       "text": [
-        "Enter letter: n\n"
-       ]
-      },
-      {
-       "output_type": "stream",
-       "stream": "stdout",
-       "text": [
-        "You won! The word was hymns\n"
-       ]
-      },
-      {
-       "metadata": {},
-       "output_type": "pyout",
-       "prompt_number": 86,
-       "text": [
-        "True"
-       ]
-      }
-     ],
-     "prompt_number": 86
-    },
-    {
-     "cell_type": "code",
-     "collapsed": false,
-     "input": [
-      "g.target"
-     ],
-     "language": "python",
-     "metadata": {},
-     "outputs": [
-      {
-       "metadata": {},
-       "output_type": "pyout",
-       "prompt_number": 108,
-       "text": [
-        "'six'"
-       ]
-      }
-     ],
-     "prompt_number": 108
-    },
-    {
-     "cell_type": "code",
-     "collapsed": false,
-     "input": [
-      "class PlayerAlphabetical:\n",
-      "    def guess(self, discovered, missed, lives):\n",
-      "        guessed_letters = [l.lower() for l in discovered + missed if l in string.ascii_letters]\n",
-      "        return [l for l in string.ascii_lowercase if l not in guessed_letters][0]"
-     ],
-     "language": "python",
-     "metadata": {},
-     "outputs": [],
-     "prompt_number": 109
-    },
-    {
-     "cell_type": "code",
-     "collapsed": false,
-     "input": [
-      "g = Game(random.choice(WORDS), player=PlayerAlphabetical())"
-     ],
-     "language": "python",
-     "metadata": {},
-     "outputs": [],
-     "prompt_number": 110
-    },
-    {
-     "cell_type": "code",
-     "collapsed": false,
-     "input": [
-      "g.play_game()"
-     ],
-     "language": "python",
-     "metadata": {},
-     "outputs": [
-      {
-       "metadata": {},
-       "output_type": "pyout",
-       "prompt_number": 111,
-       "text": [
-        "False"
-       ]
-      }
-     ],
-     "prompt_number": 111
-    },
-    {
-     "cell_type": "code",
-     "collapsed": false,
-     "input": [
-      "g.discovered"
-     ],
-     "language": "python",
-     "metadata": {},
-     "outputs": [
-      {
-       "metadata": {},
-       "output_type": "pyout",
-       "prompt_number": 112,
-       "text": [
-        "['l', 'e', 'g', 'a', 'l', 'l', '_']"
-       ]
-      }
-     ],
-     "prompt_number": 112
-    },
-    {
-     "cell_type": "code",
-     "collapsed": false,
-     "input": [
-      "g.target"
-     ],
-     "language": "python",
-     "metadata": {},
-     "outputs": [
-      {
-       "metadata": {},
-       "output_type": "pyout",
-       "prompt_number": 113,
-       "text": [
-        "'legally'"
-       ]
-      }
-     ],
-     "prompt_number": 113
-    },
-    {
-     "cell_type": "code",
-     "collapsed": false,
-     "input": [
-      "g = Game(random.choice(WORDS), player=PlayerAlphabetical())\n",
-      "g.play_game()\n",
-      "print('Target:', g.target, '; Discovered:', g.discovered, '; Lives remaining:', g.lives)"
-     ],
-     "language": "python",
-     "metadata": {},
-     "outputs": [
-      {
-       "output_type": "stream",
-       "stream": "stdout",
-       "text": [
-        "Target: cavalry ; Discovered: ['c', 'a', '_', 'a', 'l', '_', '_'] ; Lives remaining: 0\n"
-       ]
-      }
-     ],
-     "prompt_number": 114
-    },
-    {
-     "cell_type": "code",
-     "collapsed": false,
-     "input": [
-      "LETTER_COUNTS = collections.Counter(l.lower() for l in open('sherlock-holmes.txt').read() if l in string.ascii_letters)\n",
-      "LETTERS_IN_ORDER = [p[0] for p in LETTER_COUNTS.most_common()]\n",
-      "\n",
-      "class PlayerFreqOrdered:\n",
-      "    def guess(self, discovered, missed, lives):\n",
-      "        guessed_letters = [l.lower() for l in discovered + missed if l in string.ascii_letters]\n",
-      "        return [l for l in LETTERS_IN_ORDER if l not in guessed_letters][0]"
-     ],
-     "language": "python",
-     "metadata": {},
-     "outputs": [],
-     "prompt_number": 115
-    },
-    {
-     "cell_type": "code",
-     "collapsed": false,
-     "input": [
-      "g = Game(random.choice(WORDS), player=PlayerFreqOrdered())\n",
-      "g.play_game()\n",
-      "print('Target:', g.target, '; Discovered:', g.discovered, '; Lives remaining:', g.lives)"
-     ],
-     "language": "python",
-     "metadata": {},
-     "outputs": [
-      {
-       "output_type": "stream",
-       "stream": "stdout",
-       "text": [
-        "Target: deathblow ; Discovered: ['d', 'e', 'a', 't', 'h', '_', 'l', 'o', 'w'] ; Lives remaining: 0\n"
-       ]
-      }
-     ],
-     "prompt_number": 116
-    },
-    {
-     "cell_type": "code",
-     "collapsed": false,
-     "input": [
-      "g = Game(random.choice(WORDS), player=PlayerFreqOrdered())\n",
-      "g.play_game()\n",
-      "print('Target:', g.target, '; Discovered:', g.discovered, '; Lives remaining:', g.lives)"
-     ],
-     "language": "python",
-     "metadata": {},
-     "outputs": [
-      {
-       "output_type": "stream",
-       "stream": "stdout",
-       "text": [
-        "Target: littered ; Discovered: ['l', 'i', 't', 't', 'e', 'r', 'e', 'd'] ; Lives remaining: 5\n"
-       ]
-      }
-     ],
-     "prompt_number": 117
-    },
-    {
-     "cell_type": "code",
-     "collapsed": false,
-     "input": [
-      "g = Game(random.choice(WORDS), player=PlayerFreqOrdered())\n",
-      "g.play_game()\n",
-      "print('Target:', g.target, '; Discovered:', g.discovered, '; Lives remaining:', g.lives)"
-     ],
-     "language": "python",
-     "metadata": {},
-     "outputs": [
-      {
-       "output_type": "stream",
-       "stream": "stdout",
-       "text": [
-        "Target: licenced ; Discovered: ['l', 'i', 'c', 'e', 'n', 'c', 'e', 'd'] ; Lives remaining: 1\n"
-       ]
-      }
-     ],
-     "prompt_number": 118
-    },
-    {
-     "cell_type": "code",
-     "collapsed": false,
-     "input": [
-      "class PlayerFixedOrder:\n",
-      "    def __init__(self, ordered_letters):\n",
-      "        self.ordered_letters = ordered_letters\n",
-      "        \n",
-      "    def guess(self, discovered, missed, lives):\n",
-      "        guessed_letters = [l.lower() for l in discovered + missed if l in string.ascii_letters]\n",
-      "        return [l for l in self.ordered_letters if l not in guessed_letters][0]"
-     ],
-     "language": "python",
-     "metadata": {},
-     "outputs": [],
-     "prompt_number": 119
-    },
-    {
-     "cell_type": "code",
-     "collapsed": false,
-     "input": [
-      "class PlayerAlphabetical(PlayerFixedOrder):\n",
-      "    def __init__(self):\n",
-      "        super().__init__(string.ascii_lowercase)\n",
-      "\n",
-      "class PlayerFreqOrdered(PlayerFixedOrder):\n",
-      "    def __init__(self):\n",
-      "        super().__init__(LETTERS_IN_ORDER)\n"
-     ],
-     "language": "python",
-     "metadata": {},
-     "outputs": [],
-     "prompt_number": 120
-    },
-    {
-     "cell_type": "code",
-     "collapsed": false,
-     "input": [
-      "g = Game(random.choice(WORDS), player=PlayerFreqOrdered())\n",
-      "g.play_game()\n",
-      "print('Target:', g.target, '; Discovered:', g.discovered, '; Lives remaining:', g.lives)"
-     ],
-     "language": "python",
-     "metadata": {},
-     "outputs": [
-      {
-       "output_type": "stream",
-       "stream": "stdout",
-       "text": [
-        "Target: unworthier ; Discovered: ['u', 'n', 'w', 'o', 'r', 't', 'h', 'i', 'e', 'r'] ; Lives remaining: 5\n"
-       ]
-      }
-     ],
-     "prompt_number": 121
-    },
-    {
-     "cell_type": "code",
-     "collapsed": false,
-     "input": [
-      "g = Game(random.choice(WORDS), player=PlayerFreqOrdered())\n",
-      "g.play_game()\n",
-      "print('Target:', g.target, '; Discovered:', g.discovered, '; Lives remaining:', g.lives)"
-     ],
-     "language": "python",
-     "metadata": {},
-     "outputs": [
-      {
-       "output_type": "stream",
-       "stream": "stdout",
-       "text": [
-        "Target: kneel ; Discovered: ['_', 'n', 'e', 'e', 'l'] ; Lives remaining: 0\n"
-       ]
-      }
-     ],
-     "prompt_number": 122
-    },
-    {
-     "cell_type": "code",
-     "collapsed": false,
-     "input": [
-      "g = Game(random.choice(WORDS), player=PlayerAlphabetical())\n",
-      "g.play_game()\n",
-      "print('Target:', g.target, '; Discovered:', g.discovered, '; Lives remaining:', g.lives)"
-     ],
-     "language": "python",
-     "metadata": {},
-     "outputs": [
-      {
-       "output_type": "stream",
-       "stream": "stdout",
-       "text": [
-        "Target: provisoes ; Discovered: ['_', '_', '_', '_', 'i', '_', '_', 'e', '_'] ; Lives remaining: 0\n"
-       ]
-      }
-     ],
-     "prompt_number": 123
-    },
-    {
-     "cell_type": "code",
-     "collapsed": false,
-     "input": [
-      "g = Game(random.choice(WORDS), player=PlayerFixedOrder(list(reversed(string.ascii_lowercase))))\n",
-      "g.play_game()\n",
-      "print('Target:', g.target, '; Discovered:', g.discovered, '; Lives remaining:', g.lives)"
-     ],
-     "language": "python",
-     "metadata": {},
-     "outputs": [
-      {
-       "output_type": "stream",
-       "stream": "stdout",
-       "text": [
-        "Target: invincible ; Discovered: ['_', '_', 'v', '_', '_', '_', '_', '_', '_', '_'] ; Lives remaining: 0\n"
-       ]
-      }
-     ],
-     "prompt_number": 124
-    },
-    {
-     "cell_type": "code",
-     "collapsed": false,
-     "input": [
-      "g = Game(random.choice(WORDS), player=PlayerFixedOrder(list(reversed(string.ascii_lowercase))))\n",
-      "g.play_game()\n",
-      "print('Target:', g.target, '; Discovered:', g.discovered, '; Lives remaining:', g.lives)"
-     ],
-     "language": "python",
-     "metadata": {},
-     "outputs": [
-      {
-       "output_type": "stream",
-       "stream": "stdout",
-       "text": [
-        "Target: clogging ; Discovered: ['_', '_', '_', '_', '_', '_', '_', '_'] ; Lives remaining: 0\n"
-       ]
-      }
-     ],
-     "prompt_number": 125
-    },
-    {
-     "cell_type": "code",
-     "collapsed": false,
-     "input": [
-      "wins = 0\n",
-      "for _ in range(1000):\n",
-      "    g = Game(random.choice(WORDS), player=PlayerAlphabetical())\n",
-      "    g.play_game()\n",
-      "    if g.game_won:\n",
-      "        wins += 1\n",
-      "print(wins)"
-     ],
-     "language": "python",
-     "metadata": {},
-     "outputs": [
-      {
-       "output_type": "stream",
-       "stream": "stdout",
-       "text": [
-        "44\n"
-       ]
-      }
-     ],
-     "prompt_number": 126
-    },
-    {
-     "cell_type": "code",
-     "collapsed": false,
-     "input": [
-      "wins = 0\n",
-      "for _ in range(1000):\n",
-      "    g = Game(random.choice(WORDS), player=PlayerFreqOrdered())\n",
-      "    g.play_game()\n",
-      "    if g.game_won:\n",
-      "        wins += 1\n",
-      "print(wins)"
-     ],
-     "language": "python",
-     "metadata": {},
-     "outputs": [
-      {
-       "output_type": "stream",
-       "stream": "stdout",
-       "text": [
-        "320\n"
-       ]
-      }
-     ],
-     "prompt_number": 127
-    },
-    {
-     "cell_type": "code",
-     "collapsed": false,
-     "input": [
-      "wins = 0\n",
-      "for _ in range(1000):\n",
-      "    g = Game(random.choice(WORDS), player=PlayerFixedOrder(list(reversed(string.ascii_lowercase))))\n",
-      "    g.play_game()\n",
-      "    if g.game_won:\n",
-      "        wins += 1\n",
-      "print(wins)"
-     ],
-     "language": "python",
-     "metadata": {},
-     "outputs": [
-      {
-       "output_type": "stream",
-       "stream": "stdout",
-       "text": [
-        "7\n"
-       ]
-      }
-     ],
-     "prompt_number": 128
-    },
-    {
-     "cell_type": "code",
-     "collapsed": false,
-     "input": [],
-     "language": "python",
-     "metadata": {},
-     "outputs": [],
-     "prompt_number": 128
-    }
-   ],
-   "metadata": {}
-  }
- ]
-}
\ No newline at end of file
diff --git a/hangman/hangman-guesser.ipynb b/hangman/hangman-guesser.ipynb
deleted file mode 100644 (file)
index eb892bf..0000000
+++ /dev/null
@@ -1,449 +0,0 @@
-{
- "metadata": {
-  "name": "",
-  "signature": "sha256:ec76c8912af009e1d51e1d840d9f295e2df8755e6278243cce7b6584e2ed1a24"
- },
- "nbformat": 3,
- "nbformat_minor": 0,
- "worksheets": [
-  {
-   "cells": [
-    {
-     "cell_type": "code",
-     "collapsed": false,
-     "input": [
-      "import string\n",
-      "import collections"
-     ],
-     "language": "python",
-     "metadata": {},
-     "outputs": [],
-     "prompt_number": 1
-    },
-    {
-     "cell_type": "code",
-     "collapsed": false,
-     "input": [
-      "letter_counts = collections.Counter(l.lower() for l in open('sherlock-holmes.txt').read() if l in string.ascii_letters)\n",
-      "letter_counts"
-     ],
-     "language": "python",
-     "metadata": {},
-     "outputs": [
-      {
-       "metadata": {},
-       "output_type": "pyout",
-       "prompt_number": 4,
-       "text": [
-        "Counter({'e': 53111, 't': 38981, 'a': 35137, 'o': 33512, 'i': 30140, 'h': 29047, 'n': 28682, 's': 27194, 'r': 24508, 'd': 18563, 'l': 17145, 'u': 13116, 'm': 11787, 'w': 11266, 'c': 10499, 'y': 9431, 'f': 8975, 'g': 7887, 'p': 6835, 'b': 6362, 'v': 4452, 'k': 3543, 'x': 549, 'j': 452, 'q': 426, 'z': 149})"
-       ]
-      }
-     ],
-     "prompt_number": 4
-    },
-    {
-     "cell_type": "code",
-     "collapsed": false,
-     "input": [
-      "letters_in_order = [p[0] for p in letter_counts.most_common()]\n",
-      "letters_in_order"
-     ],
-     "language": "python",
-     "metadata": {},
-     "outputs": [
-      {
-       "metadata": {},
-       "output_type": "pyout",
-       "prompt_number": 9,
-       "text": [
-        "['e',\n",
-        " 't',\n",
-        " 'a',\n",
-        " 'o',\n",
-        " 'i',\n",
-        " 'h',\n",
-        " 'n',\n",
-        " 's',\n",
-        " 'r',\n",
-        " 'd',\n",
-        " 'l',\n",
-        " 'u',\n",
-        " 'm',\n",
-        " 'w',\n",
-        " 'c',\n",
-        " 'y',\n",
-        " 'f',\n",
-        " 'g',\n",
-        " 'p',\n",
-        " 'b',\n",
-        " 'v',\n",
-        " 'k',\n",
-        " 'x',\n",
-        " 'j',\n",
-        " 'q',\n",
-        " 'z']"
-       ]
-      }
-     ],
-     "prompt_number": 9
-    },
-    {
-     "cell_type": "code",
-     "collapsed": false,
-     "input": [
-      "def make_guess():\n",
-      "    guessed_letters = read_game()\n",
-      "    unguessed_letters_in_order = ordered_subtract(letters_in_order, guessed_letters)\n",
-      "    print('My guess is:', unguessed_letters_in_order[0])"
-     ],
-     "language": "python",
-     "metadata": {},
-     "outputs": [],
-     "prompt_number": 29
-    },
-    {
-     "cell_type": "code",
-     "collapsed": false,
-     "input": [
-      "def read_game():\n",
-      "    discovered = input('Enter the discovered word: ')\n",
-      "    missed = input('Enter the wrong guesses: ')\n",
-      "    return [l.lower() for l in discovered + missed if l in string.ascii_letters]"
-     ],
-     "language": "python",
-     "metadata": {},
-     "outputs": [],
-     "prompt_number": 30
-    },
-    {
-     "cell_type": "code",
-     "collapsed": false,
-     "input": [
-      "def ordered_subtract(ordered_list, to_remove):\n",
-      "    for r in to_remove:\n",
-      "        if r in ordered_list:\n",
-      "            ordered_list.remove(r)\n",
-      "    return ordered_list"
-     ],
-     "language": "python",
-     "metadata": {},
-     "outputs": [],
-     "prompt_number": 19
-    },
-    {
-     "cell_type": "code",
-     "collapsed": false,
-     "input": [
-      "letters_in_order"
-     ],
-     "language": "python",
-     "metadata": {},
-     "outputs": [
-      {
-       "metadata": {},
-       "output_type": "pyout",
-       "prompt_number": 20,
-       "text": [
-        "['e',\n",
-        " 't',\n",
-        " 'a',\n",
-        " 'o',\n",
-        " 'i',\n",
-        " 'h',\n",
-        " 'n',\n",
-        " 's',\n",
-        " 'r',\n",
-        " 'd',\n",
-        " 'l',\n",
-        " 'u',\n",
-        " 'm',\n",
-        " 'w',\n",
-        " 'c',\n",
-        " 'y',\n",
-        " 'f',\n",
-        " 'g',\n",
-        " 'p',\n",
-        " 'b',\n",
-        " 'v',\n",
-        " 'k',\n",
-        " 'x',\n",
-        " 'j',\n",
-        " 'q',\n",
-        " 'z']"
-       ]
-      }
-     ],
-     "prompt_number": 20
-    },
-    {
-     "cell_type": "code",
-     "collapsed": false,
-     "input": [
-      "ordered_subtract(letters_in_order, 'etaoin')"
-     ],
-     "language": "python",
-     "metadata": {},
-     "outputs": [
-      {
-       "metadata": {},
-       "output_type": "pyout",
-       "prompt_number": 21,
-       "text": [
-        "['h',\n",
-        " 's',\n",
-        " 'r',\n",
-        " 'd',\n",
-        " 'l',\n",
-        " 'u',\n",
-        " 'm',\n",
-        " 'w',\n",
-        " 'c',\n",
-        " 'y',\n",
-        " 'f',\n",
-        " 'g',\n",
-        " 'p',\n",
-        " 'b',\n",
-        " 'v',\n",
-        " 'k',\n",
-        " 'x',\n",
-        " 'j',\n",
-        " 'q',\n",
-        " 'z']"
-       ]
-      }
-     ],
-     "prompt_number": 21
-    },
-    {
-     "cell_type": "code",
-     "collapsed": false,
-     "input": [
-      "letters_in_order"
-     ],
-     "language": "python",
-     "metadata": {},
-     "outputs": [
-      {
-       "metadata": {},
-       "output_type": "pyout",
-       "prompt_number": 22,
-       "text": [
-        "['h',\n",
-        " 's',\n",
-        " 'r',\n",
-        " 'd',\n",
-        " 'l',\n",
-        " 'u',\n",
-        " 'm',\n",
-        " 'w',\n",
-        " 'c',\n",
-        " 'y',\n",
-        " 'f',\n",
-        " 'g',\n",
-        " 'p',\n",
-        " 'b',\n",
-        " 'v',\n",
-        " 'k',\n",
-        " 'x',\n",
-        " 'j',\n",
-        " 'q',\n",
-        " 'z']"
-       ]
-      }
-     ],
-     "prompt_number": 22
-    },
-    {
-     "cell_type": "code",
-     "collapsed": false,
-     "input": [
-      "def ordered_subtract(ordered_list, to_remove):\n",
-      "    for r in to_remove:\n",
-      "        if r in ordered_list:\n",
-      "            ri = ordered_list.index(r)\n",
-      "            ordered_list = ordered_list[:ri] + ordered_list[ri+1:]\n",
-      "    return ordered_list"
-     ],
-     "language": "python",
-     "metadata": {},
-     "outputs": [],
-     "prompt_number": 26
-    },
-    {
-     "cell_type": "code",
-     "collapsed": false,
-     "input": [
-      "letters_in_order = [p[0] for p in letter_counts.most_common()]\n",
-      "letters_in_order"
-     ],
-     "language": "python",
-     "metadata": {},
-     "outputs": [
-      {
-       "metadata": {},
-       "output_type": "pyout",
-       "prompt_number": 24,
-       "text": [
-        "['e',\n",
-        " 't',\n",
-        " 'a',\n",
-        " 'o',\n",
-        " 'i',\n",
-        " 'h',\n",
-        " 'n',\n",
-        " 's',\n",
-        " 'r',\n",
-        " 'd',\n",
-        " 'l',\n",
-        " 'u',\n",
-        " 'm',\n",
-        " 'w',\n",
-        " 'c',\n",
-        " 'y',\n",
-        " 'f',\n",
-        " 'g',\n",
-        " 'p',\n",
-        " 'b',\n",
-        " 'v',\n",
-        " 'k',\n",
-        " 'x',\n",
-        " 'j',\n",
-        " 'q',\n",
-        " 'z']"
-       ]
-      }
-     ],
-     "prompt_number": 24
-    },
-    {
-     "cell_type": "code",
-     "collapsed": false,
-     "input": [
-      "ordered_subtract(letters_in_order, 'etaoin')"
-     ],
-     "language": "python",
-     "metadata": {},
-     "outputs": [
-      {
-       "metadata": {},
-       "output_type": "pyout",
-       "prompt_number": 27,
-       "text": [
-        "['h',\n",
-        " 's',\n",
-        " 'r',\n",
-        " 'd',\n",
-        " 'l',\n",
-        " 'u',\n",
-        " 'm',\n",
-        " 'w',\n",
-        " 'c',\n",
-        " 'y',\n",
-        " 'f',\n",
-        " 'g',\n",
-        " 'p',\n",
-        " 'b',\n",
-        " 'v',\n",
-        " 'k',\n",
-        " 'x',\n",
-        " 'j',\n",
-        " 'q',\n",
-        " 'z']"
-       ]
-      }
-     ],
-     "prompt_number": 27
-    },
-    {
-     "cell_type": "code",
-     "collapsed": false,
-     "input": [
-      "letters_in_order"
-     ],
-     "language": "python",
-     "metadata": {},
-     "outputs": [
-      {
-       "metadata": {},
-       "output_type": "pyout",
-       "prompt_number": 28,
-       "text": [
-        "['e',\n",
-        " 't',\n",
-        " 'a',\n",
-        " 'o',\n",
-        " 'i',\n",
-        " 'h',\n",
-        " 'n',\n",
-        " 's',\n",
-        " 'r',\n",
-        " 'd',\n",
-        " 'l',\n",
-        " 'u',\n",
-        " 'm',\n",
-        " 'w',\n",
-        " 'c',\n",
-        " 'y',\n",
-        " 'f',\n",
-        " 'g',\n",
-        " 'p',\n",
-        " 'b',\n",
-        " 'v',\n",
-        " 'k',\n",
-        " 'x',\n",
-        " 'j',\n",
-        " 'q',\n",
-        " 'z']"
-       ]
-      }
-     ],
-     "prompt_number": 28
-    },
-    {
-     "cell_type": "code",
-     "collapsed": false,
-     "input": [
-      "make_guess()"
-     ],
-     "language": "python",
-     "metadata": {},
-     "outputs": [
-      {
-       "name": "stdout",
-       "output_type": "stream",
-       "stream": "stdout",
-       "text": [
-        "Enter the discovered word: _a__y\n"
-       ]
-      },
-      {
-       "name": "stdout",
-       "output_type": "stream",
-       "stream": "stdout",
-       "text": [
-        "Enter the wrong guesses: eit\n"
-       ]
-      },
-      {
-       "output_type": "stream",
-       "stream": "stdout",
-       "text": [
-        "My guess is: o\n"
-       ]
-      }
-     ],
-     "prompt_number": 31
-    },
-    {
-     "cell_type": "code",
-     "collapsed": false,
-     "input": [],
-     "language": "python",
-     "metadata": {},
-     "outputs": []
-    }
-   ],
-   "metadata": {}
-  }
- ]
-}
\ No newline at end of file
diff --git a/hangman/hangman-logging.ipynb b/hangman/hangman-logging.ipynb
deleted file mode 100644 (file)
index b14dd0f..0000000
+++ /dev/null
@@ -1,5128 +0,0 @@
-{
- "metadata": {
-  "name": "",
-  "signature": "sha256:319787fef945fe728683c1bd9cbdb783efff5e79fec8332f433ebca77395f16d"
- },
- "nbformat": 3,
- "nbformat_minor": 0,
- "worksheets": [
-  {
-   "cells": [
-    {
-     "cell_type": "code",
-     "collapsed": false,
-     "input": [
-      "from hangman import *\n",
-      "import csv"
-     ],
-     "language": "python",
-     "metadata": {},
-     "outputs": [],
-     "prompt_number": 5
-    },
-    {
-     "cell_type": "code",
-     "collapsed": false,
-     "input": [
-      "with open('fixed_alphabetical.csv', 'w', newline='') as csvfile:\n",
-      "    gamewriter = csv.writer(csvfile)\n",
-      "    gamewriter.writerow([\"target\", \"discovered\", \"wrong letters\", \"number of hits\", \"lives remaining\", \"game won\"])\n",
-      "    for _ in range(100):\n",
-      "        g = Game(random.choice(WORDS), player=PlayerAlphabetical())\n",
-      "        g.play_game()\n",
-      "        gamewriter.writerow([g.target, g.discovered, g.wrong_letters, \n",
-      "                                len([l for l in g.discovered if l != '_']),\n",
-      "                                g.lives, g.game_won])"
-     ],
-     "language": "python",
-     "metadata": {},
-     "outputs": [],
-     "prompt_number": 63
-    },
-    {
-     "cell_type": "code",
-     "collapsed": false,
-     "input": [
-      "players = [(PlayerAlphabetical, None, 'fixed_alphabetical.csv'), \n",
-      "           (PlayerAlphabeticalReversed, None, 'fixed_alphabetical_reversed.csv'), \n",
-      "           (PlayerFreqOrdered, None, 'fixed_order.csv'),\n",
-      "           (PlayerDictFreqOrdered, None, 'fixed_dict_order.csv'),\n",
-      "           (PlayerAdaptiveLength, WORDS, 'adaptive_length.csv'),\n",
-      "           (PlayerAdaptiveIncludedLetters, WORDS, 'adaptive_included.csv'),\n",
-      "           (PlayerAdaptiveExcludedLetters, WORDS, 'adaptive_excluded.csv'),\n",
-      "           (PlayerAdaptivePattern, WORDS, 'adaptive_pattern.csv'),\n",
-      "           (PlayerAdaptiveSplit, WORDS, 'adaptive_split.csv')]\n",
-      "\n",
-      "games_per_player = 1000\n",
-      "\n",
-      "for p, a, f in players:\n",
-      "    with open(f, 'w', newline='') as csvfile:\n",
-      "        gamewriter = csv.writer(csvfile)\n",
-      "        gamewriter.writerow([\"target\", \"discovered\", \"wrong letters\", \"number of hits\", \"lives remaining\", \"game won\"])\n",
-      "        for _ in range(games_per_player):\n",
-      "            if a:\n",
-      "                player = p(a)\n",
-      "            else:\n",
-      "                player=p()\n",
-      "            g = Game(random.choice(WORDS), player=player)\n",
-      "            g.play_game()\n",
-      "            gamewriter.writerow([g.target, g.discovered, g.wrong_letters, \n",
-      "                                len([l for l in g.discovered if l != '_']),\n",
-      "                                g.lives, g.game_won])"
-     ],
-     "language": "python",
-     "metadata": {},
-     "outputs": [],
-     "prompt_number": 64
-    },
-    {
-     "cell_type": "code",
-     "collapsed": false,
-     "input": [
-      "players = [(PlayerAdaptiveSplit, WORDS, 'adaptive_split.csv')]\n",
-      "\n",
-      "games_per_player = 1000\n",
-      "\n",
-      "for p, a, f in players:\n",
-      "    with open(f, 'w', newline='') as csvfile:\n",
-      "        gamewriter = csv.writer(csvfile)\n",
-      "        gamewriter.writerow([\"target\", \"discovered\", \"wrong letters\", \"number of hits\", \"lives remaining\", \"game won\"])\n",
-      "        for _ in range(games_per_player):\n",
-      "            if a:\n",
-      "                player = p(a)\n",
-      "            else:\n",
-      "                player=p()\n",
-      "            g = Game(random.choice(WORDS), player=player)\n",
-      "            g.play_game()\n",
-      "            gamewriter.writerow([g.target, g.discovered, g.wrong_letters, \n",
-      "                                len([l for l in g.discovered if l != '_']),\n",
-      "                                g.lives, g.game_won])"
-     ],
-     "language": "python",
-     "metadata": {},
-     "outputs": [],
-     "prompt_number": 6
-    },
-    {
-     "cell_type": "code",
-     "collapsed": false,
-     "input": [
-      "import pandas as pd\n",
-      "import matplotlib as mpl\n",
-      "import matplotlib.pyplot as plt\n",
-      "%matplotlib inline"
-     ],
-     "language": "python",
-     "metadata": {},
-     "outputs": [],
-     "prompt_number": 7
-    },
-    {
-     "cell_type": "code",
-     "collapsed": false,
-     "input": [
-      "fixed_order = pd.read_csv('fixed_order.csv')\n",
-      "fixed_order"
-     ],
-     "language": "python",
-     "metadata": {},
-     "outputs": [
-      {
-       "html": [
-        "<div style=\"max-height:1000px;max-width:1500px;overflow:auto;\">\n",
-        "<table border=\"1\" class=\"dataframe\">\n",
-        "  <thead>\n",
-        "    <tr style=\"text-align: right;\">\n",
-        "      <th></th>\n",
-        "      <th>target</th>\n",
-        "      <th>discovered</th>\n",
-        "      <th>wrong letters</th>\n",
-        "      <th>number of hits</th>\n",
-        "      <th>lives remaining</th>\n",
-        "      <th>game won</th>\n",
-        "    </tr>\n",
-        "  </thead>\n",
-        "  <tbody>\n",
-        "    <tr>\n",
-        "      <th>0  </th>\n",
-        "      <td>     mouldering</td>\n",
-        "      <td> ['m', 'o', 'u', 'l', 'd', 'e', 'r', 'i', 'n', ...</td>\n",
-        "      <td>          ['t', 'a', 'h', 's', 'w', 'c', 'y', 'f']</td>\n",
-        "      <td> 10</td>\n",
-        "      <td> 2</td>\n",
-        "      <td>  True</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>1  </th>\n",
-        "      <td>         deject</td>\n",
-        "      <td>                    ['d', 'e', '_', 'e', '_', 't']</td>\n",
-        "      <td> ['a', 'o', 'i', 'h', 'n', 's', 'r', 'l', 'u', ...</td>\n",
-        "      <td>  4</td>\n",
-        "      <td> 0</td>\n",
-        "      <td> False</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>2  </th>\n",
-        "      <td>      lipsticks</td>\n",
-        "      <td>     ['l', 'i', '_', 's', 't', 'i', '_', '_', 's']</td>\n",
-        "      <td> ['e', 'a', 'o', 'h', 'n', 'r', 'd', 'u', 'm', ...</td>\n",
-        "      <td>  6</td>\n",
-        "      <td> 0</td>\n",
-        "      <td> False</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>3  </th>\n",
-        "      <td>     disparaged</td>\n",
-        "      <td> ['d', 'i', 's', '_', 'a', 'r', 'a', '_', 'e', ...</td>\n",
-        "      <td> ['t', 'o', 'h', 'n', 'l', 'u', 'm', 'w', 'c', ...</td>\n",
-        "      <td>  8</td>\n",
-        "      <td> 0</td>\n",
-        "      <td> False</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>4  </th>\n",
-        "      <td>         legion</td>\n",
-        "      <td>                    ['l', 'e', '_', 'i', 'o', 'n']</td>\n",
-        "      <td> ['t', 'a', 'h', 's', 'r', 'd', 'u', 'm', 'w', ...</td>\n",
-        "      <td>  5</td>\n",
-        "      <td> 0</td>\n",
-        "      <td> False</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>5  </th>\n",
-        "      <td>    fabricating</td>\n",
-        "      <td> ['_', 'a', '_', 'r', 'i', 'c', 'a', 't', 'i', ...</td>\n",
-        "      <td> ['e', 'o', 'h', 's', 'd', 'l', 'u', 'm', 'w', ...</td>\n",
-        "      <td>  8</td>\n",
-        "      <td> 0</td>\n",
-        "      <td> False</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>6  </th>\n",
-        "      <td>        nicking</td>\n",
-        "      <td>               ['n', 'i', '_', '_', 'i', 'n', '_']</td>\n",
-        "      <td> ['e', 't', 'a', 'o', 'h', 's', 'r', 'd', 'l', ...</td>\n",
-        "      <td>  4</td>\n",
-        "      <td> 0</td>\n",
-        "      <td> False</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>7  </th>\n",
-        "      <td>       actinium</td>\n",
-        "      <td>          ['a', 'c', 't', 'i', 'n', 'i', 'u', 'm']</td>\n",
-        "      <td>          ['e', 'o', 'h', 's', 'r', 'd', 'l', 'w']</td>\n",
-        "      <td>  8</td>\n",
-        "      <td> 2</td>\n",
-        "      <td>  True</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>8  </th>\n",
-        "      <td>        sedates</td>\n",
-        "      <td>               ['s', 'e', 'd', 'a', 't', 'e', 's']</td>\n",
-        "      <td>                         ['o', 'i', 'h', 'n', 'r']</td>\n",
-        "      <td>  7</td>\n",
-        "      <td> 5</td>\n",
-        "      <td>  True</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>9  </th>\n",
-        "      <td>    modernistic</td>\n",
-        "      <td> ['m', 'o', 'd', 'e', 'r', 'n', 'i', 's', 't', ...</td>\n",
-        "      <td>                         ['a', 'h', 'l', 'u', 'w']</td>\n",
-        "      <td> 11</td>\n",
-        "      <td> 5</td>\n",
-        "      <td>  True</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>10 </th>\n",
-        "      <td>        grouchy</td>\n",
-        "      <td>               ['_', 'r', 'o', 'u', '_', 'h', '_']</td>\n",
-        "      <td> ['e', 't', 'a', 'i', 'n', 's', 'd', 'l', 'm', ...</td>\n",
-        "      <td>  4</td>\n",
-        "      <td> 0</td>\n",
-        "      <td> False</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>11 </th>\n",
-        "      <td>           goop</td>\n",
-        "      <td>                              ['_', 'o', 'o', '_']</td>\n",
-        "      <td> ['e', 't', 'a', 'i', 'h', 'n', 's', 'r', 'd', ...</td>\n",
-        "      <td>  2</td>\n",
-        "      <td> 0</td>\n",
-        "      <td> False</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>12 </th>\n",
-        "      <td>       theorems</td>\n",
-        "      <td>          ['t', 'h', 'e', 'o', 'r', 'e', 'm', 's']</td>\n",
-        "      <td>                    ['a', 'i', 'n', 'd', 'l', 'u']</td>\n",
-        "      <td>  8</td>\n",
-        "      <td> 4</td>\n",
-        "      <td>  True</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>13 </th>\n",
-        "      <td>     panickiest</td>\n",
-        "      <td> ['_', 'a', 'n', 'i', 'c', '_', 'i', 'e', 's', ...</td>\n",
-        "      <td> ['o', 'h', 'r', 'd', 'l', 'u', 'm', 'w', 'y', ...</td>\n",
-        "      <td>  8</td>\n",
-        "      <td> 0</td>\n",
-        "      <td> False</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>14 </th>\n",
-        "      <td>     rightfully</td>\n",
-        "      <td> ['r', 'i', 'g', 'h', 't', 'f', 'u', 'l', 'l', ...</td>\n",
-        "      <td>     ['e', 'a', 'o', 'n', 's', 'd', 'm', 'w', 'c']</td>\n",
-        "      <td> 10</td>\n",
-        "      <td> 1</td>\n",
-        "      <td>  True</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>15 </th>\n",
-        "      <td>       esquires</td>\n",
-        "      <td>          ['e', 's', '_', 'u', 'i', 'r', 'e', 's']</td>\n",
-        "      <td> ['t', 'a', 'o', 'h', 'n', 'd', 'l', 'm', 'w', ...</td>\n",
-        "      <td>  7</td>\n",
-        "      <td> 0</td>\n",
-        "      <td> False</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>16 </th>\n",
-        "      <td>         violet</td>\n",
-        "      <td>                    ['_', 'i', 'o', 'l', 'e', 't']</td>\n",
-        "      <td> ['a', 'h', 'n', 's', 'r', 'd', 'u', 'm', 'w', ...</td>\n",
-        "      <td>  5</td>\n",
-        "      <td> 0</td>\n",
-        "      <td> False</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>17 </th>\n",
-        "      <td> dermatologists</td>\n",
-        "      <td> ['d', 'e', 'r', 'm', 'a', 't', 'o', 'l', 'o', ...</td>\n",
-        "      <td>               ['h', 'n', 'u', 'w', 'c', 'y', 'f']</td>\n",
-        "      <td> 14</td>\n",
-        "      <td> 3</td>\n",
-        "      <td>  True</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>18 </th>\n",
-        "      <td>          inane</td>\n",
-        "      <td>                         ['i', 'n', 'a', 'n', 'e']</td>\n",
-        "      <td>                                   ['t', 'o', 'h']</td>\n",
-        "      <td>  5</td>\n",
-        "      <td> 7</td>\n",
-        "      <td>  True</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>19 </th>\n",
-        "      <td>        bonkers</td>\n",
-        "      <td>               ['_', 'o', 'n', '_', 'e', 'r', 's']</td>\n",
-        "      <td> ['t', 'a', 'i', 'h', 'd', 'l', 'u', 'm', 'w', ...</td>\n",
-        "      <td>  5</td>\n",
-        "      <td> 0</td>\n",
-        "      <td> False</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>20 </th>\n",
-        "      <td>    reassigning</td>\n",
-        "      <td> ['r', 'e', 'a', 's', 's', 'i', '_', 'n', 'i', ...</td>\n",
-        "      <td> ['t', 'o', 'h', 'd', 'l', 'u', 'm', 'w', 'c', ...</td>\n",
-        "      <td>  9</td>\n",
-        "      <td> 0</td>\n",
-        "      <td> False</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>21 </th>\n",
-        "      <td>      sweatshop</td>\n",
-        "      <td>     ['s', 'w', 'e', 'a', 't', 's', 'h', 'o', '_']</td>\n",
-        "      <td> ['i', 'n', 'r', 'd', 'l', 'u', 'm', 'c', 'y', ...</td>\n",
-        "      <td>  8</td>\n",
-        "      <td> 0</td>\n",
-        "      <td> False</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>22 </th>\n",
-        "      <td>             ks</td>\n",
-        "      <td>                                        ['_', 's']</td>\n",
-        "      <td> ['e', 't', 'a', 'o', 'i', 'h', 'n', 'r', 'd', ...</td>\n",
-        "      <td>  1</td>\n",
-        "      <td> 0</td>\n",
-        "      <td> False</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>23 </th>\n",
-        "      <td>       outcomes</td>\n",
-        "      <td>          ['o', 'u', 't', 'c', 'o', 'm', 'e', 's']</td>\n",
-        "      <td>          ['a', 'i', 'h', 'n', 'r', 'd', 'l', 'w']</td>\n",
-        "      <td>  8</td>\n",
-        "      <td> 2</td>\n",
-        "      <td>  True</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>24 </th>\n",
-        "      <td>     parenthood</td>\n",
-        "      <td> ['_', 'a', 'r', 'e', 'n', 't', 'h', 'o', 'o', ...</td>\n",
-        "      <td> ['i', 's', 'l', 'u', 'm', 'w', 'c', 'y', 'f', ...</td>\n",
-        "      <td>  9</td>\n",
-        "      <td> 0</td>\n",
-        "      <td> False</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>25 </th>\n",
-        "      <td>    frequencies</td>\n",
-        "      <td> ['f', 'r', 'e', '_', 'u', 'e', 'n', 'c', 'i', ...</td>\n",
-        "      <td> ['t', 'a', 'o', 'h', 'd', 'l', 'm', 'w', 'y', ...</td>\n",
-        "      <td> 10</td>\n",
-        "      <td> 0</td>\n",
-        "      <td> False</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>26 </th>\n",
-        "      <td>         manias</td>\n",
-        "      <td>                    ['m', 'a', 'n', 'i', 'a', 's']</td>\n",
-        "      <td>          ['e', 't', 'o', 'h', 'r', 'd', 'l', 'u']</td>\n",
-        "      <td>  6</td>\n",
-        "      <td> 2</td>\n",
-        "      <td>  True</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>27 </th>\n",
-        "      <td>    resupplying</td>\n",
-        "      <td> ['r', 'e', 's', 'u', 'p', 'p', 'l', 'y', 'i', ...</td>\n",
-        "      <td>     ['t', 'a', 'o', 'h', 'd', 'm', 'w', 'c', 'f']</td>\n",
-        "      <td> 11</td>\n",
-        "      <td> 1</td>\n",
-        "      <td>  True</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>28 </th>\n",
-        "      <td>   subcontinent</td>\n",
-        "      <td> ['s', 'u', '_', 'c', 'o', 'n', 't', 'i', 'n', ...</td>\n",
-        "      <td> ['a', 'h', 'r', 'd', 'l', 'm', 'w', 'y', 'f', ...</td>\n",
-        "      <td> 11</td>\n",
-        "      <td> 0</td>\n",
-        "      <td> False</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>29 </th>\n",
-        "      <td>      baptismal</td>\n",
-        "      <td>     ['_', 'a', '_', 't', 'i', 's', 'm', 'a', 'l']</td>\n",
-        "      <td> ['e', 'o', 'h', 'n', 'r', 'd', 'u', 'w', 'c', ...</td>\n",
-        "      <td>  7</td>\n",
-        "      <td> 0</td>\n",
-        "      <td> False</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>...</th>\n",
-        "      <td>...</td>\n",
-        "      <td>...</td>\n",
-        "      <td>...</td>\n",
-        "      <td>...</td>\n",
-        "      <td>...</td>\n",
-        "      <td>...</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>970</th>\n",
-        "      <td>          toxic</td>\n",
-        "      <td>                         ['t', 'o', '_', 'i', '_']</td>\n",
-        "      <td> ['e', 'a', 'h', 'n', 's', 'r', 'd', 'l', 'u', ...</td>\n",
-        "      <td>  3</td>\n",
-        "      <td> 0</td>\n",
-        "      <td> False</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>971</th>\n",
-        "      <td>    brigantines</td>\n",
-        "      <td> ['_', 'r', 'i', '_', 'a', 'n', 't', 'i', 'n', ...</td>\n",
-        "      <td> ['o', 'h', 'd', 'l', 'u', 'm', 'w', 'c', 'y', ...</td>\n",
-        "      <td>  9</td>\n",
-        "      <td> 0</td>\n",
-        "      <td> False</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>972</th>\n",
-        "      <td>        imagery</td>\n",
-        "      <td>               ['i', 'm', 'a', '_', 'e', 'r', '_']</td>\n",
-        "      <td> ['t', 'o', 'h', 'n', 's', 'd', 'l', 'u', 'w', ...</td>\n",
-        "      <td>  5</td>\n",
-        "      <td> 0</td>\n",
-        "      <td> False</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>973</th>\n",
-        "      <td>    melancholic</td>\n",
-        "      <td> ['m', 'e', 'l', 'a', 'n', 'c', 'h', 'o', 'l', ...</td>\n",
-        "      <td>                    ['t', 's', 'r', 'd', 'u', 'w']</td>\n",
-        "      <td> 11</td>\n",
-        "      <td> 4</td>\n",
-        "      <td>  True</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>974</th>\n",
-        "      <td>    enthusiasms</td>\n",
-        "      <td> ['e', 'n', 't', 'h', 'u', 's', 'i', 'a', 's', ...</td>\n",
-        "      <td>                              ['o', 'r', 'd', 'l']</td>\n",
-        "      <td> 11</td>\n",
-        "      <td> 6</td>\n",
-        "      <td>  True</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>975</th>\n",
-        "      <td>        abraded</td>\n",
-        "      <td>               ['a', '_', 'r', 'a', 'd', 'e', 'd']</td>\n",
-        "      <td> ['t', 'o', 'i', 'h', 'n', 's', 'l', 'u', 'm', ...</td>\n",
-        "      <td>  6</td>\n",
-        "      <td> 0</td>\n",
-        "      <td> False</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>976</th>\n",
-        "      <td>          lakes</td>\n",
-        "      <td>                         ['l', 'a', '_', 'e', 's']</td>\n",
-        "      <td> ['t', 'o', 'i', 'h', 'n', 'r', 'd', 'u', 'm', ...</td>\n",
-        "      <td>  4</td>\n",
-        "      <td> 0</td>\n",
-        "      <td> False</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>977</th>\n",
-        "      <td> telepathically</td>\n",
-        "      <td> ['t', 'e', 'l', 'e', '_', 'a', 't', 'h', 'i', ...</td>\n",
-        "      <td> ['o', 'n', 's', 'r', 'd', 'u', 'm', 'w', 'f', ...</td>\n",
-        "      <td> 13</td>\n",
-        "      <td> 0</td>\n",
-        "      <td> False</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>978</th>\n",
-        "      <td>         taking</td>\n",
-        "      <td>                    ['t', 'a', '_', 'i', 'n', '_']</td>\n",
-        "      <td> ['e', 'o', 'h', 's', 'r', 'd', 'l', 'u', 'm', ...</td>\n",
-        "      <td>  4</td>\n",
-        "      <td> 0</td>\n",
-        "      <td> False</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>979</th>\n",
-        "      <td>       tomorrow</td>\n",
-        "      <td>          ['t', 'o', 'm', 'o', 'r', 'r', 'o', 'w']</td>\n",
-        "      <td>     ['e', 'a', 'i', 'h', 'n', 's', 'd', 'l', 'u']</td>\n",
-        "      <td>  8</td>\n",
-        "      <td> 1</td>\n",
-        "      <td>  True</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>980</th>\n",
-        "      <td>         refile</td>\n",
-        "      <td>                    ['r', 'e', '_', 'i', 'l', 'e']</td>\n",
-        "      <td> ['t', 'a', 'o', 'h', 'n', 's', 'd', 'u', 'm', ...</td>\n",
-        "      <td>  5</td>\n",
-        "      <td> 0</td>\n",
-        "      <td> False</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>981</th>\n",
-        "      <td>         unkind</td>\n",
-        "      <td>                    ['u', 'n', '_', 'i', 'n', 'd']</td>\n",
-        "      <td> ['e', 't', 'a', 'o', 'h', 's', 'r', 'l', 'm', ...</td>\n",
-        "      <td>  5</td>\n",
-        "      <td> 0</td>\n",
-        "      <td> False</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>982</th>\n",
-        "      <td>      specimens</td>\n",
-        "      <td>     ['s', '_', 'e', 'c', 'i', 'm', 'e', 'n', 's']</td>\n",
-        "      <td> ['t', 'a', 'o', 'h', 'r', 'd', 'l', 'u', 'w', ...</td>\n",
-        "      <td>  8</td>\n",
-        "      <td> 0</td>\n",
-        "      <td> False</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>983</th>\n",
-        "      <td>        regrets</td>\n",
-        "      <td>               ['r', 'e', '_', 'r', 'e', 't', 's']</td>\n",
-        "      <td> ['a', 'o', 'i', 'h', 'n', 'd', 'l', 'u', 'm', ...</td>\n",
-        "      <td>  6</td>\n",
-        "      <td> 0</td>\n",
-        "      <td> False</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>984</th>\n",
-        "      <td>    remaindered</td>\n",
-        "      <td> ['r', 'e', 'm', 'a', 'i', 'n', 'd', 'e', 'r', ...</td>\n",
-        "      <td>                    ['t', 'o', 'h', 's', 'l', 'u']</td>\n",
-        "      <td> 11</td>\n",
-        "      <td> 4</td>\n",
-        "      <td>  True</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>985</th>\n",
-        "      <td>        dignify</td>\n",
-        "      <td>               ['d', 'i', '_', 'n', 'i', '_', '_']</td>\n",
-        "      <td> ['e', 't', 'a', 'o', 'h', 's', 'r', 'l', 'u', ...</td>\n",
-        "      <td>  4</td>\n",
-        "      <td> 0</td>\n",
-        "      <td> False</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>986</th>\n",
-        "      <td>      bandwagon</td>\n",
-        "      <td>     ['_', 'a', 'n', 'd', 'w', 'a', '_', 'o', 'n']</td>\n",
-        "      <td> ['e', 't', 'i', 'h', 's', 'r', 'l', 'u', 'm', ...</td>\n",
-        "      <td>  7</td>\n",
-        "      <td> 0</td>\n",
-        "      <td> False</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>987</th>\n",
-        "      <td>     pacemakers</td>\n",
-        "      <td> ['_', 'a', 'c', 'e', 'm', 'a', '_', 'e', 'r', ...</td>\n",
-        "      <td> ['t', 'o', 'i', 'h', 'n', 'd', 'l', 'u', 'w', ...</td>\n",
-        "      <td>  8</td>\n",
-        "      <td> 0</td>\n",
-        "      <td> False</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>988</th>\n",
-        "      <td>        dandles</td>\n",
-        "      <td>               ['d', 'a', 'n', 'd', 'l', 'e', 's']</td>\n",
-        "      <td>                         ['t', 'o', 'i', 'h', 'r']</td>\n",
-        "      <td>  7</td>\n",
-        "      <td> 5</td>\n",
-        "      <td>  True</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>989</th>\n",
-        "      <td>          white</td>\n",
-        "      <td>                         ['w', 'h', 'i', 't', 'e']</td>\n",
-        "      <td>     ['a', 'o', 'n', 's', 'r', 'd', 'l', 'u', 'm']</td>\n",
-        "      <td>  5</td>\n",
-        "      <td> 1</td>\n",
-        "      <td>  True</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>990</th>\n",
-        "      <td>          arena</td>\n",
-        "      <td>                         ['a', 'r', 'e', 'n', 'a']</td>\n",
-        "      <td>                         ['t', 'o', 'i', 'h', 's']</td>\n",
-        "      <td>  5</td>\n",
-        "      <td> 5</td>\n",
-        "      <td>  True</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>991</th>\n",
-        "      <td>        surreal</td>\n",
-        "      <td>               ['s', 'u', 'r', 'r', 'e', 'a', 'l']</td>\n",
-        "      <td>                    ['t', 'o', 'i', 'h', 'n', 'd']</td>\n",
-        "      <td>  7</td>\n",
-        "      <td> 4</td>\n",
-        "      <td>  True</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>992</th>\n",
-        "      <td>       gutsiest</td>\n",
-        "      <td>          ['_', 'u', 't', 's', 'i', 'e', 's', 't']</td>\n",
-        "      <td> ['a', 'o', 'h', 'n', 'r', 'd', 'l', 'm', 'w', ...</td>\n",
-        "      <td>  7</td>\n",
-        "      <td> 0</td>\n",
-        "      <td> False</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>993</th>\n",
-        "      <td>     annulments</td>\n",
-        "      <td> ['a', 'n', 'n', 'u', 'l', 'm', 'e', 'n', 't', ...</td>\n",
-        "      <td>                         ['o', 'i', 'h', 'r', 'd']</td>\n",
-        "      <td> 10</td>\n",
-        "      <td> 5</td>\n",
-        "      <td>  True</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>994</th>\n",
-        "      <td>     accretions</td>\n",
-        "      <td> ['a', 'c', 'c', 'r', 'e', 't', 'i', 'o', 'n', ...</td>\n",
-        "      <td>                    ['h', 'd', 'l', 'u', 'm', 'w']</td>\n",
-        "      <td> 10</td>\n",
-        "      <td> 4</td>\n",
-        "      <td>  True</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>995</th>\n",
-        "      <td>         safari</td>\n",
-        "      <td>                    ['s', 'a', '_', 'a', 'r', 'i']</td>\n",
-        "      <td> ['e', 't', 'o', 'h', 'n', 'd', 'l', 'u', 'm', ...</td>\n",
-        "      <td>  5</td>\n",
-        "      <td> 0</td>\n",
-        "      <td> False</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>996</th>\n",
-        "      <td>          recap</td>\n",
-        "      <td>                         ['r', 'e', '_', 'a', '_']</td>\n",
-        "      <td> ['t', 'o', 'i', 'h', 'n', 's', 'd', 'l', 'u', ...</td>\n",
-        "      <td>  3</td>\n",
-        "      <td> 0</td>\n",
-        "      <td> False</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>997</th>\n",
-        "      <td>          torts</td>\n",
-        "      <td>                         ['t', 'o', 'r', 't', 's']</td>\n",
-        "      <td>                         ['e', 'a', 'i', 'h', 'n']</td>\n",
-        "      <td>  5</td>\n",
-        "      <td> 5</td>\n",
-        "      <td>  True</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>998</th>\n",
-        "      <td>     tyrannised</td>\n",
-        "      <td> ['t', 'y', 'r', 'a', 'n', 'n', 'i', 's', 'e', ...</td>\n",
-        "      <td>               ['o', 'h', 'l', 'u', 'm', 'w', 'c']</td>\n",
-        "      <td> 10</td>\n",
-        "      <td> 3</td>\n",
-        "      <td>  True</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>999</th>\n",
-        "      <td>    indubitable</td>\n",
-        "      <td> ['i', 'n', 'd', 'u', '_', 'i', 't', 'a', '_', ...</td>\n",
-        "      <td> ['o', 'h', 's', 'r', 'm', 'w', 'c', 'y', 'f', ...</td>\n",
-        "      <td>  9</td>\n",
-        "      <td> 0</td>\n",
-        "      <td> False</td>\n",
-        "    </tr>\n",
-        "  </tbody>\n",
-        "</table>\n",
-        "<p>1000 rows \u00d7 6 columns</p>\n",
-        "</div>"
-       ],
-       "metadata": {},
-       "output_type": "pyout",
-       "prompt_number": 8,
-       "text": [
-        "             target                                         discovered  \\\n",
-        "0        mouldering  ['m', 'o', 'u', 'l', 'd', 'e', 'r', 'i', 'n', ...   \n",
-        "1            deject                     ['d', 'e', '_', 'e', '_', 't']   \n",
-        "2         lipsticks      ['l', 'i', '_', 's', 't', 'i', '_', '_', 's']   \n",
-        "3        disparaged  ['d', 'i', 's', '_', 'a', 'r', 'a', '_', 'e', ...   \n",
-        "4            legion                     ['l', 'e', '_', 'i', 'o', 'n']   \n",
-        "5       fabricating  ['_', 'a', '_', 'r', 'i', 'c', 'a', 't', 'i', ...   \n",
-        "6           nicking                ['n', 'i', '_', '_', 'i', 'n', '_']   \n",
-        "7          actinium           ['a', 'c', 't', 'i', 'n', 'i', 'u', 'm']   \n",
-        "8           sedates                ['s', 'e', 'd', 'a', 't', 'e', 's']   \n",
-        "9       modernistic  ['m', 'o', 'd', 'e', 'r', 'n', 'i', 's', 't', ...   \n",
-        "10          grouchy                ['_', 'r', 'o', 'u', '_', 'h', '_']   \n",
-        "11             goop                               ['_', 'o', 'o', '_']   \n",
-        "12         theorems           ['t', 'h', 'e', 'o', 'r', 'e', 'm', 's']   \n",
-        "13       panickiest  ['_', 'a', 'n', 'i', 'c', '_', 'i', 'e', 's', ...   \n",
-        "14       rightfully  ['r', 'i', 'g', 'h', 't', 'f', 'u', 'l', 'l', ...   \n",
-        "15         esquires           ['e', 's', '_', 'u', 'i', 'r', 'e', 's']   \n",
-        "16           violet                     ['_', 'i', 'o', 'l', 'e', 't']   \n",
-        "17   dermatologists  ['d', 'e', 'r', 'm', 'a', 't', 'o', 'l', 'o', ...   \n",
-        "18            inane                          ['i', 'n', 'a', 'n', 'e']   \n",
-        "19          bonkers                ['_', 'o', 'n', '_', 'e', 'r', 's']   \n",
-        "20      reassigning  ['r', 'e', 'a', 's', 's', 'i', '_', 'n', 'i', ...   \n",
-        "21        sweatshop      ['s', 'w', 'e', 'a', 't', 's', 'h', 'o', '_']   \n",
-        "22               ks                                         ['_', 's']   \n",
-        "23         outcomes           ['o', 'u', 't', 'c', 'o', 'm', 'e', 's']   \n",
-        "24       parenthood  ['_', 'a', 'r', 'e', 'n', 't', 'h', 'o', 'o', ...   \n",
-        "25      frequencies  ['f', 'r', 'e', '_', 'u', 'e', 'n', 'c', 'i', ...   \n",
-        "26           manias                     ['m', 'a', 'n', 'i', 'a', 's']   \n",
-        "27      resupplying  ['r', 'e', 's', 'u', 'p', 'p', 'l', 'y', 'i', ...   \n",
-        "28     subcontinent  ['s', 'u', '_', 'c', 'o', 'n', 't', 'i', 'n', ...   \n",
-        "29        baptismal      ['_', 'a', '_', 't', 'i', 's', 'm', 'a', 'l']   \n",
-        "..              ...                                                ...   \n",
-        "970           toxic                          ['t', 'o', '_', 'i', '_']   \n",
-        "971     brigantines  ['_', 'r', 'i', '_', 'a', 'n', 't', 'i', 'n', ...   \n",
-        "972         imagery                ['i', 'm', 'a', '_', 'e', 'r', '_']   \n",
-        "973     melancholic  ['m', 'e', 'l', 'a', 'n', 'c', 'h', 'o', 'l', ...   \n",
-        "974     enthusiasms  ['e', 'n', 't', 'h', 'u', 's', 'i', 'a', 's', ...   \n",
-        "975         abraded                ['a', '_', 'r', 'a', 'd', 'e', 'd']   \n",
-        "976           lakes                          ['l', 'a', '_', 'e', 's']   \n",
-        "977  telepathically  ['t', 'e', 'l', 'e', '_', 'a', 't', 'h', 'i', ...   \n",
-        "978          taking                     ['t', 'a', '_', 'i', 'n', '_']   \n",
-        "979        tomorrow           ['t', 'o', 'm', 'o', 'r', 'r', 'o', 'w']   \n",
-        "980          refile                     ['r', 'e', '_', 'i', 'l', 'e']   \n",
-        "981          unkind                     ['u', 'n', '_', 'i', 'n', 'd']   \n",
-        "982       specimens      ['s', '_', 'e', 'c', 'i', 'm', 'e', 'n', 's']   \n",
-        "983         regrets                ['r', 'e', '_', 'r', 'e', 't', 's']   \n",
-        "984     remaindered  ['r', 'e', 'm', 'a', 'i', 'n', 'd', 'e', 'r', ...   \n",
-        "985         dignify                ['d', 'i', '_', 'n', 'i', '_', '_']   \n",
-        "986       bandwagon      ['_', 'a', 'n', 'd', 'w', 'a', '_', 'o', 'n']   \n",
-        "987      pacemakers  ['_', 'a', 'c', 'e', 'm', 'a', '_', 'e', 'r', ...   \n",
-        "988         dandles                ['d', 'a', 'n', 'd', 'l', 'e', 's']   \n",
-        "989           white                          ['w', 'h', 'i', 't', 'e']   \n",
-        "990           arena                          ['a', 'r', 'e', 'n', 'a']   \n",
-        "991         surreal                ['s', 'u', 'r', 'r', 'e', 'a', 'l']   \n",
-        "992        gutsiest           ['_', 'u', 't', 's', 'i', 'e', 's', 't']   \n",
-        "993      annulments  ['a', 'n', 'n', 'u', 'l', 'm', 'e', 'n', 't', ...   \n",
-        "994      accretions  ['a', 'c', 'c', 'r', 'e', 't', 'i', 'o', 'n', ...   \n",
-        "995          safari                     ['s', 'a', '_', 'a', 'r', 'i']   \n",
-        "996           recap                          ['r', 'e', '_', 'a', '_']   \n",
-        "997           torts                          ['t', 'o', 'r', 't', 's']   \n",
-        "998      tyrannised  ['t', 'y', 'r', 'a', 'n', 'n', 'i', 's', 'e', ...   \n",
-        "999     indubitable  ['i', 'n', 'd', 'u', '_', 'i', 't', 'a', '_', ...   \n",
-        "\n",
-        "                                         wrong letters  number of hits  \\\n",
-        "0             ['t', 'a', 'h', 's', 'w', 'c', 'y', 'f']              10   \n",
-        "1    ['a', 'o', 'i', 'h', 'n', 's', 'r', 'l', 'u', ...               4   \n",
-        "2    ['e', 'a', 'o', 'h', 'n', 'r', 'd', 'u', 'm', ...               6   \n",
-        "3    ['t', 'o', 'h', 'n', 'l', 'u', 'm', 'w', 'c', ...               8   \n",
-        "4    ['t', 'a', 'h', 's', 'r', 'd', 'u', 'm', 'w', ...               5   \n",
-        "5    ['e', 'o', 'h', 's', 'd', 'l', 'u', 'm', 'w', ...               8   \n",
-        "6    ['e', 't', 'a', 'o', 'h', 's', 'r', 'd', 'l', ...               4   \n",
-        "7             ['e', 'o', 'h', 's', 'r', 'd', 'l', 'w']               8   \n",
-        "8                            ['o', 'i', 'h', 'n', 'r']               7   \n",
-        "9                            ['a', 'h', 'l', 'u', 'w']              11   \n",
-        "10   ['e', 't', 'a', 'i', 'n', 's', 'd', 'l', 'm', ...               4   \n",
-        "11   ['e', 't', 'a', 'i', 'h', 'n', 's', 'r', 'd', ...               2   \n",
-        "12                      ['a', 'i', 'n', 'd', 'l', 'u']               8   \n",
-        "13   ['o', 'h', 'r', 'd', 'l', 'u', 'm', 'w', 'y', ...               8   \n",
-        "14       ['e', 'a', 'o', 'n', 's', 'd', 'm', 'w', 'c']              10   \n",
-        "15   ['t', 'a', 'o', 'h', 'n', 'd', 'l', 'm', 'w', ...               7   \n",
-        "16   ['a', 'h', 'n', 's', 'r', 'd', 'u', 'm', 'w', ...               5   \n",
-        "17                 ['h', 'n', 'u', 'w', 'c', 'y', 'f']              14   \n",
-        "18                                     ['t', 'o', 'h']               5   \n",
-        "19   ['t', 'a', 'i', 'h', 'd', 'l', 'u', 'm', 'w', ...               5   \n",
-        "20   ['t', 'o', 'h', 'd', 'l', 'u', 'm', 'w', 'c', ...               9   \n",
-        "21   ['i', 'n', 'r', 'd', 'l', 'u', 'm', 'c', 'y', ...               8   \n",
-        "22   ['e', 't', 'a', 'o', 'i', 'h', 'n', 'r', 'd', ...               1   \n",
-        "23            ['a', 'i', 'h', 'n', 'r', 'd', 'l', 'w']               8   \n",
-        "24   ['i', 's', 'l', 'u', 'm', 'w', 'c', 'y', 'f', ...               9   \n",
-        "25   ['t', 'a', 'o', 'h', 'd', 'l', 'm', 'w', 'y', ...              10   \n",
-        "26            ['e', 't', 'o', 'h', 'r', 'd', 'l', 'u']               6   \n",
-        "27       ['t', 'a', 'o', 'h', 'd', 'm', 'w', 'c', 'f']              11   \n",
-        "28   ['a', 'h', 'r', 'd', 'l', 'm', 'w', 'y', 'f', ...              11   \n",
-        "29   ['e', 'o', 'h', 'n', 'r', 'd', 'u', 'w', 'c', ...               7   \n",
-        "..                                                 ...             ...   \n",
-        "970  ['e', 'a', 'h', 'n', 's', 'r', 'd', 'l', 'u', ...               3   \n",
-        "971  ['o', 'h', 'd', 'l', 'u', 'm', 'w', 'c', 'y', ...               9   \n",
-        "972  ['t', 'o', 'h', 'n', 's', 'd', 'l', 'u', 'w', ...               5   \n",
-        "973                     ['t', 's', 'r', 'd', 'u', 'w']              11   \n",
-        "974                               ['o', 'r', 'd', 'l']              11   \n",
-        "975  ['t', 'o', 'i', 'h', 'n', 's', 'l', 'u', 'm', ...               6   \n",
-        "976  ['t', 'o', 'i', 'h', 'n', 'r', 'd', 'u', 'm', ...               4   \n",
-        "977  ['o', 'n', 's', 'r', 'd', 'u', 'm', 'w', 'f', ...              13   \n",
-        "978  ['e', 'o', 'h', 's', 'r', 'd', 'l', 'u', 'm', ...               4   \n",
-        "979      ['e', 'a', 'i', 'h', 'n', 's', 'd', 'l', 'u']               8   \n",
-        "980  ['t', 'a', 'o', 'h', 'n', 's', 'd', 'u', 'm', ...               5   \n",
-        "981  ['e', 't', 'a', 'o', 'h', 's', 'r', 'l', 'm', ...               5   \n",
-        "982  ['t', 'a', 'o', 'h', 'r', 'd', 'l', 'u', 'w', ...               8   \n",
-        "983  ['a', 'o', 'i', 'h', 'n', 'd', 'l', 'u', 'm', ...               6   \n",
-        "984                     ['t', 'o', 'h', 's', 'l', 'u']              11   \n",
-        "985  ['e', 't', 'a', 'o', 'h', 's', 'r', 'l', 'u', ...               4   \n",
-        "986  ['e', 't', 'i', 'h', 's', 'r', 'l', 'u', 'm', ...               7   \n",
-        "987  ['t', 'o', 'i', 'h', 'n', 'd', 'l', 'u', 'w', ...               8   \n",
-        "988                          ['t', 'o', 'i', 'h', 'r']               7   \n",
-        "989      ['a', 'o', 'n', 's', 'r', 'd', 'l', 'u', 'm']               5   \n",
-        "990                          ['t', 'o', 'i', 'h', 's']               5   \n",
-        "991                     ['t', 'o', 'i', 'h', 'n', 'd']               7   \n",
-        "992  ['a', 'o', 'h', 'n', 'r', 'd', 'l', 'm', 'w', ...               7   \n",
-        "993                          ['o', 'i', 'h', 'r', 'd']              10   \n",
-        "994                     ['h', 'd', 'l', 'u', 'm', 'w']              10   \n",
-        "995  ['e', 't', 'o', 'h', 'n', 'd', 'l', 'u', 'm', ...               5   \n",
-        "996  ['t', 'o', 'i', 'h', 'n', 's', 'd', 'l', 'u', ...               3   \n",
-        "997                          ['e', 'a', 'i', 'h', 'n']               5   \n",
-        "998                ['o', 'h', 'l', 'u', 'm', 'w', 'c']              10   \n",
-        "999  ['o', 'h', 's', 'r', 'm', 'w', 'c', 'y', 'f', ...               9   \n",
-        "\n",
-        "     lives remaining game won  \n",
-        "0                  2     True  \n",
-        "1                  0    False  \n",
-        "2                  0    False  \n",
-        "3                  0    False  \n",
-        "4                  0    False  \n",
-        "5                  0    False  \n",
-        "6                  0    False  \n",
-        "7                  2     True  \n",
-        "8                  5     True  \n",
-        "9                  5     True  \n",
-        "10                 0    False  \n",
-        "11                 0    False  \n",
-        "12                 4     True  \n",
-        "13                 0    False  \n",
-        "14                 1     True  \n",
-        "15                 0    False  \n",
-        "16                 0    False  \n",
-        "17                 3     True  \n",
-        "18                 7     True  \n",
-        "19                 0    False  \n",
-        "20                 0    False  \n",
-        "21                 0    False  \n",
-        "22                 0    False  \n",
-        "23                 2     True  \n",
-        "24                 0    False  \n",
-        "25                 0    False  \n",
-        "26                 2     True  \n",
-        "27                 1     True  \n",
-        "28                 0    False  \n",
-        "29                 0    False  \n",
-        "..               ...      ...  \n",
-        "970                0    False  \n",
-        "971                0    False  \n",
-        "972                0    False  \n",
-        "973                4     True  \n",
-        "974                6     True  \n",
-        "975                0    False  \n",
-        "976                0    False  \n",
-        "977                0    False  \n",
-        "978                0    False  \n",
-        "979                1     True  \n",
-        "980                0    False  \n",
-        "981                0    False  \n",
-        "982                0    False  \n",
-        "983                0    False  \n",
-        "984                4     True  \n",
-        "985                0    False  \n",
-        "986                0    False  \n",
-        "987                0    False  \n",
-        "988                5     True  \n",
-        "989                1     True  \n",
-        "990                5     True  \n",
-        "991                4     True  \n",
-        "992                0    False  \n",
-        "993                5     True  \n",
-        "994                4     True  \n",
-        "995                0    False  \n",
-        "996                0    False  \n",
-        "997                5     True  \n",
-        "998                3     True  \n",
-        "999                0    False  \n",
-        "\n",
-        "[1000 rows x 6 columns]"
-       ]
-      }
-     ],
-     "prompt_number": 8
-    },
-    {
-     "cell_type": "code",
-     "collapsed": false,
-     "input": [
-      "len(fixed_order['discovered'][0].split(','))"
-     ],
-     "language": "python",
-     "metadata": {},
-     "outputs": [
-      {
-       "metadata": {},
-       "output_type": "pyout",
-       "prompt_number": 9,
-       "text": [
-        "10"
-       ]
-      }
-     ],
-     "prompt_number": 9
-    },
-    {
-     "cell_type": "code",
-     "collapsed": false,
-     "input": [
-      "fixed_order['word length'] = fixed_order.apply(lambda r: len(r['target']), axis=1)\n",
-      "fixed_order"
-     ],
-     "language": "python",
-     "metadata": {},
-     "outputs": [
-      {
-       "html": [
-        "<div style=\"max-height:1000px;max-width:1500px;overflow:auto;\">\n",
-        "<table border=\"1\" class=\"dataframe\">\n",
-        "  <thead>\n",
-        "    <tr style=\"text-align: right;\">\n",
-        "      <th></th>\n",
-        "      <th>target</th>\n",
-        "      <th>discovered</th>\n",
-        "      <th>wrong letters</th>\n",
-        "      <th>number of hits</th>\n",
-        "      <th>lives remaining</th>\n",
-        "      <th>game won</th>\n",
-        "      <th>word length</th>\n",
-        "    </tr>\n",
-        "  </thead>\n",
-        "  <tbody>\n",
-        "    <tr>\n",
-        "      <th>0  </th>\n",
-        "      <td>     mouldering</td>\n",
-        "      <td> ['m', 'o', 'u', 'l', 'd', 'e', 'r', 'i', 'n', ...</td>\n",
-        "      <td>          ['t', 'a', 'h', 's', 'w', 'c', 'y', 'f']</td>\n",
-        "      <td> 10</td>\n",
-        "      <td> 2</td>\n",
-        "      <td>  True</td>\n",
-        "      <td> 10</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>1  </th>\n",
-        "      <td>         deject</td>\n",
-        "      <td>                    ['d', 'e', '_', 'e', '_', 't']</td>\n",
-        "      <td> ['a', 'o', 'i', 'h', 'n', 's', 'r', 'l', 'u', ...</td>\n",
-        "      <td>  4</td>\n",
-        "      <td> 0</td>\n",
-        "      <td> False</td>\n",
-        "      <td>  6</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>2  </th>\n",
-        "      <td>      lipsticks</td>\n",
-        "      <td>     ['l', 'i', '_', 's', 't', 'i', '_', '_', 's']</td>\n",
-        "      <td> ['e', 'a', 'o', 'h', 'n', 'r', 'd', 'u', 'm', ...</td>\n",
-        "      <td>  6</td>\n",
-        "      <td> 0</td>\n",
-        "      <td> False</td>\n",
-        "      <td>  9</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>3  </th>\n",
-        "      <td>     disparaged</td>\n",
-        "      <td> ['d', 'i', 's', '_', 'a', 'r', 'a', '_', 'e', ...</td>\n",
-        "      <td> ['t', 'o', 'h', 'n', 'l', 'u', 'm', 'w', 'c', ...</td>\n",
-        "      <td>  8</td>\n",
-        "      <td> 0</td>\n",
-        "      <td> False</td>\n",
-        "      <td> 10</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>4  </th>\n",
-        "      <td>         legion</td>\n",
-        "      <td>                    ['l', 'e', '_', 'i', 'o', 'n']</td>\n",
-        "      <td> ['t', 'a', 'h', 's', 'r', 'd', 'u', 'm', 'w', ...</td>\n",
-        "      <td>  5</td>\n",
-        "      <td> 0</td>\n",
-        "      <td> False</td>\n",
-        "      <td>  6</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>5  </th>\n",
-        "      <td>    fabricating</td>\n",
-        "      <td> ['_', 'a', '_', 'r', 'i', 'c', 'a', 't', 'i', ...</td>\n",
-        "      <td> ['e', 'o', 'h', 's', 'd', 'l', 'u', 'm', 'w', ...</td>\n",
-        "      <td>  8</td>\n",
-        "      <td> 0</td>\n",
-        "      <td> False</td>\n",
-        "      <td> 11</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>6  </th>\n",
-        "      <td>        nicking</td>\n",
-        "      <td>               ['n', 'i', '_', '_', 'i', 'n', '_']</td>\n",
-        "      <td> ['e', 't', 'a', 'o', 'h', 's', 'r', 'd', 'l', ...</td>\n",
-        "      <td>  4</td>\n",
-        "      <td> 0</td>\n",
-        "      <td> False</td>\n",
-        "      <td>  7</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>7  </th>\n",
-        "      <td>       actinium</td>\n",
-        "      <td>          ['a', 'c', 't', 'i', 'n', 'i', 'u', 'm']</td>\n",
-        "      <td>          ['e', 'o', 'h', 's', 'r', 'd', 'l', 'w']</td>\n",
-        "      <td>  8</td>\n",
-        "      <td> 2</td>\n",
-        "      <td>  True</td>\n",
-        "      <td>  8</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>8  </th>\n",
-        "      <td>        sedates</td>\n",
-        "      <td>               ['s', 'e', 'd', 'a', 't', 'e', 's']</td>\n",
-        "      <td>                         ['o', 'i', 'h', 'n', 'r']</td>\n",
-        "      <td>  7</td>\n",
-        "      <td> 5</td>\n",
-        "      <td>  True</td>\n",
-        "      <td>  7</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>9  </th>\n",
-        "      <td>    modernistic</td>\n",
-        "      <td> ['m', 'o', 'd', 'e', 'r', 'n', 'i', 's', 't', ...</td>\n",
-        "      <td>                         ['a', 'h', 'l', 'u', 'w']</td>\n",
-        "      <td> 11</td>\n",
-        "      <td> 5</td>\n",
-        "      <td>  True</td>\n",
-        "      <td> 11</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>10 </th>\n",
-        "      <td>        grouchy</td>\n",
-        "      <td>               ['_', 'r', 'o', 'u', '_', 'h', '_']</td>\n",
-        "      <td> ['e', 't', 'a', 'i', 'n', 's', 'd', 'l', 'm', ...</td>\n",
-        "      <td>  4</td>\n",
-        "      <td> 0</td>\n",
-        "      <td> False</td>\n",
-        "      <td>  7</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>11 </th>\n",
-        "      <td>           goop</td>\n",
-        "      <td>                              ['_', 'o', 'o', '_']</td>\n",
-        "      <td> ['e', 't', 'a', 'i', 'h', 'n', 's', 'r', 'd', ...</td>\n",
-        "      <td>  2</td>\n",
-        "      <td> 0</td>\n",
-        "      <td> False</td>\n",
-        "      <td>  4</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>12 </th>\n",
-        "      <td>       theorems</td>\n",
-        "      <td>          ['t', 'h', 'e', 'o', 'r', 'e', 'm', 's']</td>\n",
-        "      <td>                    ['a', 'i', 'n', 'd', 'l', 'u']</td>\n",
-        "      <td>  8</td>\n",
-        "      <td> 4</td>\n",
-        "      <td>  True</td>\n",
-        "      <td>  8</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>13 </th>\n",
-        "      <td>     panickiest</td>\n",
-        "      <td> ['_', 'a', 'n', 'i', 'c', '_', 'i', 'e', 's', ...</td>\n",
-        "      <td> ['o', 'h', 'r', 'd', 'l', 'u', 'm', 'w', 'y', ...</td>\n",
-        "      <td>  8</td>\n",
-        "      <td> 0</td>\n",
-        "      <td> False</td>\n",
-        "      <td> 10</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>14 </th>\n",
-        "      <td>     rightfully</td>\n",
-        "      <td> ['r', 'i', 'g', 'h', 't', 'f', 'u', 'l', 'l', ...</td>\n",
-        "      <td>     ['e', 'a', 'o', 'n', 's', 'd', 'm', 'w', 'c']</td>\n",
-        "      <td> 10</td>\n",
-        "      <td> 1</td>\n",
-        "      <td>  True</td>\n",
-        "      <td> 10</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>15 </th>\n",
-        "      <td>       esquires</td>\n",
-        "      <td>          ['e', 's', '_', 'u', 'i', 'r', 'e', 's']</td>\n",
-        "      <td> ['t', 'a', 'o', 'h', 'n', 'd', 'l', 'm', 'w', ...</td>\n",
-        "      <td>  7</td>\n",
-        "      <td> 0</td>\n",
-        "      <td> False</td>\n",
-        "      <td>  8</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>16 </th>\n",
-        "      <td>         violet</td>\n",
-        "      <td>                    ['_', 'i', 'o', 'l', 'e', 't']</td>\n",
-        "      <td> ['a', 'h', 'n', 's', 'r', 'd', 'u', 'm', 'w', ...</td>\n",
-        "      <td>  5</td>\n",
-        "      <td> 0</td>\n",
-        "      <td> False</td>\n",
-        "      <td>  6</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>17 </th>\n",
-        "      <td> dermatologists</td>\n",
-        "      <td> ['d', 'e', 'r', 'm', 'a', 't', 'o', 'l', 'o', ...</td>\n",
-        "      <td>               ['h', 'n', 'u', 'w', 'c', 'y', 'f']</td>\n",
-        "      <td> 14</td>\n",
-        "      <td> 3</td>\n",
-        "      <td>  True</td>\n",
-        "      <td> 14</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>18 </th>\n",
-        "      <td>          inane</td>\n",
-        "      <td>                         ['i', 'n', 'a', 'n', 'e']</td>\n",
-        "      <td>                                   ['t', 'o', 'h']</td>\n",
-        "      <td>  5</td>\n",
-        "      <td> 7</td>\n",
-        "      <td>  True</td>\n",
-        "      <td>  5</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>19 </th>\n",
-        "      <td>        bonkers</td>\n",
-        "      <td>               ['_', 'o', 'n', '_', 'e', 'r', 's']</td>\n",
-        "      <td> ['t', 'a', 'i', 'h', 'd', 'l', 'u', 'm', 'w', ...</td>\n",
-        "      <td>  5</td>\n",
-        "      <td> 0</td>\n",
-        "      <td> False</td>\n",
-        "      <td>  7</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>20 </th>\n",
-        "      <td>    reassigning</td>\n",
-        "      <td> ['r', 'e', 'a', 's', 's', 'i', '_', 'n', 'i', ...</td>\n",
-        "      <td> ['t', 'o', 'h', 'd', 'l', 'u', 'm', 'w', 'c', ...</td>\n",
-        "      <td>  9</td>\n",
-        "      <td> 0</td>\n",
-        "      <td> False</td>\n",
-        "      <td> 11</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>21 </th>\n",
-        "      <td>      sweatshop</td>\n",
-        "      <td>     ['s', 'w', 'e', 'a', 't', 's', 'h', 'o', '_']</td>\n",
-        "      <td> ['i', 'n', 'r', 'd', 'l', 'u', 'm', 'c', 'y', ...</td>\n",
-        "      <td>  8</td>\n",
-        "      <td> 0</td>\n",
-        "      <td> False</td>\n",
-        "      <td>  9</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>22 </th>\n",
-        "      <td>             ks</td>\n",
-        "      <td>                                        ['_', 's']</td>\n",
-        "      <td> ['e', 't', 'a', 'o', 'i', 'h', 'n', 'r', 'd', ...</td>\n",
-        "      <td>  1</td>\n",
-        "      <td> 0</td>\n",
-        "      <td> False</td>\n",
-        "      <td>  2</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>23 </th>\n",
-        "      <td>       outcomes</td>\n",
-        "      <td>          ['o', 'u', 't', 'c', 'o', 'm', 'e', 's']</td>\n",
-        "      <td>          ['a', 'i', 'h', 'n', 'r', 'd', 'l', 'w']</td>\n",
-        "      <td>  8</td>\n",
-        "      <td> 2</td>\n",
-        "      <td>  True</td>\n",
-        "      <td>  8</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>24 </th>\n",
-        "      <td>     parenthood</td>\n",
-        "      <td> ['_', 'a', 'r', 'e', 'n', 't', 'h', 'o', 'o', ...</td>\n",
-        "      <td> ['i', 's', 'l', 'u', 'm', 'w', 'c', 'y', 'f', ...</td>\n",
-        "      <td>  9</td>\n",
-        "      <td> 0</td>\n",
-        "      <td> False</td>\n",
-        "      <td> 10</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>25 </th>\n",
-        "      <td>    frequencies</td>\n",
-        "      <td> ['f', 'r', 'e', '_', 'u', 'e', 'n', 'c', 'i', ...</td>\n",
-        "      <td> ['t', 'a', 'o', 'h', 'd', 'l', 'm', 'w', 'y', ...</td>\n",
-        "      <td> 10</td>\n",
-        "      <td> 0</td>\n",
-        "      <td> False</td>\n",
-        "      <td> 11</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>26 </th>\n",
-        "      <td>         manias</td>\n",
-        "      <td>                    ['m', 'a', 'n', 'i', 'a', 's']</td>\n",
-        "      <td>          ['e', 't', 'o', 'h', 'r', 'd', 'l', 'u']</td>\n",
-        "      <td>  6</td>\n",
-        "      <td> 2</td>\n",
-        "      <td>  True</td>\n",
-        "      <td>  6</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>27 </th>\n",
-        "      <td>    resupplying</td>\n",
-        "      <td> ['r', 'e', 's', 'u', 'p', 'p', 'l', 'y', 'i', ...</td>\n",
-        "      <td>     ['t', 'a', 'o', 'h', 'd', 'm', 'w', 'c', 'f']</td>\n",
-        "      <td> 11</td>\n",
-        "      <td> 1</td>\n",
-        "      <td>  True</td>\n",
-        "      <td> 11</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>28 </th>\n",
-        "      <td>   subcontinent</td>\n",
-        "      <td> ['s', 'u', '_', 'c', 'o', 'n', 't', 'i', 'n', ...</td>\n",
-        "      <td> ['a', 'h', 'r', 'd', 'l', 'm', 'w', 'y', 'f', ...</td>\n",
-        "      <td> 11</td>\n",
-        "      <td> 0</td>\n",
-        "      <td> False</td>\n",
-        "      <td> 12</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>29 </th>\n",
-        "      <td>      baptismal</td>\n",
-        "      <td>     ['_', 'a', '_', 't', 'i', 's', 'm', 'a', 'l']</td>\n",
-        "      <td> ['e', 'o', 'h', 'n', 'r', 'd', 'u', 'w', 'c', ...</td>\n",
-        "      <td>  7</td>\n",
-        "      <td> 0</td>\n",
-        "      <td> False</td>\n",
-        "      <td>  9</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>...</th>\n",
-        "      <td>...</td>\n",
-        "      <td>...</td>\n",
-        "      <td>...</td>\n",
-        "      <td>...</td>\n",
-        "      <td>...</td>\n",
-        "      <td>...</td>\n",
-        "      <td>...</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>970</th>\n",
-        "      <td>          toxic</td>\n",
-        "      <td>                         ['t', 'o', '_', 'i', '_']</td>\n",
-        "      <td> ['e', 'a', 'h', 'n', 's', 'r', 'd', 'l', 'u', ...</td>\n",
-        "      <td>  3</td>\n",
-        "      <td> 0</td>\n",
-        "      <td> False</td>\n",
-        "      <td>  5</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>971</th>\n",
-        "      <td>    brigantines</td>\n",
-        "      <td> ['_', 'r', 'i', '_', 'a', 'n', 't', 'i', 'n', ...</td>\n",
-        "      <td> ['o', 'h', 'd', 'l', 'u', 'm', 'w', 'c', 'y', ...</td>\n",
-        "      <td>  9</td>\n",
-        "      <td> 0</td>\n",
-        "      <td> False</td>\n",
-        "      <td> 11</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>972</th>\n",
-        "      <td>        imagery</td>\n",
-        "      <td>               ['i', 'm', 'a', '_', 'e', 'r', '_']</td>\n",
-        "      <td> ['t', 'o', 'h', 'n', 's', 'd', 'l', 'u', 'w', ...</td>\n",
-        "      <td>  5</td>\n",
-        "      <td> 0</td>\n",
-        "      <td> False</td>\n",
-        "      <td>  7</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>973</th>\n",
-        "      <td>    melancholic</td>\n",
-        "      <td> ['m', 'e', 'l', 'a', 'n', 'c', 'h', 'o', 'l', ...</td>\n",
-        "      <td>                    ['t', 's', 'r', 'd', 'u', 'w']</td>\n",
-        "      <td> 11</td>\n",
-        "      <td> 4</td>\n",
-        "      <td>  True</td>\n",
-        "      <td> 11</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>974</th>\n",
-        "      <td>    enthusiasms</td>\n",
-        "      <td> ['e', 'n', 't', 'h', 'u', 's', 'i', 'a', 's', ...</td>\n",
-        "      <td>                              ['o', 'r', 'd', 'l']</td>\n",
-        "      <td> 11</td>\n",
-        "      <td> 6</td>\n",
-        "      <td>  True</td>\n",
-        "      <td> 11</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>975</th>\n",
-        "      <td>        abraded</td>\n",
-        "      <td>               ['a', '_', 'r', 'a', 'd', 'e', 'd']</td>\n",
-        "      <td> ['t', 'o', 'i', 'h', 'n', 's', 'l', 'u', 'm', ...</td>\n",
-        "      <td>  6</td>\n",
-        "      <td> 0</td>\n",
-        "      <td> False</td>\n",
-        "      <td>  7</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>976</th>\n",
-        "      <td>          lakes</td>\n",
-        "      <td>                         ['l', 'a', '_', 'e', 's']</td>\n",
-        "      <td> ['t', 'o', 'i', 'h', 'n', 'r', 'd', 'u', 'm', ...</td>\n",
-        "      <td>  4</td>\n",
-        "      <td> 0</td>\n",
-        "      <td> False</td>\n",
-        "      <td>  5</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>977</th>\n",
-        "      <td> telepathically</td>\n",
-        "      <td> ['t', 'e', 'l', 'e', '_', 'a', 't', 'h', 'i', ...</td>\n",
-        "      <td> ['o', 'n', 's', 'r', 'd', 'u', 'm', 'w', 'f', ...</td>\n",
-        "      <td> 13</td>\n",
-        "      <td> 0</td>\n",
-        "      <td> False</td>\n",
-        "      <td> 14</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>978</th>\n",
-        "      <td>         taking</td>\n",
-        "      <td>                    ['t', 'a', '_', 'i', 'n', '_']</td>\n",
-        "      <td> ['e', 'o', 'h', 's', 'r', 'd', 'l', 'u', 'm', ...</td>\n",
-        "      <td>  4</td>\n",
-        "      <td> 0</td>\n",
-        "      <td> False</td>\n",
-        "      <td>  6</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>979</th>\n",
-        "      <td>       tomorrow</td>\n",
-        "      <td>          ['t', 'o', 'm', 'o', 'r', 'r', 'o', 'w']</td>\n",
-        "      <td>     ['e', 'a', 'i', 'h', 'n', 's', 'd', 'l', 'u']</td>\n",
-        "      <td>  8</td>\n",
-        "      <td> 1</td>\n",
-        "      <td>  True</td>\n",
-        "      <td>  8</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>980</th>\n",
-        "      <td>         refile</td>\n",
-        "      <td>                    ['r', 'e', '_', 'i', 'l', 'e']</td>\n",
-        "      <td> ['t', 'a', 'o', 'h', 'n', 's', 'd', 'u', 'm', ...</td>\n",
-        "      <td>  5</td>\n",
-        "      <td> 0</td>\n",
-        "      <td> False</td>\n",
-        "      <td>  6</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>981</th>\n",
-        "      <td>         unkind</td>\n",
-        "      <td>                    ['u', 'n', '_', 'i', 'n', 'd']</td>\n",
-        "      <td> ['e', 't', 'a', 'o', 'h', 's', 'r', 'l', 'm', ...</td>\n",
-        "      <td>  5</td>\n",
-        "      <td> 0</td>\n",
-        "      <td> False</td>\n",
-        "      <td>  6</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>982</th>\n",
-        "      <td>      specimens</td>\n",
-        "      <td>     ['s', '_', 'e', 'c', 'i', 'm', 'e', 'n', 's']</td>\n",
-        "      <td> ['t', 'a', 'o', 'h', 'r', 'd', 'l', 'u', 'w', ...</td>\n",
-        "      <td>  8</td>\n",
-        "      <td> 0</td>\n",
-        "      <td> False</td>\n",
-        "      <td>  9</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>983</th>\n",
-        "      <td>        regrets</td>\n",
-        "      <td>               ['r', 'e', '_', 'r', 'e', 't', 's']</td>\n",
-        "      <td> ['a', 'o', 'i', 'h', 'n', 'd', 'l', 'u', 'm', ...</td>\n",
-        "      <td>  6</td>\n",
-        "      <td> 0</td>\n",
-        "      <td> False</td>\n",
-        "      <td>  7</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>984</th>\n",
-        "      <td>    remaindered</td>\n",
-        "      <td> ['r', 'e', 'm', 'a', 'i', 'n', 'd', 'e', 'r', ...</td>\n",
-        "      <td>                    ['t', 'o', 'h', 's', 'l', 'u']</td>\n",
-        "      <td> 11</td>\n",
-        "      <td> 4</td>\n",
-        "      <td>  True</td>\n",
-        "      <td> 11</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>985</th>\n",
-        "      <td>        dignify</td>\n",
-        "      <td>               ['d', 'i', '_', 'n', 'i', '_', '_']</td>\n",
-        "      <td> ['e', 't', 'a', 'o', 'h', 's', 'r', 'l', 'u', ...</td>\n",
-        "      <td>  4</td>\n",
-        "      <td> 0</td>\n",
-        "      <td> False</td>\n",
-        "      <td>  7</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>986</th>\n",
-        "      <td>      bandwagon</td>\n",
-        "      <td>     ['_', 'a', 'n', 'd', 'w', 'a', '_', 'o', 'n']</td>\n",
-        "      <td> ['e', 't', 'i', 'h', 's', 'r', 'l', 'u', 'm', ...</td>\n",
-        "      <td>  7</td>\n",
-        "      <td> 0</td>\n",
-        "      <td> False</td>\n",
-        "      <td>  9</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>987</th>\n",
-        "      <td>     pacemakers</td>\n",
-        "      <td> ['_', 'a', 'c', 'e', 'm', 'a', '_', 'e', 'r', ...</td>\n",
-        "      <td> ['t', 'o', 'i', 'h', 'n', 'd', 'l', 'u', 'w', ...</td>\n",
-        "      <td>  8</td>\n",
-        "      <td> 0</td>\n",
-        "      <td> False</td>\n",
-        "      <td> 10</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>988</th>\n",
-        "      <td>        dandles</td>\n",
-        "      <td>               ['d', 'a', 'n', 'd', 'l', 'e', 's']</td>\n",
-        "      <td>                         ['t', 'o', 'i', 'h', 'r']</td>\n",
-        "      <td>  7</td>\n",
-        "      <td> 5</td>\n",
-        "      <td>  True</td>\n",
-        "      <td>  7</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>989</th>\n",
-        "      <td>          white</td>\n",
-        "      <td>                         ['w', 'h', 'i', 't', 'e']</td>\n",
-        "      <td>     ['a', 'o', 'n', 's', 'r', 'd', 'l', 'u', 'm']</td>\n",
-        "      <td>  5</td>\n",
-        "      <td> 1</td>\n",
-        "      <td>  True</td>\n",
-        "      <td>  5</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>990</th>\n",
-        "      <td>          arena</td>\n",
-        "      <td>                         ['a', 'r', 'e', 'n', 'a']</td>\n",
-        "      <td>                         ['t', 'o', 'i', 'h', 's']</td>\n",
-        "      <td>  5</td>\n",
-        "      <td> 5</td>\n",
-        "      <td>  True</td>\n",
-        "      <td>  5</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>991</th>\n",
-        "      <td>        surreal</td>\n",
-        "      <td>               ['s', 'u', 'r', 'r', 'e', 'a', 'l']</td>\n",
-        "      <td>                    ['t', 'o', 'i', 'h', 'n', 'd']</td>\n",
-        "      <td>  7</td>\n",
-        "      <td> 4</td>\n",
-        "      <td>  True</td>\n",
-        "      <td>  7</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>992</th>\n",
-        "      <td>       gutsiest</td>\n",
-        "      <td>          ['_', 'u', 't', 's', 'i', 'e', 's', 't']</td>\n",
-        "      <td> ['a', 'o', 'h', 'n', 'r', 'd', 'l', 'm', 'w', ...</td>\n",
-        "      <td>  7</td>\n",
-        "      <td> 0</td>\n",
-        "      <td> False</td>\n",
-        "      <td>  8</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>993</th>\n",
-        "      <td>     annulments</td>\n",
-        "      <td> ['a', 'n', 'n', 'u', 'l', 'm', 'e', 'n', 't', ...</td>\n",
-        "      <td>                         ['o', 'i', 'h', 'r', 'd']</td>\n",
-        "      <td> 10</td>\n",
-        "      <td> 5</td>\n",
-        "      <td>  True</td>\n",
-        "      <td> 10</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>994</th>\n",
-        "      <td>     accretions</td>\n",
-        "      <td> ['a', 'c', 'c', 'r', 'e', 't', 'i', 'o', 'n', ...</td>\n",
-        "      <td>                    ['h', 'd', 'l', 'u', 'm', 'w']</td>\n",
-        "      <td> 10</td>\n",
-        "      <td> 4</td>\n",
-        "      <td>  True</td>\n",
-        "      <td> 10</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>995</th>\n",
-        "      <td>         safari</td>\n",
-        "      <td>                    ['s', 'a', '_', 'a', 'r', 'i']</td>\n",
-        "      <td> ['e', 't', 'o', 'h', 'n', 'd', 'l', 'u', 'm', ...</td>\n",
-        "      <td>  5</td>\n",
-        "      <td> 0</td>\n",
-        "      <td> False</td>\n",
-        "      <td>  6</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>996</th>\n",
-        "      <td>          recap</td>\n",
-        "      <td>                         ['r', 'e', '_', 'a', '_']</td>\n",
-        "      <td> ['t', 'o', 'i', 'h', 'n', 's', 'd', 'l', 'u', ...</td>\n",
-        "      <td>  3</td>\n",
-        "      <td> 0</td>\n",
-        "      <td> False</td>\n",
-        "      <td>  5</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>997</th>\n",
-        "      <td>          torts</td>\n",
-        "      <td>                         ['t', 'o', 'r', 't', 's']</td>\n",
-        "      <td>                         ['e', 'a', 'i', 'h', 'n']</td>\n",
-        "      <td>  5</td>\n",
-        "      <td> 5</td>\n",
-        "      <td>  True</td>\n",
-        "      <td>  5</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>998</th>\n",
-        "      <td>     tyrannised</td>\n",
-        "      <td> ['t', 'y', 'r', 'a', 'n', 'n', 'i', 's', 'e', ...</td>\n",
-        "      <td>               ['o', 'h', 'l', 'u', 'm', 'w', 'c']</td>\n",
-        "      <td> 10</td>\n",
-        "      <td> 3</td>\n",
-        "      <td>  True</td>\n",
-        "      <td> 10</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>999</th>\n",
-        "      <td>    indubitable</td>\n",
-        "      <td> ['i', 'n', 'd', 'u', '_', 'i', 't', 'a', '_', ...</td>\n",
-        "      <td> ['o', 'h', 's', 'r', 'm', 'w', 'c', 'y', 'f', ...</td>\n",
-        "      <td>  9</td>\n",
-        "      <td> 0</td>\n",
-        "      <td> False</td>\n",
-        "      <td> 11</td>\n",
-        "    </tr>\n",
-        "  </tbody>\n",
-        "</table>\n",
-        "<p>1000 rows \u00d7 7 columns</p>\n",
-        "</div>"
-       ],
-       "metadata": {},
-       "output_type": "pyout",
-       "prompt_number": 10,
-       "text": [
-        "             target                                         discovered  \\\n",
-        "0        mouldering  ['m', 'o', 'u', 'l', 'd', 'e', 'r', 'i', 'n', ...   \n",
-        "1            deject                     ['d', 'e', '_', 'e', '_', 't']   \n",
-        "2         lipsticks      ['l', 'i', '_', 's', 't', 'i', '_', '_', 's']   \n",
-        "3        disparaged  ['d', 'i', 's', '_', 'a', 'r', 'a', '_', 'e', ...   \n",
-        "4            legion                     ['l', 'e', '_', 'i', 'o', 'n']   \n",
-        "5       fabricating  ['_', 'a', '_', 'r', 'i', 'c', 'a', 't', 'i', ...   \n",
-        "6           nicking                ['n', 'i', '_', '_', 'i', 'n', '_']   \n",
-        "7          actinium           ['a', 'c', 't', 'i', 'n', 'i', 'u', 'm']   \n",
-        "8           sedates                ['s', 'e', 'd', 'a', 't', 'e', 's']   \n",
-        "9       modernistic  ['m', 'o', 'd', 'e', 'r', 'n', 'i', 's', 't', ...   \n",
-        "10          grouchy                ['_', 'r', 'o', 'u', '_', 'h', '_']   \n",
-        "11             goop                               ['_', 'o', 'o', '_']   \n",
-        "12         theorems           ['t', 'h', 'e', 'o', 'r', 'e', 'm', 's']   \n",
-        "13       panickiest  ['_', 'a', 'n', 'i', 'c', '_', 'i', 'e', 's', ...   \n",
-        "14       rightfully  ['r', 'i', 'g', 'h', 't', 'f', 'u', 'l', 'l', ...   \n",
-        "15         esquires           ['e', 's', '_', 'u', 'i', 'r', 'e', 's']   \n",
-        "16           violet                     ['_', 'i', 'o', 'l', 'e', 't']   \n",
-        "17   dermatologists  ['d', 'e', 'r', 'm', 'a', 't', 'o', 'l', 'o', ...   \n",
-        "18            inane                          ['i', 'n', 'a', 'n', 'e']   \n",
-        "19          bonkers                ['_', 'o', 'n', '_', 'e', 'r', 's']   \n",
-        "20      reassigning  ['r', 'e', 'a', 's', 's', 'i', '_', 'n', 'i', ...   \n",
-        "21        sweatshop      ['s', 'w', 'e', 'a', 't', 's', 'h', 'o', '_']   \n",
-        "22               ks                                         ['_', 's']   \n",
-        "23         outcomes           ['o', 'u', 't', 'c', 'o', 'm', 'e', 's']   \n",
-        "24       parenthood  ['_', 'a', 'r', 'e', 'n', 't', 'h', 'o', 'o', ...   \n",
-        "25      frequencies  ['f', 'r', 'e', '_', 'u', 'e', 'n', 'c', 'i', ...   \n",
-        "26           manias                     ['m', 'a', 'n', 'i', 'a', 's']   \n",
-        "27      resupplying  ['r', 'e', 's', 'u', 'p', 'p', 'l', 'y', 'i', ...   \n",
-        "28     subcontinent  ['s', 'u', '_', 'c', 'o', 'n', 't', 'i', 'n', ...   \n",
-        "29        baptismal      ['_', 'a', '_', 't', 'i', 's', 'm', 'a', 'l']   \n",
-        "..              ...                                                ...   \n",
-        "970           toxic                          ['t', 'o', '_', 'i', '_']   \n",
-        "971     brigantines  ['_', 'r', 'i', '_', 'a', 'n', 't', 'i', 'n', ...   \n",
-        "972         imagery                ['i', 'm', 'a', '_', 'e', 'r', '_']   \n",
-        "973     melancholic  ['m', 'e', 'l', 'a', 'n', 'c', 'h', 'o', 'l', ...   \n",
-        "974     enthusiasms  ['e', 'n', 't', 'h', 'u', 's', 'i', 'a', 's', ...   \n",
-        "975         abraded                ['a', '_', 'r', 'a', 'd', 'e', 'd']   \n",
-        "976           lakes                          ['l', 'a', '_', 'e', 's']   \n",
-        "977  telepathically  ['t', 'e', 'l', 'e', '_', 'a', 't', 'h', 'i', ...   \n",
-        "978          taking                     ['t', 'a', '_', 'i', 'n', '_']   \n",
-        "979        tomorrow           ['t', 'o', 'm', 'o', 'r', 'r', 'o', 'w']   \n",
-        "980          refile                     ['r', 'e', '_', 'i', 'l', 'e']   \n",
-        "981          unkind                     ['u', 'n', '_', 'i', 'n', 'd']   \n",
-        "982       specimens      ['s', '_', 'e', 'c', 'i', 'm', 'e', 'n', 's']   \n",
-        "983         regrets                ['r', 'e', '_', 'r', 'e', 't', 's']   \n",
-        "984     remaindered  ['r', 'e', 'm', 'a', 'i', 'n', 'd', 'e', 'r', ...   \n",
-        "985         dignify                ['d', 'i', '_', 'n', 'i', '_', '_']   \n",
-        "986       bandwagon      ['_', 'a', 'n', 'd', 'w', 'a', '_', 'o', 'n']   \n",
-        "987      pacemakers  ['_', 'a', 'c', 'e', 'm', 'a', '_', 'e', 'r', ...   \n",
-        "988         dandles                ['d', 'a', 'n', 'd', 'l', 'e', 's']   \n",
-        "989           white                          ['w', 'h', 'i', 't', 'e']   \n",
-        "990           arena                          ['a', 'r', 'e', 'n', 'a']   \n",
-        "991         surreal                ['s', 'u', 'r', 'r', 'e', 'a', 'l']   \n",
-        "992        gutsiest           ['_', 'u', 't', 's', 'i', 'e', 's', 't']   \n",
-        "993      annulments  ['a', 'n', 'n', 'u', 'l', 'm', 'e', 'n', 't', ...   \n",
-        "994      accretions  ['a', 'c', 'c', 'r', 'e', 't', 'i', 'o', 'n', ...   \n",
-        "995          safari                     ['s', 'a', '_', 'a', 'r', 'i']   \n",
-        "996           recap                          ['r', 'e', '_', 'a', '_']   \n",
-        "997           torts                          ['t', 'o', 'r', 't', 's']   \n",
-        "998      tyrannised  ['t', 'y', 'r', 'a', 'n', 'n', 'i', 's', 'e', ...   \n",
-        "999     indubitable  ['i', 'n', 'd', 'u', '_', 'i', 't', 'a', '_', ...   \n",
-        "\n",
-        "                                         wrong letters  number of hits  \\\n",
-        "0             ['t', 'a', 'h', 's', 'w', 'c', 'y', 'f']              10   \n",
-        "1    ['a', 'o', 'i', 'h', 'n', 's', 'r', 'l', 'u', ...               4   \n",
-        "2    ['e', 'a', 'o', 'h', 'n', 'r', 'd', 'u', 'm', ...               6   \n",
-        "3    ['t', 'o', 'h', 'n', 'l', 'u', 'm', 'w', 'c', ...               8   \n",
-        "4    ['t', 'a', 'h', 's', 'r', 'd', 'u', 'm', 'w', ...               5   \n",
-        "5    ['e', 'o', 'h', 's', 'd', 'l', 'u', 'm', 'w', ...               8   \n",
-        "6    ['e', 't', 'a', 'o', 'h', 's', 'r', 'd', 'l', ...               4   \n",
-        "7             ['e', 'o', 'h', 's', 'r', 'd', 'l', 'w']               8   \n",
-        "8                            ['o', 'i', 'h', 'n', 'r']               7   \n",
-        "9                            ['a', 'h', 'l', 'u', 'w']              11   \n",
-        "10   ['e', 't', 'a', 'i', 'n', 's', 'd', 'l', 'm', ...               4   \n",
-        "11   ['e', 't', 'a', 'i', 'h', 'n', 's', 'r', 'd', ...               2   \n",
-        "12                      ['a', 'i', 'n', 'd', 'l', 'u']               8   \n",
-        "13   ['o', 'h', 'r', 'd', 'l', 'u', 'm', 'w', 'y', ...               8   \n",
-        "14       ['e', 'a', 'o', 'n', 's', 'd', 'm', 'w', 'c']              10   \n",
-        "15   ['t', 'a', 'o', 'h', 'n', 'd', 'l', 'm', 'w', ...               7   \n",
-        "16   ['a', 'h', 'n', 's', 'r', 'd', 'u', 'm', 'w', ...               5   \n",
-        "17                 ['h', 'n', 'u', 'w', 'c', 'y', 'f']              14   \n",
-        "18                                     ['t', 'o', 'h']               5   \n",
-        "19   ['t', 'a', 'i', 'h', 'd', 'l', 'u', 'm', 'w', ...               5   \n",
-        "20   ['t', 'o', 'h', 'd', 'l', 'u', 'm', 'w', 'c', ...               9   \n",
-        "21   ['i', 'n', 'r', 'd', 'l', 'u', 'm', 'c', 'y', ...               8   \n",
-        "22   ['e', 't', 'a', 'o', 'i', 'h', 'n', 'r', 'd', ...               1   \n",
-        "23            ['a', 'i', 'h', 'n', 'r', 'd', 'l', 'w']               8   \n",
-        "24   ['i', 's', 'l', 'u', 'm', 'w', 'c', 'y', 'f', ...               9   \n",
-        "25   ['t', 'a', 'o', 'h', 'd', 'l', 'm', 'w', 'y', ...              10   \n",
-        "26            ['e', 't', 'o', 'h', 'r', 'd', 'l', 'u']               6   \n",
-        "27       ['t', 'a', 'o', 'h', 'd', 'm', 'w', 'c', 'f']              11   \n",
-        "28   ['a', 'h', 'r', 'd', 'l', 'm', 'w', 'y', 'f', ...              11   \n",
-        "29   ['e', 'o', 'h', 'n', 'r', 'd', 'u', 'w', 'c', ...               7   \n",
-        "..                                                 ...             ...   \n",
-        "970  ['e', 'a', 'h', 'n', 's', 'r', 'd', 'l', 'u', ...               3   \n",
-        "971  ['o', 'h', 'd', 'l', 'u', 'm', 'w', 'c', 'y', ...               9   \n",
-        "972  ['t', 'o', 'h', 'n', 's', 'd', 'l', 'u', 'w', ...               5   \n",
-        "973                     ['t', 's', 'r', 'd', 'u', 'w']              11   \n",
-        "974                               ['o', 'r', 'd', 'l']              11   \n",
-        "975  ['t', 'o', 'i', 'h', 'n', 's', 'l', 'u', 'm', ...               6   \n",
-        "976  ['t', 'o', 'i', 'h', 'n', 'r', 'd', 'u', 'm', ...               4   \n",
-        "977  ['o', 'n', 's', 'r', 'd', 'u', 'm', 'w', 'f', ...              13   \n",
-        "978  ['e', 'o', 'h', 's', 'r', 'd', 'l', 'u', 'm', ...               4   \n",
-        "979      ['e', 'a', 'i', 'h', 'n', 's', 'd', 'l', 'u']               8   \n",
-        "980  ['t', 'a', 'o', 'h', 'n', 's', 'd', 'u', 'm', ...               5   \n",
-        "981  ['e', 't', 'a', 'o', 'h', 's', 'r', 'l', 'm', ...               5   \n",
-        "982  ['t', 'a', 'o', 'h', 'r', 'd', 'l', 'u', 'w', ...               8   \n",
-        "983  ['a', 'o', 'i', 'h', 'n', 'd', 'l', 'u', 'm', ...               6   \n",
-        "984                     ['t', 'o', 'h', 's', 'l', 'u']              11   \n",
-        "985  ['e', 't', 'a', 'o', 'h', 's', 'r', 'l', 'u', ...               4   \n",
-        "986  ['e', 't', 'i', 'h', 's', 'r', 'l', 'u', 'm', ...               7   \n",
-        "987  ['t', 'o', 'i', 'h', 'n', 'd', 'l', 'u', 'w', ...               8   \n",
-        "988                          ['t', 'o', 'i', 'h', 'r']               7   \n",
-        "989      ['a', 'o', 'n', 's', 'r', 'd', 'l', 'u', 'm']               5   \n",
-        "990                          ['t', 'o', 'i', 'h', 's']               5   \n",
-        "991                     ['t', 'o', 'i', 'h', 'n', 'd']               7   \n",
-        "992  ['a', 'o', 'h', 'n', 'r', 'd', 'l', 'm', 'w', ...               7   \n",
-        "993                          ['o', 'i', 'h', 'r', 'd']              10   \n",
-        "994                     ['h', 'd', 'l', 'u', 'm', 'w']              10   \n",
-        "995  ['e', 't', 'o', 'h', 'n', 'd', 'l', 'u', 'm', ...               5   \n",
-        "996  ['t', 'o', 'i', 'h', 'n', 's', 'd', 'l', 'u', ...               3   \n",
-        "997                          ['e', 'a', 'i', 'h', 'n']               5   \n",
-        "998                ['o', 'h', 'l', 'u', 'm', 'w', 'c']              10   \n",
-        "999  ['o', 'h', 's', 'r', 'm', 'w', 'c', 'y', 'f', ...               9   \n",
-        "\n",
-        "     lives remaining game won  word length  \n",
-        "0                  2     True           10  \n",
-        "1                  0    False            6  \n",
-        "2                  0    False            9  \n",
-        "3                  0    False           10  \n",
-        "4                  0    False            6  \n",
-        "5                  0    False           11  \n",
-        "6                  0    False            7  \n",
-        "7                  2     True            8  \n",
-        "8                  5     True            7  \n",
-        "9                  5     True           11  \n",
-        "10                 0    False            7  \n",
-        "11                 0    False            4  \n",
-        "12                 4     True            8  \n",
-        "13                 0    False           10  \n",
-        "14                 1     True           10  \n",
-        "15                 0    False            8  \n",
-        "16                 0    False            6  \n",
-        "17                 3     True           14  \n",
-        "18                 7     True            5  \n",
-        "19                 0    False            7  \n",
-        "20                 0    False           11  \n",
-        "21                 0    False            9  \n",
-        "22                 0    False            2  \n",
-        "23                 2     True            8  \n",
-        "24                 0    False           10  \n",
-        "25                 0    False           11  \n",
-        "26                 2     True            6  \n",
-        "27                 1     True           11  \n",
-        "28                 0    False           12  \n",
-        "29                 0    False            9  \n",
-        "..               ...      ...          ...  \n",
-        "970                0    False            5  \n",
-        "971                0    False           11  \n",
-        "972                0    False            7  \n",
-        "973                4     True           11  \n",
-        "974                6     True           11  \n",
-        "975                0    False            7  \n",
-        "976                0    False            5  \n",
-        "977                0    False           14  \n",
-        "978                0    False            6  \n",
-        "979                1     True            8  \n",
-        "980                0    False            6  \n",
-        "981                0    False            6  \n",
-        "982                0    False            9  \n",
-        "983                0    False            7  \n",
-        "984                4     True           11  \n",
-        "985                0    False            7  \n",
-        "986                0    False            9  \n",
-        "987                0    False           10  \n",
-        "988                5     True            7  \n",
-        "989                1     True            5  \n",
-        "990                5     True            5  \n",
-        "991                4     True            7  \n",
-        "992                0    False            8  \n",
-        "993                5     True           10  \n",
-        "994                4     True           10  \n",
-        "995                0    False            6  \n",
-        "996                0    False            5  \n",
-        "997                5     True            5  \n",
-        "998                3     True           10  \n",
-        "999                0    False           11  \n",
-        "\n",
-        "[1000 rows x 7 columns]"
-       ]
-      }
-     ],
-     "prompt_number": 10
-    },
-    {
-     "cell_type": "code",
-     "collapsed": false,
-     "input": [
-      "fixed_order['lives remaining'].hist()"
-     ],
-     "language": "python",
-     "metadata": {},
-     "outputs": [
-      {
-       "metadata": {},
-       "output_type": "pyout",
-       "prompt_number": 11,
-       "text": [
-        "<matplotlib.axes.AxesSubplot at 0x7f15a58c0780>"
-       ]
-      },
-      {
-       "metadata": {},
-       "output_type": "display_data",
-       "png": "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\ntnpo7g5vAAAAAElFTkSuQmCC\n",
-       "text": [
-        "<matplotlib.figure.Figure at 0x7f15a58e0fd0>"
-       ]
-      }
-     ],
-     "prompt_number": 11
-    },
-    {
-     "cell_type": "code",
-     "collapsed": false,
-     "input": [
-      "fixed_order.groupby('lives remaining').size()"
-     ],
-     "language": "python",
-     "metadata": {},
-     "outputs": [
-      {
-       "metadata": {},
-       "output_type": "pyout",
-       "prompt_number": 12,
-       "text": [
-        "lives remaining\n",
-        "0                  667\n",
-        "1                   86\n",
-        "2                   60\n",
-        "3                   59\n",
-        "4                   50\n",
-        "5                   35\n",
-        "6                   22\n",
-        "7                   15\n",
-        "8                    6\n",
-        "dtype: int64"
-       ]
-      }
-     ],
-     "prompt_number": 12
-    },
-    {
-     "cell_type": "code",
-     "collapsed": false,
-     "input": [
-      "adaptive_pattern = pd.read_csv('adaptive_pattern.csv')\n",
-      "adaptive_pattern"
-     ],
-     "language": "python",
-     "metadata": {},
-     "outputs": [
-      {
-       "html": [
-        "<div style=\"max-height:1000px;max-width:1500px;overflow:auto;\">\n",
-        "<table border=\"1\" class=\"dataframe\">\n",
-        "  <thead>\n",
-        "    <tr style=\"text-align: right;\">\n",
-        "      <th></th>\n",
-        "      <th>target</th>\n",
-        "      <th>discovered</th>\n",
-        "      <th>wrong letters</th>\n",
-        "      <th>number of hits</th>\n",
-        "      <th>lives remaining</th>\n",
-        "      <th>game won</th>\n",
-        "    </tr>\n",
-        "  </thead>\n",
-        "  <tbody>\n",
-        "    <tr>\n",
-        "      <th>0  </th>\n",
-        "      <td>      toothsome</td>\n",
-        "      <td>     ['t', 'o', 'o', 't', 'h', 's', 'o', 'm', 'e']</td>\n",
-        "      <td>                     ['a', 'i']</td>\n",
-        "      <td>  9</td>\n",
-        "      <td>  8</td>\n",
-        "      <td> True</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>1  </th>\n",
-        "      <td>     analgesics</td>\n",
-        "      <td> ['a', 'n', 'a', 'l', 'g', 'e', 's', 'i', 'c', ...</td>\n",
-        "      <td>                             []</td>\n",
-        "      <td> 10</td>\n",
-        "      <td> 10</td>\n",
-        "      <td> True</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>2  </th>\n",
-        "      <td>     intrenched</td>\n",
-        "      <td> ['i', 'n', 't', 'r', 'e', 'n', 'c', 'h', 'e', ...</td>\n",
-        "      <td>                          ['s']</td>\n",
-        "      <td> 10</td>\n",
-        "      <td>  9</td>\n",
-        "      <td> True</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>3  </th>\n",
-        "      <td>         normal</td>\n",
-        "      <td>                    ['n', 'o', 'r', 'm', 'a', 'l']</td>\n",
-        "      <td>           ['e', 's', 'i', 'f']</td>\n",
-        "      <td>  6</td>\n",
-        "      <td>  6</td>\n",
-        "      <td> True</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>4  </th>\n",
-        "      <td>        debunks</td>\n",
-        "      <td>               ['d', 'e', 'b', 'u', 'n', 'k', 's']</td>\n",
-        "      <td>                          ['t']</td>\n",
-        "      <td>  7</td>\n",
-        "      <td>  9</td>\n",
-        "      <td> True</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>5  </th>\n",
-        "      <td>    satanically</td>\n",
-        "      <td> ['s', 'a', 't', 'a', 'n', 'i', 'c', 'a', 'l', ...</td>\n",
-        "      <td>                          ['e']</td>\n",
-        "      <td> 11</td>\n",
-        "      <td>  9</td>\n",
-        "      <td> True</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>6  </th>\n",
-        "      <td>       radicals</td>\n",
-        "      <td>          ['r', 'a', 'd', 'i', 'c', 'a', 'l', 's']</td>\n",
-        "      <td>                     ['e', 't']</td>\n",
-        "      <td>  8</td>\n",
-        "      <td>  8</td>\n",
-        "      <td> True</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>7  </th>\n",
-        "      <td>         erotic</td>\n",
-        "      <td>                    ['e', 'r', 'o', 't', 'i', 'c']</td>\n",
-        "      <td>                             []</td>\n",
-        "      <td>  6</td>\n",
-        "      <td> 10</td>\n",
-        "      <td> True</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>8  </th>\n",
-        "      <td>         double</td>\n",
-        "      <td>                    ['d', 'o', 'u', 'b', 'l', 'e']</td>\n",
-        "      <td>                ['a', 'm', 'r']</td>\n",
-        "      <td>  6</td>\n",
-        "      <td>  7</td>\n",
-        "      <td> True</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>9  </th>\n",
-        "      <td>         caviar</td>\n",
-        "      <td>                    ['c', 'a', 'v', 'i', 'a', 'r']</td>\n",
-        "      <td>           ['e', 's', 'n', 'l']</td>\n",
-        "      <td>  6</td>\n",
-        "      <td>  6</td>\n",
-        "      <td> True</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>10 </th>\n",
-        "      <td>    rigamaroles</td>\n",
-        "      <td> ['r', 'i', 'g', 'a', 'm', 'a', 'r', 'o', 'l', ...</td>\n",
-        "      <td>                             []</td>\n",
-        "      <td> 11</td>\n",
-        "      <td> 10</td>\n",
-        "      <td> True</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>11 </th>\n",
-        "      <td>  disfranchises</td>\n",
-        "      <td> ['d', 'i', 's', 'f', 'r', 'a', 'n', 'c', 'h', ...</td>\n",
-        "      <td>                             []</td>\n",
-        "      <td> 13</td>\n",
-        "      <td> 10</td>\n",
-        "      <td> True</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>12 </th>\n",
-        "      <td>     mushroomed</td>\n",
-        "      <td> ['m', 'u', 's', 'h', 'r', 'o', 'o', 'm', 'e', ...</td>\n",
-        "      <td>                          ['t']</td>\n",
-        "      <td> 10</td>\n",
-        "      <td>  9</td>\n",
-        "      <td> True</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>13 </th>\n",
-        "      <td>          rails</td>\n",
-        "      <td>                         ['r', 'a', 'i', 'l', 's']</td>\n",
-        "      <td> ['e', 'o', 't', 'm', 'f', 'w']</td>\n",
-        "      <td>  5</td>\n",
-        "      <td>  4</td>\n",
-        "      <td> True</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>14 </th>\n",
-        "      <td>         poised</td>\n",
-        "      <td>                    ['p', 'o', 'i', 's', 'e', 'd']</td>\n",
-        "      <td>           ['a', 'l', 't', 'k']</td>\n",
-        "      <td>  6</td>\n",
-        "      <td>  6</td>\n",
-        "      <td> True</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>15 </th>\n",
-        "      <td>    circulating</td>\n",
-        "      <td> ['c', 'i', 'r', 'c', 'u', 'l', 'a', 't', 'i', ...</td>\n",
-        "      <td>                          ['e']</td>\n",
-        "      <td> 11</td>\n",
-        "      <td>  9</td>\n",
-        "      <td> True</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>16 </th>\n",
-        "      <td>     yesteryear</td>\n",
-        "      <td> ['y', 'e', 's', 't', 'e', 'r', 'y', 'e', 'a', ...</td>\n",
-        "      <td>                             []</td>\n",
-        "      <td> 10</td>\n",
-        "      <td> 10</td>\n",
-        "      <td> True</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>17 </th>\n",
-        "      <td>       chastest</td>\n",
-        "      <td>          ['c', 'h', 'a', 's', 't', 'e', 's', 't']</td>\n",
-        "      <td>                          ['m']</td>\n",
-        "      <td>  8</td>\n",
-        "      <td>  9</td>\n",
-        "      <td> True</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>18 </th>\n",
-        "      <td>        lenders</td>\n",
-        "      <td>               ['l', 'e', 'n', 'd', 'e', 'r', 's']</td>\n",
-        "      <td>                ['t', 'f', 'm']</td>\n",
-        "      <td>  7</td>\n",
-        "      <td>  7</td>\n",
-        "      <td> True</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>19 </th>\n",
-        "      <td>        upshots</td>\n",
-        "      <td>               ['u', 'p', 's', 'h', 'o', 't', 's']</td>\n",
-        "      <td>           ['e', 'i', 'a', 'n']</td>\n",
-        "      <td>  7</td>\n",
-        "      <td>  6</td>\n",
-        "      <td> True</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>20 </th>\n",
-        "      <td>       stridden</td>\n",
-        "      <td>          ['s', 't', 'r', 'i', 'd', 'd', 'e', 'n']</td>\n",
-        "      <td>                             []</td>\n",
-        "      <td>  8</td>\n",
-        "      <td> 10</td>\n",
-        "      <td> True</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>21 </th>\n",
-        "      <td>    trespassing</td>\n",
-        "      <td> ['t', 'r', 'e', 's', 'p', 'a', 's', 's', 'i', ...</td>\n",
-        "      <td>                          ['o']</td>\n",
-        "      <td> 11</td>\n",
-        "      <td>  9</td>\n",
-        "      <td> True</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>22 </th>\n",
-        "      <td>       muckrake</td>\n",
-        "      <td>          ['m', 'u', 'c', 'k', 'r', 'a', 'k', 'e']</td>\n",
-        "      <td>                          ['t']</td>\n",
-        "      <td>  8</td>\n",
-        "      <td>  9</td>\n",
-        "      <td> True</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>23 </th>\n",
-        "      <td>      bungalows</td>\n",
-        "      <td>     ['b', 'u', 'n', 'g', 'a', 'l', 'o', 'w', 's']</td>\n",
-        "      <td>                ['e', 'i', 't']</td>\n",
-        "      <td>  9</td>\n",
-        "      <td>  7</td>\n",
-        "      <td> True</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>24 </th>\n",
-        "      <td>      rewinding</td>\n",
-        "      <td>     ['r', 'e', 'w', 'i', 'n', 'd', 'i', 'n', 'g']</td>\n",
-        "      <td>                          ['m']</td>\n",
-        "      <td>  9</td>\n",
-        "      <td>  9</td>\n",
-        "      <td> True</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>25 </th>\n",
-        "      <td>   stepchildren</td>\n",
-        "      <td> ['s', 't', 'e', 'p', 'c', 'h', 'i', 'l', 'd', ...</td>\n",
-        "      <td>                             []</td>\n",
-        "      <td> 12</td>\n",
-        "      <td> 10</td>\n",
-        "      <td> True</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>26 </th>\n",
-        "      <td>   courageously</td>\n",
-        "      <td> ['c', 'o', 'u', 'r', 'a', 'g', 'e', 'o', 'u', ...</td>\n",
-        "      <td>                          ['i']</td>\n",
-        "      <td> 12</td>\n",
-        "      <td>  9</td>\n",
-        "      <td> True</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>27 </th>\n",
-        "      <td>   gladiatorial</td>\n",
-        "      <td> ['g', 'l', 'a', 'd', 'i', 'a', 't', 'o', 'r', ...</td>\n",
-        "      <td>                          ['e']</td>\n",
-        "      <td> 12</td>\n",
-        "      <td>  9</td>\n",
-        "      <td> True</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>28 </th>\n",
-        "      <td>        unseals</td>\n",
-        "      <td>               ['u', 'n', 's', 'e', 'a', 'l', 's']</td>\n",
-        "      <td>                          ['t']</td>\n",
-        "      <td>  7</td>\n",
-        "      <td>  9</td>\n",
-        "      <td> True</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>29 </th>\n",
-        "      <td>      backaches</td>\n",
-        "      <td>     ['b', 'a', 'c', 'k', 'a', 'c', 'h', 'e', 's']</td>\n",
-        "      <td>                          ['i']</td>\n",
-        "      <td>  9</td>\n",
-        "      <td>  9</td>\n",
-        "      <td> True</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>...</th>\n",
-        "      <td>...</td>\n",
-        "      <td>...</td>\n",
-        "      <td>...</td>\n",
-        "      <td>...</td>\n",
-        "      <td>...</td>\n",
-        "      <td>...</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>970</th>\n",
-        "      <td>    priestliest</td>\n",
-        "      <td> ['p', 'r', 'i', 'e', 's', 't', 'l', 'i', 'e', ...</td>\n",
-        "      <td>                             []</td>\n",
-        "      <td> 11</td>\n",
-        "      <td> 10</td>\n",
-        "      <td> True</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>971</th>\n",
-        "      <td>      oversight</td>\n",
-        "      <td>     ['o', 'v', 'e', 'r', 's', 'i', 'g', 'h', 't']</td>\n",
-        "      <td>                             []</td>\n",
-        "      <td>  9</td>\n",
-        "      <td> 10</td>\n",
-        "      <td> True</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>972</th>\n",
-        "      <td>       nutshell</td>\n",
-        "      <td>          ['n', 'u', 't', 's', 'h', 'e', 'l', 'l']</td>\n",
-        "      <td>                          ['r']</td>\n",
-        "      <td>  8</td>\n",
-        "      <td>  9</td>\n",
-        "      <td> True</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>973</th>\n",
-        "      <td>         picker</td>\n",
-        "      <td>                    ['p', 'i', 'c', 'k', 'e', 'r']</td>\n",
-        "      <td>           ['d', 's', 't', 'g']</td>\n",
-        "      <td>  6</td>\n",
-        "      <td>  6</td>\n",
-        "      <td> True</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>974</th>\n",
-        "      <td>           prom</td>\n",
-        "      <td>                              ['p', 'r', 'o', 'm']</td>\n",
-        "      <td>                ['e', 's', 'l']</td>\n",
-        "      <td>  4</td>\n",
-        "      <td>  7</td>\n",
-        "      <td> True</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>975</th>\n",
-        "      <td>          spoke</td>\n",
-        "      <td>                         ['s', 'p', 'o', 'k', 'e']</td>\n",
-        "      <td>           ['a', 'i', 't', 'r']</td>\n",
-        "      <td>  5</td>\n",
-        "      <td>  6</td>\n",
-        "      <td> True</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>976</th>\n",
-        "      <td>     videodiscs</td>\n",
-        "      <td> ['v', 'i', 'd', 'e', 'o', 'd', 'i', 's', 'c', ...</td>\n",
-        "      <td>                             []</td>\n",
-        "      <td> 10</td>\n",
-        "      <td> 10</td>\n",
-        "      <td> True</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>977</th>\n",
-        "      <td>       braggart</td>\n",
-        "      <td>          ['b', 'r', 'a', 'g', 'g', 'a', 'r', 't']</td>\n",
-        "      <td>                     ['e', 'i']</td>\n",
-        "      <td>  8</td>\n",
-        "      <td>  8</td>\n",
-        "      <td> True</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>978</th>\n",
-        "      <td>       shindigs</td>\n",
-        "      <td>          ['s', 'h', 'i', 'n', 'd', 'i', 'g', 's']</td>\n",
-        "      <td>                          ['e']</td>\n",
-        "      <td>  8</td>\n",
-        "      <td>  9</td>\n",
-        "      <td> True</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>979</th>\n",
-        "      <td>   indorsements</td>\n",
-        "      <td> ['i', 'n', 'd', 'o', 'r', 's', 'e', 'm', 'e', ...</td>\n",
-        "      <td>                             []</td>\n",
-        "      <td> 12</td>\n",
-        "      <td> 10</td>\n",
-        "      <td> True</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>980</th>\n",
-        "      <td>         audios</td>\n",
-        "      <td>                    ['a', 'u', 'd', 'i', 'o', 's']</td>\n",
-        "      <td>                          ['e']</td>\n",
-        "      <td>  6</td>\n",
-        "      <td>  9</td>\n",
-        "      <td> True</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>981</th>\n",
-        "      <td>       disrobes</td>\n",
-        "      <td>          ['d', 'i', 's', 'r', 'o', 'b', 'e', 's']</td>\n",
-        "      <td>                     ['t', 'm']</td>\n",
-        "      <td>  8</td>\n",
-        "      <td>  8</td>\n",
-        "      <td> True</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>982</th>\n",
-        "      <td>          drake</td>\n",
-        "      <td>                         ['d', 'r', 'a', 'k', 'e']</td>\n",
-        "      <td>      ['s', 'c', 't', 'g', 'p']</td>\n",
-        "      <td>  5</td>\n",
-        "      <td>  5</td>\n",
-        "      <td> True</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>983</th>\n",
-        "      <td>          penes</td>\n",
-        "      <td>                         ['p', 'e', 'n', 'e', 's']</td>\n",
-        "      <td>                          ['m']</td>\n",
-        "      <td>  5</td>\n",
-        "      <td>  9</td>\n",
-        "      <td> True</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>984</th>\n",
-        "      <td>     ecological</td>\n",
-        "      <td> ['e', 'c', 'o', 'l', 'o', 'g', 'i', 'c', 'a', ...</td>\n",
-        "      <td>                          ['s']</td>\n",
-        "      <td> 10</td>\n",
-        "      <td>  9</td>\n",
-        "      <td> True</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>985</th>\n",
-        "      <td>  consideration</td>\n",
-        "      <td> ['c', 'o', 'n', 's', 'i', 'd', 'e', 'r', 'a', ...</td>\n",
-        "      <td>                          ['f']</td>\n",
-        "      <td> 13</td>\n",
-        "      <td>  9</td>\n",
-        "      <td> True</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>986</th>\n",
-        "      <td>       strolled</td>\n",
-        "      <td>          ['s', 't', 'r', 'o', 'l', 'l', 'e', 'd']</td>\n",
-        "      <td>                ['p', 'i', 'm']</td>\n",
-        "      <td>  8</td>\n",
-        "      <td>  7</td>\n",
-        "      <td> True</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>987</th>\n",
-        "      <td>     peacemaker</td>\n",
-        "      <td> ['p', 'e', 'a', 'c', 'e', 'm', 'a', 'k', 'e', ...</td>\n",
-        "      <td>                             []</td>\n",
-        "      <td> 10</td>\n",
-        "      <td> 10</td>\n",
-        "      <td> True</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>988</th>\n",
-        "      <td>      chilliest</td>\n",
-        "      <td>     ['c', 'h', 'i', 'l', 'l', 'i', 'e', 's', 't']</td>\n",
-        "      <td>                          ['f']</td>\n",
-        "      <td>  9</td>\n",
-        "      <td>  9</td>\n",
-        "      <td> True</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>989</th>\n",
-        "      <td>       neuritis</td>\n",
-        "      <td>          ['n', 'e', 'u', 'r', 'i', 't', 'i', 's']</td>\n",
-        "      <td>                             []</td>\n",
-        "      <td>  8</td>\n",
-        "      <td> 10</td>\n",
-        "      <td> True</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>990</th>\n",
-        "      <td>       quisling</td>\n",
-        "      <td>          ['q', 'u', 'i', 's', 'l', 'i', 'n', 'g']</td>\n",
-        "      <td>           ['e', 't', 'k', 'p']</td>\n",
-        "      <td>  8</td>\n",
-        "      <td>  6</td>\n",
-        "      <td> True</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>991</th>\n",
-        "      <td>    transplants</td>\n",
-        "      <td> ['t', 'r', 'a', 'n', 's', 'p', 'l', 'a', 'n', ...</td>\n",
-        "      <td>                ['e', 'i', 'o']</td>\n",
-        "      <td> 11</td>\n",
-        "      <td>  7</td>\n",
-        "      <td> True</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>992</th>\n",
-        "      <td>         bevies</td>\n",
-        "      <td>                    ['b', 'e', 'v', 'i', 'e', 's']</td>\n",
-        "      <td>                ['d', 'r', 'l']</td>\n",
-        "      <td>  6</td>\n",
-        "      <td>  7</td>\n",
-        "      <td> True</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>993</th>\n",
-        "      <td>          geeky</td>\n",
-        "      <td>                         ['g', 'e', 'e', 'k', 'y']</td>\n",
-        "      <td>           ['s', 'd', 't', 'f']</td>\n",
-        "      <td>  5</td>\n",
-        "      <td>  6</td>\n",
-        "      <td> True</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>994</th>\n",
-        "      <td> demonstrations</td>\n",
-        "      <td> ['d', 'e', 'm', 'o', 'n', 's', 't', 'r', 'a', ...</td>\n",
-        "      <td>                             []</td>\n",
-        "      <td> 14</td>\n",
-        "      <td> 10</td>\n",
-        "      <td> True</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>995</th>\n",
-        "      <td>         dowses</td>\n",
-        "      <td>                    ['d', 'o', 'w', 's', 'e', 's']</td>\n",
-        "      <td>                     ['r', 'u']</td>\n",
-        "      <td>  6</td>\n",
-        "      <td>  8</td>\n",
-        "      <td> True</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>996</th>\n",
-        "      <td>     pummelling</td>\n",
-        "      <td> ['p', 'u', 'm', 'm', 'e', 'l', 'l', 'i', 'n', ...</td>\n",
-        "      <td>                ['s', 'r', 'o']</td>\n",
-        "      <td> 10</td>\n",
-        "      <td>  7</td>\n",
-        "      <td> True</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>997</th>\n",
-        "      <td>    earnestness</td>\n",
-        "      <td> ['e', 'a', 'r', 'n', 'e', 's', 't', 'n', 'e', ...</td>\n",
-        "      <td>                             []</td>\n",
-        "      <td> 11</td>\n",
-        "      <td> 10</td>\n",
-        "      <td> True</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>998</th>\n",
-        "      <td> thermodynamics</td>\n",
-        "      <td> ['t', 'h', 'e', 'r', 'm', 'o', 'd', 'y', 'n', ...</td>\n",
-        "      <td>                             []</td>\n",
-        "      <td> 14</td>\n",
-        "      <td> 10</td>\n",
-        "      <td> True</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>999</th>\n",
-        "      <td>         flurry</td>\n",
-        "      <td>                    ['f', 'l', 'u', 'r', 'r', 'y']</td>\n",
-        "      <td>      ['e', 's', 'i', 'a', 'o']</td>\n",
-        "      <td>  6</td>\n",
-        "      <td>  5</td>\n",
-        "      <td> True</td>\n",
-        "    </tr>\n",
-        "  </tbody>\n",
-        "</table>\n",
-        "<p>1000 rows \u00d7 6 columns</p>\n",
-        "</div>"
-       ],
-       "metadata": {},
-       "output_type": "pyout",
-       "prompt_number": 18,
-       "text": [
-        "             target                                         discovered  \\\n",
-        "0         toothsome      ['t', 'o', 'o', 't', 'h', 's', 'o', 'm', 'e']   \n",
-        "1        analgesics  ['a', 'n', 'a', 'l', 'g', 'e', 's', 'i', 'c', ...   \n",
-        "2        intrenched  ['i', 'n', 't', 'r', 'e', 'n', 'c', 'h', 'e', ...   \n",
-        "3            normal                     ['n', 'o', 'r', 'm', 'a', 'l']   \n",
-        "4           debunks                ['d', 'e', 'b', 'u', 'n', 'k', 's']   \n",
-        "5       satanically  ['s', 'a', 't', 'a', 'n', 'i', 'c', 'a', 'l', ...   \n",
-        "6          radicals           ['r', 'a', 'd', 'i', 'c', 'a', 'l', 's']   \n",
-        "7            erotic                     ['e', 'r', 'o', 't', 'i', 'c']   \n",
-        "8            double                     ['d', 'o', 'u', 'b', 'l', 'e']   \n",
-        "9            caviar                     ['c', 'a', 'v', 'i', 'a', 'r']   \n",
-        "10      rigamaroles  ['r', 'i', 'g', 'a', 'm', 'a', 'r', 'o', 'l', ...   \n",
-        "11    disfranchises  ['d', 'i', 's', 'f', 'r', 'a', 'n', 'c', 'h', ...   \n",
-        "12       mushroomed  ['m', 'u', 's', 'h', 'r', 'o', 'o', 'm', 'e', ...   \n",
-        "13            rails                          ['r', 'a', 'i', 'l', 's']   \n",
-        "14           poised                     ['p', 'o', 'i', 's', 'e', 'd']   \n",
-        "15      circulating  ['c', 'i', 'r', 'c', 'u', 'l', 'a', 't', 'i', ...   \n",
-        "16       yesteryear  ['y', 'e', 's', 't', 'e', 'r', 'y', 'e', 'a', ...   \n",
-        "17         chastest           ['c', 'h', 'a', 's', 't', 'e', 's', 't']   \n",
-        "18          lenders                ['l', 'e', 'n', 'd', 'e', 'r', 's']   \n",
-        "19          upshots                ['u', 'p', 's', 'h', 'o', 't', 's']   \n",
-        "20         stridden           ['s', 't', 'r', 'i', 'd', 'd', 'e', 'n']   \n",
-        "21      trespassing  ['t', 'r', 'e', 's', 'p', 'a', 's', 's', 'i', ...   \n",
-        "22         muckrake           ['m', 'u', 'c', 'k', 'r', 'a', 'k', 'e']   \n",
-        "23        bungalows      ['b', 'u', 'n', 'g', 'a', 'l', 'o', 'w', 's']   \n",
-        "24        rewinding      ['r', 'e', 'w', 'i', 'n', 'd', 'i', 'n', 'g']   \n",
-        "25     stepchildren  ['s', 't', 'e', 'p', 'c', 'h', 'i', 'l', 'd', ...   \n",
-        "26     courageously  ['c', 'o', 'u', 'r', 'a', 'g', 'e', 'o', 'u', ...   \n",
-        "27     gladiatorial  ['g', 'l', 'a', 'd', 'i', 'a', 't', 'o', 'r', ...   \n",
-        "28          unseals                ['u', 'n', 's', 'e', 'a', 'l', 's']   \n",
-        "29        backaches      ['b', 'a', 'c', 'k', 'a', 'c', 'h', 'e', 's']   \n",
-        "..              ...                                                ...   \n",
-        "970     priestliest  ['p', 'r', 'i', 'e', 's', 't', 'l', 'i', 'e', ...   \n",
-        "971       oversight      ['o', 'v', 'e', 'r', 's', 'i', 'g', 'h', 't']   \n",
-        "972        nutshell           ['n', 'u', 't', 's', 'h', 'e', 'l', 'l']   \n",
-        "973          picker                     ['p', 'i', 'c', 'k', 'e', 'r']   \n",
-        "974            prom                               ['p', 'r', 'o', 'm']   \n",
-        "975           spoke                          ['s', 'p', 'o', 'k', 'e']   \n",
-        "976      videodiscs  ['v', 'i', 'd', 'e', 'o', 'd', 'i', 's', 'c', ...   \n",
-        "977        braggart           ['b', 'r', 'a', 'g', 'g', 'a', 'r', 't']   \n",
-        "978        shindigs           ['s', 'h', 'i', 'n', 'd', 'i', 'g', 's']   \n",
-        "979    indorsements  ['i', 'n', 'd', 'o', 'r', 's', 'e', 'm', 'e', ...   \n",
-        "980          audios                     ['a', 'u', 'd', 'i', 'o', 's']   \n",
-        "981        disrobes           ['d', 'i', 's', 'r', 'o', 'b', 'e', 's']   \n",
-        "982           drake                          ['d', 'r', 'a', 'k', 'e']   \n",
-        "983           penes                          ['p', 'e', 'n', 'e', 's']   \n",
-        "984      ecological  ['e', 'c', 'o', 'l', 'o', 'g', 'i', 'c', 'a', ...   \n",
-        "985   consideration  ['c', 'o', 'n', 's', 'i', 'd', 'e', 'r', 'a', ...   \n",
-        "986        strolled           ['s', 't', 'r', 'o', 'l', 'l', 'e', 'd']   \n",
-        "987      peacemaker  ['p', 'e', 'a', 'c', 'e', 'm', 'a', 'k', 'e', ...   \n",
-        "988       chilliest      ['c', 'h', 'i', 'l', 'l', 'i', 'e', 's', 't']   \n",
-        "989        neuritis           ['n', 'e', 'u', 'r', 'i', 't', 'i', 's']   \n",
-        "990        quisling           ['q', 'u', 'i', 's', 'l', 'i', 'n', 'g']   \n",
-        "991     transplants  ['t', 'r', 'a', 'n', 's', 'p', 'l', 'a', 'n', ...   \n",
-        "992          bevies                     ['b', 'e', 'v', 'i', 'e', 's']   \n",
-        "993           geeky                          ['g', 'e', 'e', 'k', 'y']   \n",
-        "994  demonstrations  ['d', 'e', 'm', 'o', 'n', 's', 't', 'r', 'a', ...   \n",
-        "995          dowses                     ['d', 'o', 'w', 's', 'e', 's']   \n",
-        "996      pummelling  ['p', 'u', 'm', 'm', 'e', 'l', 'l', 'i', 'n', ...   \n",
-        "997     earnestness  ['e', 'a', 'r', 'n', 'e', 's', 't', 'n', 'e', ...   \n",
-        "998  thermodynamics  ['t', 'h', 'e', 'r', 'm', 'o', 'd', 'y', 'n', ...   \n",
-        "999          flurry                     ['f', 'l', 'u', 'r', 'r', 'y']   \n",
-        "\n",
-        "                      wrong letters  number of hits  lives remaining game won  \n",
-        "0                        ['a', 'i']               9                8     True  \n",
-        "1                                []              10               10     True  \n",
-        "2                             ['s']              10                9     True  \n",
-        "3              ['e', 's', 'i', 'f']               6                6     True  \n",
-        "4                             ['t']               7                9     True  \n",
-        "5                             ['e']              11                9     True  \n",
-        "6                        ['e', 't']               8                8     True  \n",
-        "7                                []               6               10     True  \n",
-        "8                   ['a', 'm', 'r']               6                7     True  \n",
-        "9              ['e', 's', 'n', 'l']               6                6     True  \n",
-        "10                               []              11               10     True  \n",
-        "11                               []              13               10     True  \n",
-        "12                            ['t']              10                9     True  \n",
-        "13   ['e', 'o', 't', 'm', 'f', 'w']               5                4     True  \n",
-        "14             ['a', 'l', 't', 'k']               6                6     True  \n",
-        "15                            ['e']              11                9     True  \n",
-        "16                               []              10               10     True  \n",
-        "17                            ['m']               8                9     True  \n",
-        "18                  ['t', 'f', 'm']               7                7     True  \n",
-        "19             ['e', 'i', 'a', 'n']               7                6     True  \n",
-        "20                               []               8               10     True  \n",
-        "21                            ['o']              11                9     True  \n",
-        "22                            ['t']               8                9     True  \n",
-        "23                  ['e', 'i', 't']               9                7     True  \n",
-        "24                            ['m']               9                9     True  \n",
-        "25                               []              12               10     True  \n",
-        "26                            ['i']              12                9     True  \n",
-        "27                            ['e']              12                9     True  \n",
-        "28                            ['t']               7                9     True  \n",
-        "29                            ['i']               9                9     True  \n",
-        "..                              ...             ...              ...      ...  \n",
-        "970                              []              11               10     True  \n",
-        "971                              []               9               10     True  \n",
-        "972                           ['r']               8                9     True  \n",
-        "973            ['d', 's', 't', 'g']               6                6     True  \n",
-        "974                 ['e', 's', 'l']               4                7     True  \n",
-        "975            ['a', 'i', 't', 'r']               5                6     True  \n",
-        "976                              []              10               10     True  \n",
-        "977                      ['e', 'i']               8                8     True  \n",
-        "978                           ['e']               8                9     True  \n",
-        "979                              []              12               10     True  \n",
-        "980                           ['e']               6                9     True  \n",
-        "981                      ['t', 'm']               8                8     True  \n",
-        "982       ['s', 'c', 't', 'g', 'p']               5                5     True  \n",
-        "983                           ['m']               5                9     True  \n",
-        "984                           ['s']              10                9     True  \n",
-        "985                           ['f']              13                9     True  \n",
-        "986                 ['p', 'i', 'm']               8                7     True  \n",
-        "987                              []              10               10     True  \n",
-        "988                           ['f']               9                9     True  \n",
-        "989                              []               8               10     True  \n",
-        "990            ['e', 't', 'k', 'p']               8                6     True  \n",
-        "991                 ['e', 'i', 'o']              11                7     True  \n",
-        "992                 ['d', 'r', 'l']               6                7     True  \n",
-        "993            ['s', 'd', 't', 'f']               5                6     True  \n",
-        "994                              []              14               10     True  \n",
-        "995                      ['r', 'u']               6                8     True  \n",
-        "996                 ['s', 'r', 'o']              10                7     True  \n",
-        "997                              []              11               10     True  \n",
-        "998                              []              14               10     True  \n",
-        "999       ['e', 's', 'i', 'a', 'o']               6                5     True  \n",
-        "\n",
-        "[1000 rows x 6 columns]"
-       ]
-      }
-     ],
-     "prompt_number": 18
-    },
-    {
-     "cell_type": "code",
-     "collapsed": false,
-     "input": [
-      "adaptive_pattern['word length'] = adaptive_pattern.apply(lambda r: len(r['target']), axis=1)\n",
-      "adaptive_pattern"
-     ],
-     "language": "python",
-     "metadata": {},
-     "outputs": [
-      {
-       "html": [
-        "<div style=\"max-height:1000px;max-width:1500px;overflow:auto;\">\n",
-        "<table border=\"1\" class=\"dataframe\">\n",
-        "  <thead>\n",
-        "    <tr style=\"text-align: right;\">\n",
-        "      <th></th>\n",
-        "      <th>target</th>\n",
-        "      <th>discovered</th>\n",
-        "      <th>wrong letters</th>\n",
-        "      <th>number of hits</th>\n",
-        "      <th>lives remaining</th>\n",
-        "      <th>game won</th>\n",
-        "      <th>word length</th>\n",
-        "    </tr>\n",
-        "  </thead>\n",
-        "  <tbody>\n",
-        "    <tr>\n",
-        "      <th>0  </th>\n",
-        "      <td>      toothsome</td>\n",
-        "      <td>     ['t', 'o', 'o', 't', 'h', 's', 'o', 'm', 'e']</td>\n",
-        "      <td>                     ['a', 'i']</td>\n",
-        "      <td>  9</td>\n",
-        "      <td>  8</td>\n",
-        "      <td> True</td>\n",
-        "      <td>  9</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>1  </th>\n",
-        "      <td>     analgesics</td>\n",
-        "      <td> ['a', 'n', 'a', 'l', 'g', 'e', 's', 'i', 'c', ...</td>\n",
-        "      <td>                             []</td>\n",
-        "      <td> 10</td>\n",
-        "      <td> 10</td>\n",
-        "      <td> True</td>\n",
-        "      <td> 10</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>2  </th>\n",
-        "      <td>     intrenched</td>\n",
-        "      <td> ['i', 'n', 't', 'r', 'e', 'n', 'c', 'h', 'e', ...</td>\n",
-        "      <td>                          ['s']</td>\n",
-        "      <td> 10</td>\n",
-        "      <td>  9</td>\n",
-        "      <td> True</td>\n",
-        "      <td> 10</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>3  </th>\n",
-        "      <td>         normal</td>\n",
-        "      <td>                    ['n', 'o', 'r', 'm', 'a', 'l']</td>\n",
-        "      <td>           ['e', 's', 'i', 'f']</td>\n",
-        "      <td>  6</td>\n",
-        "      <td>  6</td>\n",
-        "      <td> True</td>\n",
-        "      <td>  6</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>4  </th>\n",
-        "      <td>        debunks</td>\n",
-        "      <td>               ['d', 'e', 'b', 'u', 'n', 'k', 's']</td>\n",
-        "      <td>                          ['t']</td>\n",
-        "      <td>  7</td>\n",
-        "      <td>  9</td>\n",
-        "      <td> True</td>\n",
-        "      <td>  7</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>5  </th>\n",
-        "      <td>    satanically</td>\n",
-        "      <td> ['s', 'a', 't', 'a', 'n', 'i', 'c', 'a', 'l', ...</td>\n",
-        "      <td>                          ['e']</td>\n",
-        "      <td> 11</td>\n",
-        "      <td>  9</td>\n",
-        "      <td> True</td>\n",
-        "      <td> 11</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>6  </th>\n",
-        "      <td>       radicals</td>\n",
-        "      <td>          ['r', 'a', 'd', 'i', 'c', 'a', 'l', 's']</td>\n",
-        "      <td>                     ['e', 't']</td>\n",
-        "      <td>  8</td>\n",
-        "      <td>  8</td>\n",
-        "      <td> True</td>\n",
-        "      <td>  8</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>7  </th>\n",
-        "      <td>         erotic</td>\n",
-        "      <td>                    ['e', 'r', 'o', 't', 'i', 'c']</td>\n",
-        "      <td>                             []</td>\n",
-        "      <td>  6</td>\n",
-        "      <td> 10</td>\n",
-        "      <td> True</td>\n",
-        "      <td>  6</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>8  </th>\n",
-        "      <td>         double</td>\n",
-        "      <td>                    ['d', 'o', 'u', 'b', 'l', 'e']</td>\n",
-        "      <td>                ['a', 'm', 'r']</td>\n",
-        "      <td>  6</td>\n",
-        "      <td>  7</td>\n",
-        "      <td> True</td>\n",
-        "      <td>  6</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>9  </th>\n",
-        "      <td>         caviar</td>\n",
-        "      <td>                    ['c', 'a', 'v', 'i', 'a', 'r']</td>\n",
-        "      <td>           ['e', 's', 'n', 'l']</td>\n",
-        "      <td>  6</td>\n",
-        "      <td>  6</td>\n",
-        "      <td> True</td>\n",
-        "      <td>  6</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>10 </th>\n",
-        "      <td>    rigamaroles</td>\n",
-        "      <td> ['r', 'i', 'g', 'a', 'm', 'a', 'r', 'o', 'l', ...</td>\n",
-        "      <td>                             []</td>\n",
-        "      <td> 11</td>\n",
-        "      <td> 10</td>\n",
-        "      <td> True</td>\n",
-        "      <td> 11</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>11 </th>\n",
-        "      <td>  disfranchises</td>\n",
-        "      <td> ['d', 'i', 's', 'f', 'r', 'a', 'n', 'c', 'h', ...</td>\n",
-        "      <td>                             []</td>\n",
-        "      <td> 13</td>\n",
-        "      <td> 10</td>\n",
-        "      <td> True</td>\n",
-        "      <td> 13</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>12 </th>\n",
-        "      <td>     mushroomed</td>\n",
-        "      <td> ['m', 'u', 's', 'h', 'r', 'o', 'o', 'm', 'e', ...</td>\n",
-        "      <td>                          ['t']</td>\n",
-        "      <td> 10</td>\n",
-        "      <td>  9</td>\n",
-        "      <td> True</td>\n",
-        "      <td> 10</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>13 </th>\n",
-        "      <td>          rails</td>\n",
-        "      <td>                         ['r', 'a', 'i', 'l', 's']</td>\n",
-        "      <td> ['e', 'o', 't', 'm', 'f', 'w']</td>\n",
-        "      <td>  5</td>\n",
-        "      <td>  4</td>\n",
-        "      <td> True</td>\n",
-        "      <td>  5</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>14 </th>\n",
-        "      <td>         poised</td>\n",
-        "      <td>                    ['p', 'o', 'i', 's', 'e', 'd']</td>\n",
-        "      <td>           ['a', 'l', 't', 'k']</td>\n",
-        "      <td>  6</td>\n",
-        "      <td>  6</td>\n",
-        "      <td> True</td>\n",
-        "      <td>  6</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>15 </th>\n",
-        "      <td>    circulating</td>\n",
-        "      <td> ['c', 'i', 'r', 'c', 'u', 'l', 'a', 't', 'i', ...</td>\n",
-        "      <td>                          ['e']</td>\n",
-        "      <td> 11</td>\n",
-        "      <td>  9</td>\n",
-        "      <td> True</td>\n",
-        "      <td> 11</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>16 </th>\n",
-        "      <td>     yesteryear</td>\n",
-        "      <td> ['y', 'e', 's', 't', 'e', 'r', 'y', 'e', 'a', ...</td>\n",
-        "      <td>                             []</td>\n",
-        "      <td> 10</td>\n",
-        "      <td> 10</td>\n",
-        "      <td> True</td>\n",
-        "      <td> 10</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>17 </th>\n",
-        "      <td>       chastest</td>\n",
-        "      <td>          ['c', 'h', 'a', 's', 't', 'e', 's', 't']</td>\n",
-        "      <td>                          ['m']</td>\n",
-        "      <td>  8</td>\n",
-        "      <td>  9</td>\n",
-        "      <td> True</td>\n",
-        "      <td>  8</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>18 </th>\n",
-        "      <td>        lenders</td>\n",
-        "      <td>               ['l', 'e', 'n', 'd', 'e', 'r', 's']</td>\n",
-        "      <td>                ['t', 'f', 'm']</td>\n",
-        "      <td>  7</td>\n",
-        "      <td>  7</td>\n",
-        "      <td> True</td>\n",
-        "      <td>  7</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>19 </th>\n",
-        "      <td>        upshots</td>\n",
-        "      <td>               ['u', 'p', 's', 'h', 'o', 't', 's']</td>\n",
-        "      <td>           ['e', 'i', 'a', 'n']</td>\n",
-        "      <td>  7</td>\n",
-        "      <td>  6</td>\n",
-        "      <td> True</td>\n",
-        "      <td>  7</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>20 </th>\n",
-        "      <td>       stridden</td>\n",
-        "      <td>          ['s', 't', 'r', 'i', 'd', 'd', 'e', 'n']</td>\n",
-        "      <td>                             []</td>\n",
-        "      <td>  8</td>\n",
-        "      <td> 10</td>\n",
-        "      <td> True</td>\n",
-        "      <td>  8</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>21 </th>\n",
-        "      <td>    trespassing</td>\n",
-        "      <td> ['t', 'r', 'e', 's', 'p', 'a', 's', 's', 'i', ...</td>\n",
-        "      <td>                          ['o']</td>\n",
-        "      <td> 11</td>\n",
-        "      <td>  9</td>\n",
-        "      <td> True</td>\n",
-        "      <td> 11</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>22 </th>\n",
-        "      <td>       muckrake</td>\n",
-        "      <td>          ['m', 'u', 'c', 'k', 'r', 'a', 'k', 'e']</td>\n",
-        "      <td>                          ['t']</td>\n",
-        "      <td>  8</td>\n",
-        "      <td>  9</td>\n",
-        "      <td> True</td>\n",
-        "      <td>  8</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>23 </th>\n",
-        "      <td>      bungalows</td>\n",
-        "      <td>     ['b', 'u', 'n', 'g', 'a', 'l', 'o', 'w', 's']</td>\n",
-        "      <td>                ['e', 'i', 't']</td>\n",
-        "      <td>  9</td>\n",
-        "      <td>  7</td>\n",
-        "      <td> True</td>\n",
-        "      <td>  9</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>24 </th>\n",
-        "      <td>      rewinding</td>\n",
-        "      <td>     ['r', 'e', 'w', 'i', 'n', 'd', 'i', 'n', 'g']</td>\n",
-        "      <td>                          ['m']</td>\n",
-        "      <td>  9</td>\n",
-        "      <td>  9</td>\n",
-        "      <td> True</td>\n",
-        "      <td>  9</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>25 </th>\n",
-        "      <td>   stepchildren</td>\n",
-        "      <td> ['s', 't', 'e', 'p', 'c', 'h', 'i', 'l', 'd', ...</td>\n",
-        "      <td>                             []</td>\n",
-        "      <td> 12</td>\n",
-        "      <td> 10</td>\n",
-        "      <td> True</td>\n",
-        "      <td> 12</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>26 </th>\n",
-        "      <td>   courageously</td>\n",
-        "      <td> ['c', 'o', 'u', 'r', 'a', 'g', 'e', 'o', 'u', ...</td>\n",
-        "      <td>                          ['i']</td>\n",
-        "      <td> 12</td>\n",
-        "      <td>  9</td>\n",
-        "      <td> True</td>\n",
-        "      <td> 12</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>27 </th>\n",
-        "      <td>   gladiatorial</td>\n",
-        "      <td> ['g', 'l', 'a', 'd', 'i', 'a', 't', 'o', 'r', ...</td>\n",
-        "      <td>                          ['e']</td>\n",
-        "      <td> 12</td>\n",
-        "      <td>  9</td>\n",
-        "      <td> True</td>\n",
-        "      <td> 12</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>28 </th>\n",
-        "      <td>        unseals</td>\n",
-        "      <td>               ['u', 'n', 's', 'e', 'a', 'l', 's']</td>\n",
-        "      <td>                          ['t']</td>\n",
-        "      <td>  7</td>\n",
-        "      <td>  9</td>\n",
-        "      <td> True</td>\n",
-        "      <td>  7</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>29 </th>\n",
-        "      <td>      backaches</td>\n",
-        "      <td>     ['b', 'a', 'c', 'k', 'a', 'c', 'h', 'e', 's']</td>\n",
-        "      <td>                          ['i']</td>\n",
-        "      <td>  9</td>\n",
-        "      <td>  9</td>\n",
-        "      <td> True</td>\n",
-        "      <td>  9</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>...</th>\n",
-        "      <td>...</td>\n",
-        "      <td>...</td>\n",
-        "      <td>...</td>\n",
-        "      <td>...</td>\n",
-        "      <td>...</td>\n",
-        "      <td>...</td>\n",
-        "      <td>...</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>970</th>\n",
-        "      <td>    priestliest</td>\n",
-        "      <td> ['p', 'r', 'i', 'e', 's', 't', 'l', 'i', 'e', ...</td>\n",
-        "      <td>                             []</td>\n",
-        "      <td> 11</td>\n",
-        "      <td> 10</td>\n",
-        "      <td> True</td>\n",
-        "      <td> 11</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>971</th>\n",
-        "      <td>      oversight</td>\n",
-        "      <td>     ['o', 'v', 'e', 'r', 's', 'i', 'g', 'h', 't']</td>\n",
-        "      <td>                             []</td>\n",
-        "      <td>  9</td>\n",
-        "      <td> 10</td>\n",
-        "      <td> True</td>\n",
-        "      <td>  9</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>972</th>\n",
-        "      <td>       nutshell</td>\n",
-        "      <td>          ['n', 'u', 't', 's', 'h', 'e', 'l', 'l']</td>\n",
-        "      <td>                          ['r']</td>\n",
-        "      <td>  8</td>\n",
-        "      <td>  9</td>\n",
-        "      <td> True</td>\n",
-        "      <td>  8</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>973</th>\n",
-        "      <td>         picker</td>\n",
-        "      <td>                    ['p', 'i', 'c', 'k', 'e', 'r']</td>\n",
-        "      <td>           ['d', 's', 't', 'g']</td>\n",
-        "      <td>  6</td>\n",
-        "      <td>  6</td>\n",
-        "      <td> True</td>\n",
-        "      <td>  6</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>974</th>\n",
-        "      <td>           prom</td>\n",
-        "      <td>                              ['p', 'r', 'o', 'm']</td>\n",
-        "      <td>                ['e', 's', 'l']</td>\n",
-        "      <td>  4</td>\n",
-        "      <td>  7</td>\n",
-        "      <td> True</td>\n",
-        "      <td>  4</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>975</th>\n",
-        "      <td>          spoke</td>\n",
-        "      <td>                         ['s', 'p', 'o', 'k', 'e']</td>\n",
-        "      <td>           ['a', 'i', 't', 'r']</td>\n",
-        "      <td>  5</td>\n",
-        "      <td>  6</td>\n",
-        "      <td> True</td>\n",
-        "      <td>  5</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>976</th>\n",
-        "      <td>     videodiscs</td>\n",
-        "      <td> ['v', 'i', 'd', 'e', 'o', 'd', 'i', 's', 'c', ...</td>\n",
-        "      <td>                             []</td>\n",
-        "      <td> 10</td>\n",
-        "      <td> 10</td>\n",
-        "      <td> True</td>\n",
-        "      <td> 10</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>977</th>\n",
-        "      <td>       braggart</td>\n",
-        "      <td>          ['b', 'r', 'a', 'g', 'g', 'a', 'r', 't']</td>\n",
-        "      <td>                     ['e', 'i']</td>\n",
-        "      <td>  8</td>\n",
-        "      <td>  8</td>\n",
-        "      <td> True</td>\n",
-        "      <td>  8</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>978</th>\n",
-        "      <td>       shindigs</td>\n",
-        "      <td>          ['s', 'h', 'i', 'n', 'd', 'i', 'g', 's']</td>\n",
-        "      <td>                          ['e']</td>\n",
-        "      <td>  8</td>\n",
-        "      <td>  9</td>\n",
-        "      <td> True</td>\n",
-        "      <td>  8</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>979</th>\n",
-        "      <td>   indorsements</td>\n",
-        "      <td> ['i', 'n', 'd', 'o', 'r', 's', 'e', 'm', 'e', ...</td>\n",
-        "      <td>                             []</td>\n",
-        "      <td> 12</td>\n",
-        "      <td> 10</td>\n",
-        "      <td> True</td>\n",
-        "      <td> 12</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>980</th>\n",
-        "      <td>         audios</td>\n",
-        "      <td>                    ['a', 'u', 'd', 'i', 'o', 's']</td>\n",
-        "      <td>                          ['e']</td>\n",
-        "      <td>  6</td>\n",
-        "      <td>  9</td>\n",
-        "      <td> True</td>\n",
-        "      <td>  6</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>981</th>\n",
-        "      <td>       disrobes</td>\n",
-        "      <td>          ['d', 'i', 's', 'r', 'o', 'b', 'e', 's']</td>\n",
-        "      <td>                     ['t', 'm']</td>\n",
-        "      <td>  8</td>\n",
-        "      <td>  8</td>\n",
-        "      <td> True</td>\n",
-        "      <td>  8</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>982</th>\n",
-        "      <td>          drake</td>\n",
-        "      <td>                         ['d', 'r', 'a', 'k', 'e']</td>\n",
-        "      <td>      ['s', 'c', 't', 'g', 'p']</td>\n",
-        "      <td>  5</td>\n",
-        "      <td>  5</td>\n",
-        "      <td> True</td>\n",
-        "      <td>  5</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>983</th>\n",
-        "      <td>          penes</td>\n",
-        "      <td>                         ['p', 'e', 'n', 'e', 's']</td>\n",
-        "      <td>                          ['m']</td>\n",
-        "      <td>  5</td>\n",
-        "      <td>  9</td>\n",
-        "      <td> True</td>\n",
-        "      <td>  5</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>984</th>\n",
-        "      <td>     ecological</td>\n",
-        "      <td> ['e', 'c', 'o', 'l', 'o', 'g', 'i', 'c', 'a', ...</td>\n",
-        "      <td>                          ['s']</td>\n",
-        "      <td> 10</td>\n",
-        "      <td>  9</td>\n",
-        "      <td> True</td>\n",
-        "      <td> 10</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>985</th>\n",
-        "      <td>  consideration</td>\n",
-        "      <td> ['c', 'o', 'n', 's', 'i', 'd', 'e', 'r', 'a', ...</td>\n",
-        "      <td>                          ['f']</td>\n",
-        "      <td> 13</td>\n",
-        "      <td>  9</td>\n",
-        "      <td> True</td>\n",
-        "      <td> 13</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>986</th>\n",
-        "      <td>       strolled</td>\n",
-        "      <td>          ['s', 't', 'r', 'o', 'l', 'l', 'e', 'd']</td>\n",
-        "      <td>                ['p', 'i', 'm']</td>\n",
-        "      <td>  8</td>\n",
-        "      <td>  7</td>\n",
-        "      <td> True</td>\n",
-        "      <td>  8</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>987</th>\n",
-        "      <td>     peacemaker</td>\n",
-        "      <td> ['p', 'e', 'a', 'c', 'e', 'm', 'a', 'k', 'e', ...</td>\n",
-        "      <td>                             []</td>\n",
-        "      <td> 10</td>\n",
-        "      <td> 10</td>\n",
-        "      <td> True</td>\n",
-        "      <td> 10</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>988</th>\n",
-        "      <td>      chilliest</td>\n",
-        "      <td>     ['c', 'h', 'i', 'l', 'l', 'i', 'e', 's', 't']</td>\n",
-        "      <td>                          ['f']</td>\n",
-        "      <td>  9</td>\n",
-        "      <td>  9</td>\n",
-        "      <td> True</td>\n",
-        "      <td>  9</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>989</th>\n",
-        "      <td>       neuritis</td>\n",
-        "      <td>          ['n', 'e', 'u', 'r', 'i', 't', 'i', 's']</td>\n",
-        "      <td>                             []</td>\n",
-        "      <td>  8</td>\n",
-        "      <td> 10</td>\n",
-        "      <td> True</td>\n",
-        "      <td>  8</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>990</th>\n",
-        "      <td>       quisling</td>\n",
-        "      <td>          ['q', 'u', 'i', 's', 'l', 'i', 'n', 'g']</td>\n",
-        "      <td>           ['e', 't', 'k', 'p']</td>\n",
-        "      <td>  8</td>\n",
-        "      <td>  6</td>\n",
-        "      <td> True</td>\n",
-        "      <td>  8</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>991</th>\n",
-        "      <td>    transplants</td>\n",
-        "      <td> ['t', 'r', 'a', 'n', 's', 'p', 'l', 'a', 'n', ...</td>\n",
-        "      <td>                ['e', 'i', 'o']</td>\n",
-        "      <td> 11</td>\n",
-        "      <td>  7</td>\n",
-        "      <td> True</td>\n",
-        "      <td> 11</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>992</th>\n",
-        "      <td>         bevies</td>\n",
-        "      <td>                    ['b', 'e', 'v', 'i', 'e', 's']</td>\n",
-        "      <td>                ['d', 'r', 'l']</td>\n",
-        "      <td>  6</td>\n",
-        "      <td>  7</td>\n",
-        "      <td> True</td>\n",
-        "      <td>  6</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>993</th>\n",
-        "      <td>          geeky</td>\n",
-        "      <td>                         ['g', 'e', 'e', 'k', 'y']</td>\n",
-        "      <td>           ['s', 'd', 't', 'f']</td>\n",
-        "      <td>  5</td>\n",
-        "      <td>  6</td>\n",
-        "      <td> True</td>\n",
-        "      <td>  5</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>994</th>\n",
-        "      <td> demonstrations</td>\n",
-        "      <td> ['d', 'e', 'm', 'o', 'n', 's', 't', 'r', 'a', ...</td>\n",
-        "      <td>                             []</td>\n",
-        "      <td> 14</td>\n",
-        "      <td> 10</td>\n",
-        "      <td> True</td>\n",
-        "      <td> 14</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>995</th>\n",
-        "      <td>         dowses</td>\n",
-        "      <td>                    ['d', 'o', 'w', 's', 'e', 's']</td>\n",
-        "      <td>                     ['r', 'u']</td>\n",
-        "      <td>  6</td>\n",
-        "      <td>  8</td>\n",
-        "      <td> True</td>\n",
-        "      <td>  6</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>996</th>\n",
-        "      <td>     pummelling</td>\n",
-        "      <td> ['p', 'u', 'm', 'm', 'e', 'l', 'l', 'i', 'n', ...</td>\n",
-        "      <td>                ['s', 'r', 'o']</td>\n",
-        "      <td> 10</td>\n",
-        "      <td>  7</td>\n",
-        "      <td> True</td>\n",
-        "      <td> 10</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>997</th>\n",
-        "      <td>    earnestness</td>\n",
-        "      <td> ['e', 'a', 'r', 'n', 'e', 's', 't', 'n', 'e', ...</td>\n",
-        "      <td>                             []</td>\n",
-        "      <td> 11</td>\n",
-        "      <td> 10</td>\n",
-        "      <td> True</td>\n",
-        "      <td> 11</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>998</th>\n",
-        "      <td> thermodynamics</td>\n",
-        "      <td> ['t', 'h', 'e', 'r', 'm', 'o', 'd', 'y', 'n', ...</td>\n",
-        "      <td>                             []</td>\n",
-        "      <td> 14</td>\n",
-        "      <td> 10</td>\n",
-        "      <td> True</td>\n",
-        "      <td> 14</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>999</th>\n",
-        "      <td>         flurry</td>\n",
-        "      <td>                    ['f', 'l', 'u', 'r', 'r', 'y']</td>\n",
-        "      <td>      ['e', 's', 'i', 'a', 'o']</td>\n",
-        "      <td>  6</td>\n",
-        "      <td>  5</td>\n",
-        "      <td> True</td>\n",
-        "      <td>  6</td>\n",
-        "    </tr>\n",
-        "  </tbody>\n",
-        "</table>\n",
-        "<p>1000 rows \u00d7 7 columns</p>\n",
-        "</div>"
-       ],
-       "metadata": {},
-       "output_type": "pyout",
-       "prompt_number": 14,
-       "text": [
-        "             target                                         discovered  \\\n",
-        "0         toothsome      ['t', 'o', 'o', 't', 'h', 's', 'o', 'm', 'e']   \n",
-        "1        analgesics  ['a', 'n', 'a', 'l', 'g', 'e', 's', 'i', 'c', ...   \n",
-        "2        intrenched  ['i', 'n', 't', 'r', 'e', 'n', 'c', 'h', 'e', ...   \n",
-        "3            normal                     ['n', 'o', 'r', 'm', 'a', 'l']   \n",
-        "4           debunks                ['d', 'e', 'b', 'u', 'n', 'k', 's']   \n",
-        "5       satanically  ['s', 'a', 't', 'a', 'n', 'i', 'c', 'a', 'l', ...   \n",
-        "6          radicals           ['r', 'a', 'd', 'i', 'c', 'a', 'l', 's']   \n",
-        "7            erotic                     ['e', 'r', 'o', 't', 'i', 'c']   \n",
-        "8            double                     ['d', 'o', 'u', 'b', 'l', 'e']   \n",
-        "9            caviar                     ['c', 'a', 'v', 'i', 'a', 'r']   \n",
-        "10      rigamaroles  ['r', 'i', 'g', 'a', 'm', 'a', 'r', 'o', 'l', ...   \n",
-        "11    disfranchises  ['d', 'i', 's', 'f', 'r', 'a', 'n', 'c', 'h', ...   \n",
-        "12       mushroomed  ['m', 'u', 's', 'h', 'r', 'o', 'o', 'm', 'e', ...   \n",
-        "13            rails                          ['r', 'a', 'i', 'l', 's']   \n",
-        "14           poised                     ['p', 'o', 'i', 's', 'e', 'd']   \n",
-        "15      circulating  ['c', 'i', 'r', 'c', 'u', 'l', 'a', 't', 'i', ...   \n",
-        "16       yesteryear  ['y', 'e', 's', 't', 'e', 'r', 'y', 'e', 'a', ...   \n",
-        "17         chastest           ['c', 'h', 'a', 's', 't', 'e', 's', 't']   \n",
-        "18          lenders                ['l', 'e', 'n', 'd', 'e', 'r', 's']   \n",
-        "19          upshots                ['u', 'p', 's', 'h', 'o', 't', 's']   \n",
-        "20         stridden           ['s', 't', 'r', 'i', 'd', 'd', 'e', 'n']   \n",
-        "21      trespassing  ['t', 'r', 'e', 's', 'p', 'a', 's', 's', 'i', ...   \n",
-        "22         muckrake           ['m', 'u', 'c', 'k', 'r', 'a', 'k', 'e']   \n",
-        "23        bungalows      ['b', 'u', 'n', 'g', 'a', 'l', 'o', 'w', 's']   \n",
-        "24        rewinding      ['r', 'e', 'w', 'i', 'n', 'd', 'i', 'n', 'g']   \n",
-        "25     stepchildren  ['s', 't', 'e', 'p', 'c', 'h', 'i', 'l', 'd', ...   \n",
-        "26     courageously  ['c', 'o', 'u', 'r', 'a', 'g', 'e', 'o', 'u', ...   \n",
-        "27     gladiatorial  ['g', 'l', 'a', 'd', 'i', 'a', 't', 'o', 'r', ...   \n",
-        "28          unseals                ['u', 'n', 's', 'e', 'a', 'l', 's']   \n",
-        "29        backaches      ['b', 'a', 'c', 'k', 'a', 'c', 'h', 'e', 's']   \n",
-        "..              ...                                                ...   \n",
-        "970     priestliest  ['p', 'r', 'i', 'e', 's', 't', 'l', 'i', 'e', ...   \n",
-        "971       oversight      ['o', 'v', 'e', 'r', 's', 'i', 'g', 'h', 't']   \n",
-        "972        nutshell           ['n', 'u', 't', 's', 'h', 'e', 'l', 'l']   \n",
-        "973          picker                     ['p', 'i', 'c', 'k', 'e', 'r']   \n",
-        "974            prom                               ['p', 'r', 'o', 'm']   \n",
-        "975           spoke                          ['s', 'p', 'o', 'k', 'e']   \n",
-        "976      videodiscs  ['v', 'i', 'd', 'e', 'o', 'd', 'i', 's', 'c', ...   \n",
-        "977        braggart           ['b', 'r', 'a', 'g', 'g', 'a', 'r', 't']   \n",
-        "978        shindigs           ['s', 'h', 'i', 'n', 'd', 'i', 'g', 's']   \n",
-        "979    indorsements  ['i', 'n', 'd', 'o', 'r', 's', 'e', 'm', 'e', ...   \n",
-        "980          audios                     ['a', 'u', 'd', 'i', 'o', 's']   \n",
-        "981        disrobes           ['d', 'i', 's', 'r', 'o', 'b', 'e', 's']   \n",
-        "982           drake                          ['d', 'r', 'a', 'k', 'e']   \n",
-        "983           penes                          ['p', 'e', 'n', 'e', 's']   \n",
-        "984      ecological  ['e', 'c', 'o', 'l', 'o', 'g', 'i', 'c', 'a', ...   \n",
-        "985   consideration  ['c', 'o', 'n', 's', 'i', 'd', 'e', 'r', 'a', ...   \n",
-        "986        strolled           ['s', 't', 'r', 'o', 'l', 'l', 'e', 'd']   \n",
-        "987      peacemaker  ['p', 'e', 'a', 'c', 'e', 'm', 'a', 'k', 'e', ...   \n",
-        "988       chilliest      ['c', 'h', 'i', 'l', 'l', 'i', 'e', 's', 't']   \n",
-        "989        neuritis           ['n', 'e', 'u', 'r', 'i', 't', 'i', 's']   \n",
-        "990        quisling           ['q', 'u', 'i', 's', 'l', 'i', 'n', 'g']   \n",
-        "991     transplants  ['t', 'r', 'a', 'n', 's', 'p', 'l', 'a', 'n', ...   \n",
-        "992          bevies                     ['b', 'e', 'v', 'i', 'e', 's']   \n",
-        "993           geeky                          ['g', 'e', 'e', 'k', 'y']   \n",
-        "994  demonstrations  ['d', 'e', 'm', 'o', 'n', 's', 't', 'r', 'a', ...   \n",
-        "995          dowses                     ['d', 'o', 'w', 's', 'e', 's']   \n",
-        "996      pummelling  ['p', 'u', 'm', 'm', 'e', 'l', 'l', 'i', 'n', ...   \n",
-        "997     earnestness  ['e', 'a', 'r', 'n', 'e', 's', 't', 'n', 'e', ...   \n",
-        "998  thermodynamics  ['t', 'h', 'e', 'r', 'm', 'o', 'd', 'y', 'n', ...   \n",
-        "999          flurry                     ['f', 'l', 'u', 'r', 'r', 'y']   \n",
-        "\n",
-        "                      wrong letters  number of hits  lives remaining game won  \\\n",
-        "0                        ['a', 'i']               9                8     True   \n",
-        "1                                []              10               10     True   \n",
-        "2                             ['s']              10                9     True   \n",
-        "3              ['e', 's', 'i', 'f']               6                6     True   \n",
-        "4                             ['t']               7                9     True   \n",
-        "5                             ['e']              11                9     True   \n",
-        "6                        ['e', 't']               8                8     True   \n",
-        "7                                []               6               10     True   \n",
-        "8                   ['a', 'm', 'r']               6                7     True   \n",
-        "9              ['e', 's', 'n', 'l']               6                6     True   \n",
-        "10                               []              11               10     True   \n",
-        "11                               []              13               10     True   \n",
-        "12                            ['t']              10                9     True   \n",
-        "13   ['e', 'o', 't', 'm', 'f', 'w']               5                4     True   \n",
-        "14             ['a', 'l', 't', 'k']               6                6     True   \n",
-        "15                            ['e']              11                9     True   \n",
-        "16                               []              10               10     True   \n",
-        "17                            ['m']               8                9     True   \n",
-        "18                  ['t', 'f', 'm']               7                7     True   \n",
-        "19             ['e', 'i', 'a', 'n']               7                6     True   \n",
-        "20                               []               8               10     True   \n",
-        "21                            ['o']              11                9     True   \n",
-        "22                            ['t']               8                9     True   \n",
-        "23                  ['e', 'i', 't']               9                7     True   \n",
-        "24                            ['m']               9                9     True   \n",
-        "25                               []              12               10     True   \n",
-        "26                            ['i']              12                9     True   \n",
-        "27                            ['e']              12                9     True   \n",
-        "28                            ['t']               7                9     True   \n",
-        "29                            ['i']               9                9     True   \n",
-        "..                              ...             ...              ...      ...   \n",
-        "970                              []              11               10     True   \n",
-        "971                              []               9               10     True   \n",
-        "972                           ['r']               8                9     True   \n",
-        "973            ['d', 's', 't', 'g']               6                6     True   \n",
-        "974                 ['e', 's', 'l']               4                7     True   \n",
-        "975            ['a', 'i', 't', 'r']               5                6     True   \n",
-        "976                              []              10               10     True   \n",
-        "977                      ['e', 'i']               8                8     True   \n",
-        "978                           ['e']               8                9     True   \n",
-        "979                              []              12               10     True   \n",
-        "980                           ['e']               6                9     True   \n",
-        "981                      ['t', 'm']               8                8     True   \n",
-        "982       ['s', 'c', 't', 'g', 'p']               5                5     True   \n",
-        "983                           ['m']               5                9     True   \n",
-        "984                           ['s']              10                9     True   \n",
-        "985                           ['f']              13                9     True   \n",
-        "986                 ['p', 'i', 'm']               8                7     True   \n",
-        "987                              []              10               10     True   \n",
-        "988                           ['f']               9                9     True   \n",
-        "989                              []               8               10     True   \n",
-        "990            ['e', 't', 'k', 'p']               8                6     True   \n",
-        "991                 ['e', 'i', 'o']              11                7     True   \n",
-        "992                 ['d', 'r', 'l']               6                7     True   \n",
-        "993            ['s', 'd', 't', 'f']               5                6     True   \n",
-        "994                              []              14               10     True   \n",
-        "995                      ['r', 'u']               6                8     True   \n",
-        "996                 ['s', 'r', 'o']              10                7     True   \n",
-        "997                              []              11               10     True   \n",
-        "998                              []              14               10     True   \n",
-        "999       ['e', 's', 'i', 'a', 'o']               6                5     True   \n",
-        "\n",
-        "     word length  \n",
-        "0              9  \n",
-        "1             10  \n",
-        "2             10  \n",
-        "3              6  \n",
-        "4              7  \n",
-        "5             11  \n",
-        "6              8  \n",
-        "7              6  \n",
-        "8              6  \n",
-        "9              6  \n",
-        "10            11  \n",
-        "11            13  \n",
-        "12            10  \n",
-        "13             5  \n",
-        "14             6  \n",
-        "15            11  \n",
-        "16            10  \n",
-        "17             8  \n",
-        "18             7  \n",
-        "19             7  \n",
-        "20             8  \n",
-        "21            11  \n",
-        "22             8  \n",
-        "23             9  \n",
-        "24             9  \n",
-        "25            12  \n",
-        "26            12  \n",
-        "27            12  \n",
-        "28             7  \n",
-        "29             9  \n",
-        "..           ...  \n",
-        "970           11  \n",
-        "971            9  \n",
-        "972            8  \n",
-        "973            6  \n",
-        "974            4  \n",
-        "975            5  \n",
-        "976           10  \n",
-        "977            8  \n",
-        "978            8  \n",
-        "979           12  \n",
-        "980            6  \n",
-        "981            8  \n",
-        "982            5  \n",
-        "983            5  \n",
-        "984           10  \n",
-        "985           13  \n",
-        "986            8  \n",
-        "987           10  \n",
-        "988            9  \n",
-        "989            8  \n",
-        "990            8  \n",
-        "991           11  \n",
-        "992            6  \n",
-        "993            5  \n",
-        "994           14  \n",
-        "995            6  \n",
-        "996           10  \n",
-        "997           11  \n",
-        "998           14  \n",
-        "999            6  \n",
-        "\n",
-        "[1000 rows x 7 columns]"
-       ]
-      }
-     ],
-     "prompt_number": 14
-    },
-    {
-     "cell_type": "code",
-     "collapsed": false,
-     "input": [
-      "adaptive_pattern['lives remaining'].hist()"
-     ],
-     "language": "python",
-     "metadata": {},
-     "outputs": [
-      {
-       "metadata": {},
-       "output_type": "pyout",
-       "prompt_number": 15,
-       "text": [
-        "<matplotlib.axes.AxesSubplot at 0x7f1586fb5978>"
-       ]
-      },
-      {
-       "metadata": {},
-       "output_type": "display_data",
-       "png": "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\nwf8D25ze66lP9woAAAAASUVORK5CYII=\n",
-       "text": [
-        "<matplotlib.figure.Figure at 0x7f1586fb55f8>"
-       ]
-      }
-     ],
-     "prompt_number": 15
-    },
-    {
-     "cell_type": "code",
-     "collapsed": false,
-     "input": [
-      "adaptive_pattern.groupby('lives remaining').size()"
-     ],
-     "language": "python",
-     "metadata": {},
-     "outputs": [
-      {
-       "metadata": {},
-       "output_type": "pyout",
-       "prompt_number": 16,
-       "text": [
-        "lives remaining\n",
-        "0                   11\n",
-        "1                    5\n",
-        "2                    5\n",
-        "3                   22\n",
-        "4                   40\n",
-        "5                   42\n",
-        "6                   79\n",
-        "7                  109\n",
-        "8                  161\n",
-        "9                  290\n",
-        "10                 236\n",
-        "dtype: int64"
-       ]
-      }
-     ],
-     "prompt_number": 16
-    },
-    {
-     "cell_type": "code",
-     "collapsed": false,
-     "input": [
-      "adaptive_split = pd.read_csv('adaptive_split.csv')\n",
-      "adaptive_split"
-     ],
-     "language": "python",
-     "metadata": {},
-     "outputs": [
-      {
-       "html": [
-        "<div style=\"max-height:1000px;max-width:1500px;overflow:auto;\">\n",
-        "<table border=\"1\" class=\"dataframe\">\n",
-        "  <thead>\n",
-        "    <tr style=\"text-align: right;\">\n",
-        "      <th></th>\n",
-        "      <th>target</th>\n",
-        "      <th>discovered</th>\n",
-        "      <th>wrong letters</th>\n",
-        "      <th>number of hits</th>\n",
-        "      <th>lives remaining</th>\n",
-        "      <th>game won</th>\n",
-        "    </tr>\n",
-        "  </thead>\n",
-        "  <tbody>\n",
-        "    <tr>\n",
-        "      <th>0  </th>\n",
-        "      <td>             punned</td>\n",
-        "      <td>                    ['p', 'u', 'n', 'n', 'e', 'd']</td>\n",
-        "      <td>                         ['s', 'r', 'l', 'a', 'i']</td>\n",
-        "      <td>  6</td>\n",
-        "      <td>  5</td>\n",
-        "      <td>  True</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>1  </th>\n",
-        "      <td>              anode</td>\n",
-        "      <td>                         ['a', 'n', 'o', 'd', 'e']</td>\n",
-        "      <td>                                   ['s', 'l', 'b']</td>\n",
-        "      <td>  5</td>\n",
-        "      <td>  7</td>\n",
-        "      <td>  True</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>2  </th>\n",
-        "      <td>             passes</td>\n",
-        "      <td>                    ['p', 'a', 's', 's', 'e', 's']</td>\n",
-        "      <td>                                        ['l', 'b']</td>\n",
-        "      <td>  6</td>\n",
-        "      <td>  8</td>\n",
-        "      <td>  True</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>3  </th>\n",
-        "      <td>             maxing</td>\n",
-        "      <td>                    ['m', 'a', 'x', 'i', 'n', 'g']</td>\n",
-        "      <td>     ['s', 'r', 'd', 't', 'w', 'l', 'p', 'k', 'c']</td>\n",
-        "      <td>  6</td>\n",
-        "      <td>  1</td>\n",
-        "      <td>  True</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>4  </th>\n",
-        "      <td>           quadrant</td>\n",
-        "      <td>          ['q', 'u', 'a', 'd', 'r', 'a', 'n', 't']</td>\n",
-        "      <td>                                                []</td>\n",
-        "      <td>  8</td>\n",
-        "      <td> 10</td>\n",
-        "      <td>  True</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>5  </th>\n",
-        "      <td>           polygamy</td>\n",
-        "      <td>          ['p', 'o', 'l', 'y', 'g', 'a', 'm', 'y']</td>\n",
-        "      <td>                              ['r', 'i', 's', 'd']</td>\n",
-        "      <td>  8</td>\n",
-        "      <td>  6</td>\n",
-        "      <td>  True</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>6  </th>\n",
-        "      <td>      technologists</td>\n",
-        "      <td> ['t', 'e', 'c', 'h', 'n', 'o', 'l', 'o', 'g', ...</td>\n",
-        "      <td>                                             ['r']</td>\n",
-        "      <td> 13</td>\n",
-        "      <td>  9</td>\n",
-        "      <td>  True</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>7  </th>\n",
-        "      <td>             tussle</td>\n",
-        "      <td>                    ['t', 'u', 's', 's', 'l', 'e']</td>\n",
-        "      <td>                                             ['a']</td>\n",
-        "      <td>  6</td>\n",
-        "      <td>  9</td>\n",
-        "      <td>  True</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>8  </th>\n",
-        "      <td>         explicitly</td>\n",
-        "      <td> ['e', 'x', 'p', 'l', 'i', 'c', 'i', 't', 'l', ...</td>\n",
-        "      <td>                         ['o', 'a', 'b', 's', 'm']</td>\n",
-        "      <td> 10</td>\n",
-        "      <td>  5</td>\n",
-        "      <td>  True</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>9  </th>\n",
-        "      <td>         moderators</td>\n",
-        "      <td> ['m', 'o', 'd', 'e', 'r', 'a', 't', 'o', 'r', ...</td>\n",
-        "      <td>                                             ['u']</td>\n",
-        "      <td> 10</td>\n",
-        "      <td>  9</td>\n",
-        "      <td>  True</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>10 </th>\n",
-        "      <td>              error</td>\n",
-        "      <td>                         ['e', 'r', 'r', 'o', 'r']</td>\n",
-        "      <td>                         ['s', 't', 'n', 'l', 'y']</td>\n",
-        "      <td>  5</td>\n",
-        "      <td>  5</td>\n",
-        "      <td>  True</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>11 </th>\n",
-        "      <td>            stamped</td>\n",
-        "      <td>               ['s', 't', 'a', 'm', 'p', 'e', 'd']</td>\n",
-        "      <td>                         ['r', 'i', 'l', 'b', 'c']</td>\n",
-        "      <td>  7</td>\n",
-        "      <td>  5</td>\n",
-        "      <td>  True</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>12 </th>\n",
-        "      <td>              dress</td>\n",
-        "      <td>                         ['d', 'r', 'e', 's', 's']</td>\n",
-        "      <td>                                                []</td>\n",
-        "      <td>  5</td>\n",
-        "      <td> 10</td>\n",
-        "      <td>  True</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>13 </th>\n",
-        "      <td>           truckled</td>\n",
-        "      <td>          ['t', 'r', 'u', 'c', 'k', 'l', 'e', 'd']</td>\n",
-        "      <td>                         ['s', 'i', 'a', 'b', 'p']</td>\n",
-        "      <td>  8</td>\n",
-        "      <td>  5</td>\n",
-        "      <td>  True</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>14 </th>\n",
-        "      <td>      accommodation</td>\n",
-        "      <td> ['a', 'c', 'c', 'o', 'm', 'm', 'o', 'd', 'a', ...</td>\n",
-        "      <td>                                        ['s', 'g']</td>\n",
-        "      <td> 13</td>\n",
-        "      <td>  8</td>\n",
-        "      <td>  True</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>15 </th>\n",
-        "      <td>             reload</td>\n",
-        "      <td>                    ['r', 'e', 'l', 'o', 'a', 'd']</td>\n",
-        "      <td>                                        ['s', 'i']</td>\n",
-        "      <td>  6</td>\n",
-        "      <td>  8</td>\n",
-        "      <td>  True</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>16 </th>\n",
-        "      <td>         confounded</td>\n",
-        "      <td> ['c', 'o', 'n', 'f', 'o', 'u', 'n', 'd', 'e', ...</td>\n",
-        "      <td>                                             ['p']</td>\n",
-        "      <td> 10</td>\n",
-        "      <td>  9</td>\n",
-        "      <td>  True</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>17 </th>\n",
-        "      <td>         racketeers</td>\n",
-        "      <td> ['r', 'a', 'c', 'k', 'e', 't', 'e', 'e', 'r', ...</td>\n",
-        "      <td>                                        ['o', 'l']</td>\n",
-        "      <td> 10</td>\n",
-        "      <td>  8</td>\n",
-        "      <td>  True</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>18 </th>\n",
-        "      <td>        ignoramuses</td>\n",
-        "      <td> ['i', 'g', 'n', 'o', 'r', 'a', 'm', 'u', 's', ...</td>\n",
-        "      <td>                                             ['l']</td>\n",
-        "      <td> 11</td>\n",
-        "      <td>  9</td>\n",
-        "      <td>  True</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>19 </th>\n",
-        "      <td>              party</td>\n",
-        "      <td>                         ['p', 'a', 'r', 't', 'y']</td>\n",
-        "      <td>                              ['s', 'e', 'n', 'd']</td>\n",
-        "      <td>  5</td>\n",
-        "      <td>  6</td>\n",
-        "      <td>  True</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>20 </th>\n",
-        "      <td>               rill</td>\n",
-        "      <td>                              ['r', 'i', 'l', 'l']</td>\n",
-        "      <td>                    ['e', 's', 'a', 'o', 'u', 'n']</td>\n",
-        "      <td>  4</td>\n",
-        "      <td>  4</td>\n",
-        "      <td>  True</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>21 </th>\n",
-        "      <td>             player</td>\n",
-        "      <td>                    ['p', 'l', 'a', 'y', 'e', 'r']</td>\n",
-        "      <td>                                        ['s', 'm']</td>\n",
-        "      <td>  6</td>\n",
-        "      <td>  8</td>\n",
-        "      <td>  True</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>22 </th>\n",
-        "      <td>          protester</td>\n",
-        "      <td>     ['p', 'r', 'o', 't', 'e', 's', 't', 'e', 'r']</td>\n",
-        "      <td>                                   ['i', 'd', 'l']</td>\n",
-        "      <td>  9</td>\n",
-        "      <td>  7</td>\n",
-        "      <td>  True</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>23 </th>\n",
-        "      <td>          asphalted</td>\n",
-        "      <td>     ['a', 's', 'p', 'h', 'a', 'l', 't', 'e', 'd']</td>\n",
-        "      <td>                                        ['r', 'i']</td>\n",
-        "      <td>  9</td>\n",
-        "      <td>  8</td>\n",
-        "      <td>  True</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>24 </th>\n",
-        "      <td>           uniforms</td>\n",
-        "      <td>          ['u', 'n', 'i', 'f', 'o', 'r', 'm', 's']</td>\n",
-        "      <td>                                   ['a', 't', 'p']</td>\n",
-        "      <td>  8</td>\n",
-        "      <td>  7</td>\n",
-        "      <td>  True</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>25 </th>\n",
-        "      <td>         coniferous</td>\n",
-        "      <td> ['c', 'o', 'n', 'i', 'f', 'e', 'r', 'o', 'u', ...</td>\n",
-        "      <td>                                                []</td>\n",
-        "      <td> 10</td>\n",
-        "      <td> 10</td>\n",
-        "      <td>  True</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>26 </th>\n",
-        "      <td>         dishearten</td>\n",
-        "      <td> ['d', 'i', 's', 'h', 'e', 'a', 'r', 't', 'e', ...</td>\n",
-        "      <td>                                   ['o', 'l', 'g']</td>\n",
-        "      <td> 10</td>\n",
-        "      <td>  7</td>\n",
-        "      <td>  True</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>27 </th>\n",
-        "      <td>              scull</td>\n",
-        "      <td>                         ['s', 'c', 'u', 'l', 'l']</td>\n",
-        "      <td>                         ['e', 'a', 'o', 'i', 'n']</td>\n",
-        "      <td>  5</td>\n",
-        "      <td>  5</td>\n",
-        "      <td>  True</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>28 </th>\n",
-        "      <td>             virgin</td>\n",
-        "      <td>                    ['v', 'i', 'r', 'g', 'i', 'n']</td>\n",
-        "      <td>                                   ['s', 'a', 'd']</td>\n",
-        "      <td>  6</td>\n",
-        "      <td>  7</td>\n",
-        "      <td>  True</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>29 </th>\n",
-        "      <td>       licentiously</td>\n",
-        "      <td> ['l', 'i', 'c', 'e', 'n', 't', 'i', 'o', 'u', ...</td>\n",
-        "      <td>                                                []</td>\n",
-        "      <td> 12</td>\n",
-        "      <td> 10</td>\n",
-        "      <td>  True</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>...</th>\n",
-        "      <td>...</td>\n",
-        "      <td>...</td>\n",
-        "      <td>...</td>\n",
-        "      <td>...</td>\n",
-        "      <td>...</td>\n",
-        "      <td>...</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>970</th>\n",
-        "      <td>         grindstone</td>\n",
-        "      <td> ['g', 'r', 'i', 'n', 'd', 's', 't', 'o', 'n', ...</td>\n",
-        "      <td>                                   ['a', 'u', 'p']</td>\n",
-        "      <td> 10</td>\n",
-        "      <td>  7</td>\n",
-        "      <td>  True</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>971</th>\n",
-        "      <td>       bankruptcies</td>\n",
-        "      <td> ['b', 'a', 'n', 'k', 'r', 'u', 'p', 't', 'c', ...</td>\n",
-        "      <td>                                                []</td>\n",
-        "      <td> 12</td>\n",
-        "      <td> 10</td>\n",
-        "      <td>  True</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>972</th>\n",
-        "      <td>             smalls</td>\n",
-        "      <td>                    ['s', 'm', 'a', 'l', 'l', 's']</td>\n",
-        "      <td>                              ['e', 't', 'k', 'w']</td>\n",
-        "      <td>  6</td>\n",
-        "      <td>  6</td>\n",
-        "      <td>  True</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>973</th>\n",
-        "      <td>            limping</td>\n",
-        "      <td>               ['l', 'i', 'm', 'p', 'i', 'n', 'g']</td>\n",
-        "      <td>               ['s', 'r', 'e', 'a', 'o', 'u', 'k']</td>\n",
-        "      <td>  7</td>\n",
-        "      <td>  3</td>\n",
-        "      <td>  True</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>974</th>\n",
-        "      <td>        interfacing</td>\n",
-        "      <td> ['i', 'n', 't', 'e', 'r', 'f', 'a', 'c', 'i', ...</td>\n",
-        "      <td>                              ['o', 'l', 'd', 's']</td>\n",
-        "      <td> 11</td>\n",
-        "      <td>  6</td>\n",
-        "      <td>  True</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>975</th>\n",
-        "      <td>               mint</td>\n",
-        "      <td>                              ['_', '_', 'n', 't']</td>\n",
-        "      <td> ['e', 's', 'a', 'o', 'u', 'd', 'k', 'l', 'p', ...</td>\n",
-        "      <td>  2</td>\n",
-        "      <td>  0</td>\n",
-        "      <td> False</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>976</th>\n",
-        "      <td>       romanticises</td>\n",
-        "      <td> ['r', 'o', 'm', 'a', 'n', 't', 'i', 'c', 'i', ...</td>\n",
-        "      <td>                                             ['d']</td>\n",
-        "      <td> 12</td>\n",
-        "      <td>  9</td>\n",
-        "      <td>  True</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>977</th>\n",
-        "      <td>           cleavage</td>\n",
-        "      <td>          ['c', 'l', 'e', 'a', 'v', 'a', 'g', 'e']</td>\n",
-        "      <td>                                        ['r', 's']</td>\n",
-        "      <td>  8</td>\n",
-        "      <td>  8</td>\n",
-        "      <td>  True</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>978</th>\n",
-        "      <td>            revival</td>\n",
-        "      <td>               ['r', 'e', 'v', 'i', 'v', 'a', 'l']</td>\n",
-        "      <td>                              ['s', 'n', 'c', 'm']</td>\n",
-        "      <td>  7</td>\n",
-        "      <td>  6</td>\n",
-        "      <td>  True</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>979</th>\n",
-        "      <td>            praying</td>\n",
-        "      <td>               ['p', 'r', 'a', 'y', 'i', 'n', 'g']</td>\n",
-        "      <td>                              ['s', 'd', 'c', 'b']</td>\n",
-        "      <td>  7</td>\n",
-        "      <td>  6</td>\n",
-        "      <td>  True</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>980</th>\n",
-        "      <td>             troupe</td>\n",
-        "      <td>                    ['t', 'r', 'o', 'u', 'p', 'e']</td>\n",
-        "      <td>                              ['s', 'g', 'a', 'l']</td>\n",
-        "      <td>  6</td>\n",
-        "      <td>  6</td>\n",
-        "      <td>  True</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>981</th>\n",
-        "      <td>             public</td>\n",
-        "      <td>                    ['p', 'u', 'b', 'l', 'i', 'c']</td>\n",
-        "      <td>                    ['s', 'r', 'd', 'n', 'a', 'e']</td>\n",
-        "      <td>  6</td>\n",
-        "      <td>  4</td>\n",
-        "      <td>  True</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>982</th>\n",
-        "      <td>         generating</td>\n",
-        "      <td> ['g', 'e', 'n', 'e', 'r', 'a', 't', 'i', 'n', ...</td>\n",
-        "      <td>                                        ['o', 'l']</td>\n",
-        "      <td> 10</td>\n",
-        "      <td>  8</td>\n",
-        "      <td>  True</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>983</th>\n",
-        "      <td>            sallies</td>\n",
-        "      <td>               ['s', 'a', 'l', 'l', 'i', 'e', 's']</td>\n",
-        "      <td>                                             ['r']</td>\n",
-        "      <td>  7</td>\n",
-        "      <td>  9</td>\n",
-        "      <td>  True</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>984</th>\n",
-        "      <td>              yacht</td>\n",
-        "      <td>                         ['y', 'a', 'c', 'h', 't']</td>\n",
-        "      <td>                                        ['s', 'e']</td>\n",
-        "      <td>  5</td>\n",
-        "      <td>  8</td>\n",
-        "      <td>  True</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>985</th>\n",
-        "      <td>            armpits</td>\n",
-        "      <td>               ['a', 'r', 'm', 'p', 'i', 't', 's']</td>\n",
-        "      <td>                                             ['o']</td>\n",
-        "      <td>  7</td>\n",
-        "      <td>  9</td>\n",
-        "      <td>  True</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>986</th>\n",
-        "      <td>            oblongs</td>\n",
-        "      <td>               ['o', 'b', 'l', 'o', 'n', 'g', 's']</td>\n",
-        "      <td>                                   ['r', 'i', 'a']</td>\n",
-        "      <td>  7</td>\n",
-        "      <td>  7</td>\n",
-        "      <td>  True</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>987</th>\n",
-        "      <td>          developed</td>\n",
-        "      <td>     ['d', 'e', 'v', 'e', 'l', 'o', 'p', 'e', 'd']</td>\n",
-        "      <td>                         ['t', 'a', 'r', 'n', 'i']</td>\n",
-        "      <td>  9</td>\n",
-        "      <td>  5</td>\n",
-        "      <td>  True</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>988</th>\n",
-        "      <td>           demolish</td>\n",
-        "      <td>          ['d', 'e', 'm', 'o', 'l', 'i', 's', 'h']</td>\n",
-        "      <td>                                   ['r', 'a', 't']</td>\n",
-        "      <td>  8</td>\n",
-        "      <td>  7</td>\n",
-        "      <td>  True</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>989</th>\n",
-        "      <td>            pincers</td>\n",
-        "      <td>               ['p', 'i', 'n', 'c', 'e', 'r', 's']</td>\n",
-        "      <td>                         ['a', 'o', 't', 'd', 'l']</td>\n",
-        "      <td>  7</td>\n",
-        "      <td>  5</td>\n",
-        "      <td>  True</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>990</th>\n",
-        "      <td> telecommunications</td>\n",
-        "      <td> ['t', 'e', 'l', 'e', 'c', 'o', 'm', 'm', 'u', ...</td>\n",
-        "      <td>                                        ['p', 'r']</td>\n",
-        "      <td> 18</td>\n",
-        "      <td>  8</td>\n",
-        "      <td>  True</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>991</th>\n",
-        "      <td>             dabble</td>\n",
-        "      <td>                    ['d', 'a', 'b', 'b', 'l', 'e']</td>\n",
-        "      <td>                         ['s', 'r', 'i', 'n', 'y']</td>\n",
-        "      <td>  6</td>\n",
-        "      <td>  5</td>\n",
-        "      <td>  True</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>992</th>\n",
-        "      <td>          morticing</td>\n",
-        "      <td>     ['m', 'o', 'r', 't', 'i', 'c', 'i', 'n', 'g']</td>\n",
-        "      <td>                              ['a', 's', 'f', 'd']</td>\n",
-        "      <td>  9</td>\n",
-        "      <td>  6</td>\n",
-        "      <td>  True</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>993</th>\n",
-        "      <td>              weals</td>\n",
-        "      <td>                         ['w', 'e', 'a', 'l', 's']</td>\n",
-        "      <td>                         ['r', 'd', 'p', 'm', 'h']</td>\n",
-        "      <td>  5</td>\n",
-        "      <td>  5</td>\n",
-        "      <td>  True</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>994</th>\n",
-        "      <td>              dryer</td>\n",
-        "      <td>                         ['d', 'r', 'y', 'e', 'r']</td>\n",
-        "      <td>                                        ['s', 'i']</td>\n",
-        "      <td>  5</td>\n",
-        "      <td>  8</td>\n",
-        "      <td>  True</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>995</th>\n",
-        "      <td>     inconclusively</td>\n",
-        "      <td> ['i', 'n', 'c', 'o', 'n', 'c', 'l', 'u', 's', ...</td>\n",
-        "      <td>                                             ['d']</td>\n",
-        "      <td> 14</td>\n",
-        "      <td>  9</td>\n",
-        "      <td>  True</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>996</th>\n",
-        "      <td>          bubbliest</td>\n",
-        "      <td>     ['_', '_', '_', '_', '_', '_', '_', '_', 't']</td>\n",
-        "      <td> ['n', 'r', 'o', 'c', 'a', 'm', 'h', 'p', 'f', ...</td>\n",
-        "      <td>  1</td>\n",
-        "      <td>  0</td>\n",
-        "      <td> False</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>997</th>\n",
-        "      <td>             graded</td>\n",
-        "      <td>                    ['g', 'r', 'a', 'd', 'e', 'd']</td>\n",
-        "      <td>                    ['s', 'c', 'v', 'y', 't', 'z']</td>\n",
-        "      <td>  6</td>\n",
-        "      <td>  4</td>\n",
-        "      <td>  True</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>998</th>\n",
-        "      <td>           carriage</td>\n",
-        "      <td>          ['c', 'a', 'r', 'r', 'i', 'a', 'g', 'e']</td>\n",
-        "      <td>                                   ['s', 'l', 'd']</td>\n",
-        "      <td>  8</td>\n",
-        "      <td>  7</td>\n",
-        "      <td>  True</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>999</th>\n",
-        "      <td>         datelining</td>\n",
-        "      <td> ['d', 'a', 't', 'e', 'l', 'i', 'n', 'i', 'n', ...</td>\n",
-        "      <td>                                        ['o', 's']</td>\n",
-        "      <td> 10</td>\n",
-        "      <td>  8</td>\n",
-        "      <td>  True</td>\n",
-        "    </tr>\n",
-        "  </tbody>\n",
-        "</table>\n",
-        "<p>1000 rows \u00d7 6 columns</p>\n",
-        "</div>"
-       ],
-       "metadata": {},
-       "output_type": "pyout",
-       "prompt_number": 19,
-       "text": [
-        "                 target                                         discovered  \\\n",
-        "0                punned                     ['p', 'u', 'n', 'n', 'e', 'd']   \n",
-        "1                 anode                          ['a', 'n', 'o', 'd', 'e']   \n",
-        "2                passes                     ['p', 'a', 's', 's', 'e', 's']   \n",
-        "3                maxing                     ['m', 'a', 'x', 'i', 'n', 'g']   \n",
-        "4              quadrant           ['q', 'u', 'a', 'd', 'r', 'a', 'n', 't']   \n",
-        "5              polygamy           ['p', 'o', 'l', 'y', 'g', 'a', 'm', 'y']   \n",
-        "6         technologists  ['t', 'e', 'c', 'h', 'n', 'o', 'l', 'o', 'g', ...   \n",
-        "7                tussle                     ['t', 'u', 's', 's', 'l', 'e']   \n",
-        "8            explicitly  ['e', 'x', 'p', 'l', 'i', 'c', 'i', 't', 'l', ...   \n",
-        "9            moderators  ['m', 'o', 'd', 'e', 'r', 'a', 't', 'o', 'r', ...   \n",
-        "10                error                          ['e', 'r', 'r', 'o', 'r']   \n",
-        "11              stamped                ['s', 't', 'a', 'm', 'p', 'e', 'd']   \n",
-        "12                dress                          ['d', 'r', 'e', 's', 's']   \n",
-        "13             truckled           ['t', 'r', 'u', 'c', 'k', 'l', 'e', 'd']   \n",
-        "14        accommodation  ['a', 'c', 'c', 'o', 'm', 'm', 'o', 'd', 'a', ...   \n",
-        "15               reload                     ['r', 'e', 'l', 'o', 'a', 'd']   \n",
-        "16           confounded  ['c', 'o', 'n', 'f', 'o', 'u', 'n', 'd', 'e', ...   \n",
-        "17           racketeers  ['r', 'a', 'c', 'k', 'e', 't', 'e', 'e', 'r', ...   \n",
-        "18          ignoramuses  ['i', 'g', 'n', 'o', 'r', 'a', 'm', 'u', 's', ...   \n",
-        "19                party                          ['p', 'a', 'r', 't', 'y']   \n",
-        "20                 rill                               ['r', 'i', 'l', 'l']   \n",
-        "21               player                     ['p', 'l', 'a', 'y', 'e', 'r']   \n",
-        "22            protester      ['p', 'r', 'o', 't', 'e', 's', 't', 'e', 'r']   \n",
-        "23            asphalted      ['a', 's', 'p', 'h', 'a', 'l', 't', 'e', 'd']   \n",
-        "24             uniforms           ['u', 'n', 'i', 'f', 'o', 'r', 'm', 's']   \n",
-        "25           coniferous  ['c', 'o', 'n', 'i', 'f', 'e', 'r', 'o', 'u', ...   \n",
-        "26           dishearten  ['d', 'i', 's', 'h', 'e', 'a', 'r', 't', 'e', ...   \n",
-        "27                scull                          ['s', 'c', 'u', 'l', 'l']   \n",
-        "28               virgin                     ['v', 'i', 'r', 'g', 'i', 'n']   \n",
-        "29         licentiously  ['l', 'i', 'c', 'e', 'n', 't', 'i', 'o', 'u', ...   \n",
-        "..                  ...                                                ...   \n",
-        "970          grindstone  ['g', 'r', 'i', 'n', 'd', 's', 't', 'o', 'n', ...   \n",
-        "971        bankruptcies  ['b', 'a', 'n', 'k', 'r', 'u', 'p', 't', 'c', ...   \n",
-        "972              smalls                     ['s', 'm', 'a', 'l', 'l', 's']   \n",
-        "973             limping                ['l', 'i', 'm', 'p', 'i', 'n', 'g']   \n",
-        "974         interfacing  ['i', 'n', 't', 'e', 'r', 'f', 'a', 'c', 'i', ...   \n",
-        "975                mint                               ['_', '_', 'n', 't']   \n",
-        "976        romanticises  ['r', 'o', 'm', 'a', 'n', 't', 'i', 'c', 'i', ...   \n",
-        "977            cleavage           ['c', 'l', 'e', 'a', 'v', 'a', 'g', 'e']   \n",
-        "978             revival                ['r', 'e', 'v', 'i', 'v', 'a', 'l']   \n",
-        "979             praying                ['p', 'r', 'a', 'y', 'i', 'n', 'g']   \n",
-        "980              troupe                     ['t', 'r', 'o', 'u', 'p', 'e']   \n",
-        "981              public                     ['p', 'u', 'b', 'l', 'i', 'c']   \n",
-        "982          generating  ['g', 'e', 'n', 'e', 'r', 'a', 't', 'i', 'n', ...   \n",
-        "983             sallies                ['s', 'a', 'l', 'l', 'i', 'e', 's']   \n",
-        "984               yacht                          ['y', 'a', 'c', 'h', 't']   \n",
-        "985             armpits                ['a', 'r', 'm', 'p', 'i', 't', 's']   \n",
-        "986             oblongs                ['o', 'b', 'l', 'o', 'n', 'g', 's']   \n",
-        "987           developed      ['d', 'e', 'v', 'e', 'l', 'o', 'p', 'e', 'd']   \n",
-        "988            demolish           ['d', 'e', 'm', 'o', 'l', 'i', 's', 'h']   \n",
-        "989             pincers                ['p', 'i', 'n', 'c', 'e', 'r', 's']   \n",
-        "990  telecommunications  ['t', 'e', 'l', 'e', 'c', 'o', 'm', 'm', 'u', ...   \n",
-        "991              dabble                     ['d', 'a', 'b', 'b', 'l', 'e']   \n",
-        "992           morticing      ['m', 'o', 'r', 't', 'i', 'c', 'i', 'n', 'g']   \n",
-        "993               weals                          ['w', 'e', 'a', 'l', 's']   \n",
-        "994               dryer                          ['d', 'r', 'y', 'e', 'r']   \n",
-        "995      inconclusively  ['i', 'n', 'c', 'o', 'n', 'c', 'l', 'u', 's', ...   \n",
-        "996           bubbliest      ['_', '_', '_', '_', '_', '_', '_', '_', 't']   \n",
-        "997              graded                     ['g', 'r', 'a', 'd', 'e', 'd']   \n",
-        "998            carriage           ['c', 'a', 'r', 'r', 'i', 'a', 'g', 'e']   \n",
-        "999          datelining  ['d', 'a', 't', 'e', 'l', 'i', 'n', 'i', 'n', ...   \n",
-        "\n",
-        "                                         wrong letters  number of hits  \\\n",
-        "0                            ['s', 'r', 'l', 'a', 'i']               6   \n",
-        "1                                      ['s', 'l', 'b']               5   \n",
-        "2                                           ['l', 'b']               6   \n",
-        "3        ['s', 'r', 'd', 't', 'w', 'l', 'p', 'k', 'c']               6   \n",
-        "4                                                   []               8   \n",
-        "5                                 ['r', 'i', 's', 'd']               8   \n",
-        "6                                                ['r']              13   \n",
-        "7                                                ['a']               6   \n",
-        "8                            ['o', 'a', 'b', 's', 'm']              10   \n",
-        "9                                                ['u']              10   \n",
-        "10                           ['s', 't', 'n', 'l', 'y']               5   \n",
-        "11                           ['r', 'i', 'l', 'b', 'c']               7   \n",
-        "12                                                  []               5   \n",
-        "13                           ['s', 'i', 'a', 'b', 'p']               8   \n",
-        "14                                          ['s', 'g']              13   \n",
-        "15                                          ['s', 'i']               6   \n",
-        "16                                               ['p']              10   \n",
-        "17                                          ['o', 'l']              10   \n",
-        "18                                               ['l']              11   \n",
-        "19                                ['s', 'e', 'n', 'd']               5   \n",
-        "20                      ['e', 's', 'a', 'o', 'u', 'n']               4   \n",
-        "21                                          ['s', 'm']               6   \n",
-        "22                                     ['i', 'd', 'l']               9   \n",
-        "23                                          ['r', 'i']               9   \n",
-        "24                                     ['a', 't', 'p']               8   \n",
-        "25                                                  []              10   \n",
-        "26                                     ['o', 'l', 'g']              10   \n",
-        "27                           ['e', 'a', 'o', 'i', 'n']               5   \n",
-        "28                                     ['s', 'a', 'd']               6   \n",
-        "29                                                  []              12   \n",
-        "..                                                 ...             ...   \n",
-        "970                                    ['a', 'u', 'p']              10   \n",
-        "971                                                 []              12   \n",
-        "972                               ['e', 't', 'k', 'w']               6   \n",
-        "973                ['s', 'r', 'e', 'a', 'o', 'u', 'k']               7   \n",
-        "974                               ['o', 'l', 'd', 's']              11   \n",
-        "975  ['e', 's', 'a', 'o', 'u', 'd', 'k', 'l', 'p', ...               2   \n",
-        "976                                              ['d']              12   \n",
-        "977                                         ['r', 's']               8   \n",
-        "978                               ['s', 'n', 'c', 'm']               7   \n",
-        "979                               ['s', 'd', 'c', 'b']               7   \n",
-        "980                               ['s', 'g', 'a', 'l']               6   \n",
-        "981                     ['s', 'r', 'd', 'n', 'a', 'e']               6   \n",
-        "982                                         ['o', 'l']              10   \n",
-        "983                                              ['r']               7   \n",
-        "984                                         ['s', 'e']               5   \n",
-        "985                                              ['o']               7   \n",
-        "986                                    ['r', 'i', 'a']               7   \n",
-        "987                          ['t', 'a', 'r', 'n', 'i']               9   \n",
-        "988                                    ['r', 'a', 't']               8   \n",
-        "989                          ['a', 'o', 't', 'd', 'l']               7   \n",
-        "990                                         ['p', 'r']              18   \n",
-        "991                          ['s', 'r', 'i', 'n', 'y']               6   \n",
-        "992                               ['a', 's', 'f', 'd']               9   \n",
-        "993                          ['r', 'd', 'p', 'm', 'h']               5   \n",
-        "994                                         ['s', 'i']               5   \n",
-        "995                                              ['d']              14   \n",
-        "996  ['n', 'r', 'o', 'c', 'a', 'm', 'h', 'p', 'f', ...               1   \n",
-        "997                     ['s', 'c', 'v', 'y', 't', 'z']               6   \n",
-        "998                                    ['s', 'l', 'd']               8   \n",
-        "999                                         ['o', 's']              10   \n",
-        "\n",
-        "     lives remaining game won  \n",
-        "0                  5     True  \n",
-        "1                  7     True  \n",
-        "2                  8     True  \n",
-        "3                  1     True  \n",
-        "4                 10     True  \n",
-        "5                  6     True  \n",
-        "6                  9     True  \n",
-        "7                  9     True  \n",
-        "8                  5     True  \n",
-        "9                  9     True  \n",
-        "10                 5     True  \n",
-        "11                 5     True  \n",
-        "12                10     True  \n",
-        "13                 5     True  \n",
-        "14                 8     True  \n",
-        "15                 8     True  \n",
-        "16                 9     True  \n",
-        "17                 8     True  \n",
-        "18                 9     True  \n",
-        "19                 6     True  \n",
-        "20                 4     True  \n",
-        "21                 8     True  \n",
-        "22                 7     True  \n",
-        "23                 8     True  \n",
-        "24                 7     True  \n",
-        "25                10     True  \n",
-        "26                 7     True  \n",
-        "27                 5     True  \n",
-        "28                 7     True  \n",
-        "29                10     True  \n",
-        "..               ...      ...  \n",
-        "970                7     True  \n",
-        "971               10     True  \n",
-        "972                6     True  \n",
-        "973                3     True  \n",
-        "974                6     True  \n",
-        "975                0    False  \n",
-        "976                9     True  \n",
-        "977                8     True  \n",
-        "978                6     True  \n",
-        "979                6     True  \n",
-        "980                6     True  \n",
-        "981                4     True  \n",
-        "982                8     True  \n",
-        "983                9     True  \n",
-        "984                8     True  \n",
-        "985                9     True  \n",
-        "986                7     True  \n",
-        "987                5     True  \n",
-        "988                7     True  \n",
-        "989                5     True  \n",
-        "990                8     True  \n",
-        "991                5     True  \n",
-        "992                6     True  \n",
-        "993                5     True  \n",
-        "994                8     True  \n",
-        "995                9     True  \n",
-        "996                0    False  \n",
-        "997                4     True  \n",
-        "998                7     True  \n",
-        "999                8     True  \n",
-        "\n",
-        "[1000 rows x 6 columns]"
-       ]
-      }
-     ],
-     "prompt_number": 19
-    },
-    {
-     "cell_type": "code",
-     "collapsed": false,
-     "input": [
-      "adaptive_split['word length'] = adaptive_split.apply(lambda r: len(r['target']), axis=1)\n",
-      "adaptive_split"
-     ],
-     "language": "python",
-     "metadata": {},
-     "outputs": [
-      {
-       "html": [
-        "<div style=\"max-height:1000px;max-width:1500px;overflow:auto;\">\n",
-        "<table border=\"1\" class=\"dataframe\">\n",
-        "  <thead>\n",
-        "    <tr style=\"text-align: right;\">\n",
-        "      <th></th>\n",
-        "      <th>target</th>\n",
-        "      <th>discovered</th>\n",
-        "      <th>wrong letters</th>\n",
-        "      <th>number of hits</th>\n",
-        "      <th>lives remaining</th>\n",
-        "      <th>game won</th>\n",
-        "      <th>word length</th>\n",
-        "    </tr>\n",
-        "  </thead>\n",
-        "  <tbody>\n",
-        "    <tr>\n",
-        "      <th>0  </th>\n",
-        "      <td>             punned</td>\n",
-        "      <td>                    ['p', 'u', 'n', 'n', 'e', 'd']</td>\n",
-        "      <td>                         ['s', 'r', 'l', 'a', 'i']</td>\n",
-        "      <td>  6</td>\n",
-        "      <td>  5</td>\n",
-        "      <td>  True</td>\n",
-        "      <td>  6</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>1  </th>\n",
-        "      <td>              anode</td>\n",
-        "      <td>                         ['a', 'n', 'o', 'd', 'e']</td>\n",
-        "      <td>                                   ['s', 'l', 'b']</td>\n",
-        "      <td>  5</td>\n",
-        "      <td>  7</td>\n",
-        "      <td>  True</td>\n",
-        "      <td>  5</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>2  </th>\n",
-        "      <td>             passes</td>\n",
-        "      <td>                    ['p', 'a', 's', 's', 'e', 's']</td>\n",
-        "      <td>                                        ['l', 'b']</td>\n",
-        "      <td>  6</td>\n",
-        "      <td>  8</td>\n",
-        "      <td>  True</td>\n",
-        "      <td>  6</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>3  </th>\n",
-        "      <td>             maxing</td>\n",
-        "      <td>                    ['m', 'a', 'x', 'i', 'n', 'g']</td>\n",
-        "      <td>     ['s', 'r', 'd', 't', 'w', 'l', 'p', 'k', 'c']</td>\n",
-        "      <td>  6</td>\n",
-        "      <td>  1</td>\n",
-        "      <td>  True</td>\n",
-        "      <td>  6</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>4  </th>\n",
-        "      <td>           quadrant</td>\n",
-        "      <td>          ['q', 'u', 'a', 'd', 'r', 'a', 'n', 't']</td>\n",
-        "      <td>                                                []</td>\n",
-        "      <td>  8</td>\n",
-        "      <td> 10</td>\n",
-        "      <td>  True</td>\n",
-        "      <td>  8</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>5  </th>\n",
-        "      <td>           polygamy</td>\n",
-        "      <td>          ['p', 'o', 'l', 'y', 'g', 'a', 'm', 'y']</td>\n",
-        "      <td>                              ['r', 'i', 's', 'd']</td>\n",
-        "      <td>  8</td>\n",
-        "      <td>  6</td>\n",
-        "      <td>  True</td>\n",
-        "      <td>  8</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>6  </th>\n",
-        "      <td>      technologists</td>\n",
-        "      <td> ['t', 'e', 'c', 'h', 'n', 'o', 'l', 'o', 'g', ...</td>\n",
-        "      <td>                                             ['r']</td>\n",
-        "      <td> 13</td>\n",
-        "      <td>  9</td>\n",
-        "      <td>  True</td>\n",
-        "      <td> 13</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>7  </th>\n",
-        "      <td>             tussle</td>\n",
-        "      <td>                    ['t', 'u', 's', 's', 'l', 'e']</td>\n",
-        "      <td>                                             ['a']</td>\n",
-        "      <td>  6</td>\n",
-        "      <td>  9</td>\n",
-        "      <td>  True</td>\n",
-        "      <td>  6</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>8  </th>\n",
-        "      <td>         explicitly</td>\n",
-        "      <td> ['e', 'x', 'p', 'l', 'i', 'c', 'i', 't', 'l', ...</td>\n",
-        "      <td>                         ['o', 'a', 'b', 's', 'm']</td>\n",
-        "      <td> 10</td>\n",
-        "      <td>  5</td>\n",
-        "      <td>  True</td>\n",
-        "      <td> 10</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>9  </th>\n",
-        "      <td>         moderators</td>\n",
-        "      <td> ['m', 'o', 'd', 'e', 'r', 'a', 't', 'o', 'r', ...</td>\n",
-        "      <td>                                             ['u']</td>\n",
-        "      <td> 10</td>\n",
-        "      <td>  9</td>\n",
-        "      <td>  True</td>\n",
-        "      <td> 10</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>10 </th>\n",
-        "      <td>              error</td>\n",
-        "      <td>                         ['e', 'r', 'r', 'o', 'r']</td>\n",
-        "      <td>                         ['s', 't', 'n', 'l', 'y']</td>\n",
-        "      <td>  5</td>\n",
-        "      <td>  5</td>\n",
-        "      <td>  True</td>\n",
-        "      <td>  5</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>11 </th>\n",
-        "      <td>            stamped</td>\n",
-        "      <td>               ['s', 't', 'a', 'm', 'p', 'e', 'd']</td>\n",
-        "      <td>                         ['r', 'i', 'l', 'b', 'c']</td>\n",
-        "      <td>  7</td>\n",
-        "      <td>  5</td>\n",
-        "      <td>  True</td>\n",
-        "      <td>  7</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>12 </th>\n",
-        "      <td>              dress</td>\n",
-        "      <td>                         ['d', 'r', 'e', 's', 's']</td>\n",
-        "      <td>                                                []</td>\n",
-        "      <td>  5</td>\n",
-        "      <td> 10</td>\n",
-        "      <td>  True</td>\n",
-        "      <td>  5</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>13 </th>\n",
-        "      <td>           truckled</td>\n",
-        "      <td>          ['t', 'r', 'u', 'c', 'k', 'l', 'e', 'd']</td>\n",
-        "      <td>                         ['s', 'i', 'a', 'b', 'p']</td>\n",
-        "      <td>  8</td>\n",
-        "      <td>  5</td>\n",
-        "      <td>  True</td>\n",
-        "      <td>  8</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>14 </th>\n",
-        "      <td>      accommodation</td>\n",
-        "      <td> ['a', 'c', 'c', 'o', 'm', 'm', 'o', 'd', 'a', ...</td>\n",
-        "      <td>                                        ['s', 'g']</td>\n",
-        "      <td> 13</td>\n",
-        "      <td>  8</td>\n",
-        "      <td>  True</td>\n",
-        "      <td> 13</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>15 </th>\n",
-        "      <td>             reload</td>\n",
-        "      <td>                    ['r', 'e', 'l', 'o', 'a', 'd']</td>\n",
-        "      <td>                                        ['s', 'i']</td>\n",
-        "      <td>  6</td>\n",
-        "      <td>  8</td>\n",
-        "      <td>  True</td>\n",
-        "      <td>  6</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>16 </th>\n",
-        "      <td>         confounded</td>\n",
-        "      <td> ['c', 'o', 'n', 'f', 'o', 'u', 'n', 'd', 'e', ...</td>\n",
-        "      <td>                                             ['p']</td>\n",
-        "      <td> 10</td>\n",
-        "      <td>  9</td>\n",
-        "      <td>  True</td>\n",
-        "      <td> 10</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>17 </th>\n",
-        "      <td>         racketeers</td>\n",
-        "      <td> ['r', 'a', 'c', 'k', 'e', 't', 'e', 'e', 'r', ...</td>\n",
-        "      <td>                                        ['o', 'l']</td>\n",
-        "      <td> 10</td>\n",
-        "      <td>  8</td>\n",
-        "      <td>  True</td>\n",
-        "      <td> 10</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>18 </th>\n",
-        "      <td>        ignoramuses</td>\n",
-        "      <td> ['i', 'g', 'n', 'o', 'r', 'a', 'm', 'u', 's', ...</td>\n",
-        "      <td>                                             ['l']</td>\n",
-        "      <td> 11</td>\n",
-        "      <td>  9</td>\n",
-        "      <td>  True</td>\n",
-        "      <td> 11</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>19 </th>\n",
-        "      <td>              party</td>\n",
-        "      <td>                         ['p', 'a', 'r', 't', 'y']</td>\n",
-        "      <td>                              ['s', 'e', 'n', 'd']</td>\n",
-        "      <td>  5</td>\n",
-        "      <td>  6</td>\n",
-        "      <td>  True</td>\n",
-        "      <td>  5</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>20 </th>\n",
-        "      <td>               rill</td>\n",
-        "      <td>                              ['r', 'i', 'l', 'l']</td>\n",
-        "      <td>                    ['e', 's', 'a', 'o', 'u', 'n']</td>\n",
-        "      <td>  4</td>\n",
-        "      <td>  4</td>\n",
-        "      <td>  True</td>\n",
-        "      <td>  4</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>21 </th>\n",
-        "      <td>             player</td>\n",
-        "      <td>                    ['p', 'l', 'a', 'y', 'e', 'r']</td>\n",
-        "      <td>                                        ['s', 'm']</td>\n",
-        "      <td>  6</td>\n",
-        "      <td>  8</td>\n",
-        "      <td>  True</td>\n",
-        "      <td>  6</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>22 </th>\n",
-        "      <td>          protester</td>\n",
-        "      <td>     ['p', 'r', 'o', 't', 'e', 's', 't', 'e', 'r']</td>\n",
-        "      <td>                                   ['i', 'd', 'l']</td>\n",
-        "      <td>  9</td>\n",
-        "      <td>  7</td>\n",
-        "      <td>  True</td>\n",
-        "      <td>  9</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>23 </th>\n",
-        "      <td>          asphalted</td>\n",
-        "      <td>     ['a', 's', 'p', 'h', 'a', 'l', 't', 'e', 'd']</td>\n",
-        "      <td>                                        ['r', 'i']</td>\n",
-        "      <td>  9</td>\n",
-        "      <td>  8</td>\n",
-        "      <td>  True</td>\n",
-        "      <td>  9</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>24 </th>\n",
-        "      <td>           uniforms</td>\n",
-        "      <td>          ['u', 'n', 'i', 'f', 'o', 'r', 'm', 's']</td>\n",
-        "      <td>                                   ['a', 't', 'p']</td>\n",
-        "      <td>  8</td>\n",
-        "      <td>  7</td>\n",
-        "      <td>  True</td>\n",
-        "      <td>  8</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>25 </th>\n",
-        "      <td>         coniferous</td>\n",
-        "      <td> ['c', 'o', 'n', 'i', 'f', 'e', 'r', 'o', 'u', ...</td>\n",
-        "      <td>                                                []</td>\n",
-        "      <td> 10</td>\n",
-        "      <td> 10</td>\n",
-        "      <td>  True</td>\n",
-        "      <td> 10</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>26 </th>\n",
-        "      <td>         dishearten</td>\n",
-        "      <td> ['d', 'i', 's', 'h', 'e', 'a', 'r', 't', 'e', ...</td>\n",
-        "      <td>                                   ['o', 'l', 'g']</td>\n",
-        "      <td> 10</td>\n",
-        "      <td>  7</td>\n",
-        "      <td>  True</td>\n",
-        "      <td> 10</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>27 </th>\n",
-        "      <td>              scull</td>\n",
-        "      <td>                         ['s', 'c', 'u', 'l', 'l']</td>\n",
-        "      <td>                         ['e', 'a', 'o', 'i', 'n']</td>\n",
-        "      <td>  5</td>\n",
-        "      <td>  5</td>\n",
-        "      <td>  True</td>\n",
-        "      <td>  5</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>28 </th>\n",
-        "      <td>             virgin</td>\n",
-        "      <td>                    ['v', 'i', 'r', 'g', 'i', 'n']</td>\n",
-        "      <td>                                   ['s', 'a', 'd']</td>\n",
-        "      <td>  6</td>\n",
-        "      <td>  7</td>\n",
-        "      <td>  True</td>\n",
-        "      <td>  6</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>29 </th>\n",
-        "      <td>       licentiously</td>\n",
-        "      <td> ['l', 'i', 'c', 'e', 'n', 't', 'i', 'o', 'u', ...</td>\n",
-        "      <td>                                                []</td>\n",
-        "      <td> 12</td>\n",
-        "      <td> 10</td>\n",
-        "      <td>  True</td>\n",
-        "      <td> 12</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>...</th>\n",
-        "      <td>...</td>\n",
-        "      <td>...</td>\n",
-        "      <td>...</td>\n",
-        "      <td>...</td>\n",
-        "      <td>...</td>\n",
-        "      <td>...</td>\n",
-        "      <td>...</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>970</th>\n",
-        "      <td>         grindstone</td>\n",
-        "      <td> ['g', 'r', 'i', 'n', 'd', 's', 't', 'o', 'n', ...</td>\n",
-        "      <td>                                   ['a', 'u', 'p']</td>\n",
-        "      <td> 10</td>\n",
-        "      <td>  7</td>\n",
-        "      <td>  True</td>\n",
-        "      <td> 10</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>971</th>\n",
-        "      <td>       bankruptcies</td>\n",
-        "      <td> ['b', 'a', 'n', 'k', 'r', 'u', 'p', 't', 'c', ...</td>\n",
-        "      <td>                                                []</td>\n",
-        "      <td> 12</td>\n",
-        "      <td> 10</td>\n",
-        "      <td>  True</td>\n",
-        "      <td> 12</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>972</th>\n",
-        "      <td>             smalls</td>\n",
-        "      <td>                    ['s', 'm', 'a', 'l', 'l', 's']</td>\n",
-        "      <td>                              ['e', 't', 'k', 'w']</td>\n",
-        "      <td>  6</td>\n",
-        "      <td>  6</td>\n",
-        "      <td>  True</td>\n",
-        "      <td>  6</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>973</th>\n",
-        "      <td>            limping</td>\n",
-        "      <td>               ['l', 'i', 'm', 'p', 'i', 'n', 'g']</td>\n",
-        "      <td>               ['s', 'r', 'e', 'a', 'o', 'u', 'k']</td>\n",
-        "      <td>  7</td>\n",
-        "      <td>  3</td>\n",
-        "      <td>  True</td>\n",
-        "      <td>  7</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>974</th>\n",
-        "      <td>        interfacing</td>\n",
-        "      <td> ['i', 'n', 't', 'e', 'r', 'f', 'a', 'c', 'i', ...</td>\n",
-        "      <td>                              ['o', 'l', 'd', 's']</td>\n",
-        "      <td> 11</td>\n",
-        "      <td>  6</td>\n",
-        "      <td>  True</td>\n",
-        "      <td> 11</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>975</th>\n",
-        "      <td>               mint</td>\n",
-        "      <td>                              ['_', '_', 'n', 't']</td>\n",
-        "      <td> ['e', 's', 'a', 'o', 'u', 'd', 'k', 'l', 'p', ...</td>\n",
-        "      <td>  2</td>\n",
-        "      <td>  0</td>\n",
-        "      <td> False</td>\n",
-        "      <td>  4</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>976</th>\n",
-        "      <td>       romanticises</td>\n",
-        "      <td> ['r', 'o', 'm', 'a', 'n', 't', 'i', 'c', 'i', ...</td>\n",
-        "      <td>                                             ['d']</td>\n",
-        "      <td> 12</td>\n",
-        "      <td>  9</td>\n",
-        "      <td>  True</td>\n",
-        "      <td> 12</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>977</th>\n",
-        "      <td>           cleavage</td>\n",
-        "      <td>          ['c', 'l', 'e', 'a', 'v', 'a', 'g', 'e']</td>\n",
-        "      <td>                                        ['r', 's']</td>\n",
-        "      <td>  8</td>\n",
-        "      <td>  8</td>\n",
-        "      <td>  True</td>\n",
-        "      <td>  8</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>978</th>\n",
-        "      <td>            revival</td>\n",
-        "      <td>               ['r', 'e', 'v', 'i', 'v', 'a', 'l']</td>\n",
-        "      <td>                              ['s', 'n', 'c', 'm']</td>\n",
-        "      <td>  7</td>\n",
-        "      <td>  6</td>\n",
-        "      <td>  True</td>\n",
-        "      <td>  7</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>979</th>\n",
-        "      <td>            praying</td>\n",
-        "      <td>               ['p', 'r', 'a', 'y', 'i', 'n', 'g']</td>\n",
-        "      <td>                              ['s', 'd', 'c', 'b']</td>\n",
-        "      <td>  7</td>\n",
-        "      <td>  6</td>\n",
-        "      <td>  True</td>\n",
-        "      <td>  7</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>980</th>\n",
-        "      <td>             troupe</td>\n",
-        "      <td>                    ['t', 'r', 'o', 'u', 'p', 'e']</td>\n",
-        "      <td>                              ['s', 'g', 'a', 'l']</td>\n",
-        "      <td>  6</td>\n",
-        "      <td>  6</td>\n",
-        "      <td>  True</td>\n",
-        "      <td>  6</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>981</th>\n",
-        "      <td>             public</td>\n",
-        "      <td>                    ['p', 'u', 'b', 'l', 'i', 'c']</td>\n",
-        "      <td>                    ['s', 'r', 'd', 'n', 'a', 'e']</td>\n",
-        "      <td>  6</td>\n",
-        "      <td>  4</td>\n",
-        "      <td>  True</td>\n",
-        "      <td>  6</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>982</th>\n",
-        "      <td>         generating</td>\n",
-        "      <td> ['g', 'e', 'n', 'e', 'r', 'a', 't', 'i', 'n', ...</td>\n",
-        "      <td>                                        ['o', 'l']</td>\n",
-        "      <td> 10</td>\n",
-        "      <td>  8</td>\n",
-        "      <td>  True</td>\n",
-        "      <td> 10</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>983</th>\n",
-        "      <td>            sallies</td>\n",
-        "      <td>               ['s', 'a', 'l', 'l', 'i', 'e', 's']</td>\n",
-        "      <td>                                             ['r']</td>\n",
-        "      <td>  7</td>\n",
-        "      <td>  9</td>\n",
-        "      <td>  True</td>\n",
-        "      <td>  7</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>984</th>\n",
-        "      <td>              yacht</td>\n",
-        "      <td>                         ['y', 'a', 'c', 'h', 't']</td>\n",
-        "      <td>                                        ['s', 'e']</td>\n",
-        "      <td>  5</td>\n",
-        "      <td>  8</td>\n",
-        "      <td>  True</td>\n",
-        "      <td>  5</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>985</th>\n",
-        "      <td>            armpits</td>\n",
-        "      <td>               ['a', 'r', 'm', 'p', 'i', 't', 's']</td>\n",
-        "      <td>                                             ['o']</td>\n",
-        "      <td>  7</td>\n",
-        "      <td>  9</td>\n",
-        "      <td>  True</td>\n",
-        "      <td>  7</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>986</th>\n",
-        "      <td>            oblongs</td>\n",
-        "      <td>               ['o', 'b', 'l', 'o', 'n', 'g', 's']</td>\n",
-        "      <td>                                   ['r', 'i', 'a']</td>\n",
-        "      <td>  7</td>\n",
-        "      <td>  7</td>\n",
-        "      <td>  True</td>\n",
-        "      <td>  7</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>987</th>\n",
-        "      <td>          developed</td>\n",
-        "      <td>     ['d', 'e', 'v', 'e', 'l', 'o', 'p', 'e', 'd']</td>\n",
-        "      <td>                         ['t', 'a', 'r', 'n', 'i']</td>\n",
-        "      <td>  9</td>\n",
-        "      <td>  5</td>\n",
-        "      <td>  True</td>\n",
-        "      <td>  9</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>988</th>\n",
-        "      <td>           demolish</td>\n",
-        "      <td>          ['d', 'e', 'm', 'o', 'l', 'i', 's', 'h']</td>\n",
-        "      <td>                                   ['r', 'a', 't']</td>\n",
-        "      <td>  8</td>\n",
-        "      <td>  7</td>\n",
-        "      <td>  True</td>\n",
-        "      <td>  8</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>989</th>\n",
-        "      <td>            pincers</td>\n",
-        "      <td>               ['p', 'i', 'n', 'c', 'e', 'r', 's']</td>\n",
-        "      <td>                         ['a', 'o', 't', 'd', 'l']</td>\n",
-        "      <td>  7</td>\n",
-        "      <td>  5</td>\n",
-        "      <td>  True</td>\n",
-        "      <td>  7</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>990</th>\n",
-        "      <td> telecommunications</td>\n",
-        "      <td> ['t', 'e', 'l', 'e', 'c', 'o', 'm', 'm', 'u', ...</td>\n",
-        "      <td>                                        ['p', 'r']</td>\n",
-        "      <td> 18</td>\n",
-        "      <td>  8</td>\n",
-        "      <td>  True</td>\n",
-        "      <td> 18</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>991</th>\n",
-        "      <td>             dabble</td>\n",
-        "      <td>                    ['d', 'a', 'b', 'b', 'l', 'e']</td>\n",
-        "      <td>                         ['s', 'r', 'i', 'n', 'y']</td>\n",
-        "      <td>  6</td>\n",
-        "      <td>  5</td>\n",
-        "      <td>  True</td>\n",
-        "      <td>  6</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>992</th>\n",
-        "      <td>          morticing</td>\n",
-        "      <td>     ['m', 'o', 'r', 't', 'i', 'c', 'i', 'n', 'g']</td>\n",
-        "      <td>                              ['a', 's', 'f', 'd']</td>\n",
-        "      <td>  9</td>\n",
-        "      <td>  6</td>\n",
-        "      <td>  True</td>\n",
-        "      <td>  9</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>993</th>\n",
-        "      <td>              weals</td>\n",
-        "      <td>                         ['w', 'e', 'a', 'l', 's']</td>\n",
-        "      <td>                         ['r', 'd', 'p', 'm', 'h']</td>\n",
-        "      <td>  5</td>\n",
-        "      <td>  5</td>\n",
-        "      <td>  True</td>\n",
-        "      <td>  5</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>994</th>\n",
-        "      <td>              dryer</td>\n",
-        "      <td>                         ['d', 'r', 'y', 'e', 'r']</td>\n",
-        "      <td>                                        ['s', 'i']</td>\n",
-        "      <td>  5</td>\n",
-        "      <td>  8</td>\n",
-        "      <td>  True</td>\n",
-        "      <td>  5</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>995</th>\n",
-        "      <td>     inconclusively</td>\n",
-        "      <td> ['i', 'n', 'c', 'o', 'n', 'c', 'l', 'u', 's', ...</td>\n",
-        "      <td>                                             ['d']</td>\n",
-        "      <td> 14</td>\n",
-        "      <td>  9</td>\n",
-        "      <td>  True</td>\n",
-        "      <td> 14</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>996</th>\n",
-        "      <td>          bubbliest</td>\n",
-        "      <td>     ['_', '_', '_', '_', '_', '_', '_', '_', 't']</td>\n",
-        "      <td> ['n', 'r', 'o', 'c', 'a', 'm', 'h', 'p', 'f', ...</td>\n",
-        "      <td>  1</td>\n",
-        "      <td>  0</td>\n",
-        "      <td> False</td>\n",
-        "      <td>  9</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>997</th>\n",
-        "      <td>             graded</td>\n",
-        "      <td>                    ['g', 'r', 'a', 'd', 'e', 'd']</td>\n",
-        "      <td>                    ['s', 'c', 'v', 'y', 't', 'z']</td>\n",
-        "      <td>  6</td>\n",
-        "      <td>  4</td>\n",
-        "      <td>  True</td>\n",
-        "      <td>  6</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>998</th>\n",
-        "      <td>           carriage</td>\n",
-        "      <td>          ['c', 'a', 'r', 'r', 'i', 'a', 'g', 'e']</td>\n",
-        "      <td>                                   ['s', 'l', 'd']</td>\n",
-        "      <td>  8</td>\n",
-        "      <td>  7</td>\n",
-        "      <td>  True</td>\n",
-        "      <td>  8</td>\n",
-        "    </tr>\n",
-        "    <tr>\n",
-        "      <th>999</th>\n",
-        "      <td>         datelining</td>\n",
-        "      <td> ['d', 'a', 't', 'e', 'l', 'i', 'n', 'i', 'n', ...</td>\n",
-        "      <td>                                        ['o', 's']</td>\n",
-        "      <td> 10</td>\n",
-        "      <td>  8</td>\n",
-        "      <td>  True</td>\n",
-        "      <td> 10</td>\n",
-        "    </tr>\n",
-        "  </tbody>\n",
-        "</table>\n",
-        "<p>1000 rows \u00d7 7 columns</p>\n",
-        "</div>"
-       ],
-       "metadata": {},
-       "output_type": "pyout",
-       "prompt_number": 20,
-       "text": [
-        "                 target                                         discovered  \\\n",
-        "0                punned                     ['p', 'u', 'n', 'n', 'e', 'd']   \n",
-        "1                 anode                          ['a', 'n', 'o', 'd', 'e']   \n",
-        "2                passes                     ['p', 'a', 's', 's', 'e', 's']   \n",
-        "3                maxing                     ['m', 'a', 'x', 'i', 'n', 'g']   \n",
-        "4              quadrant           ['q', 'u', 'a', 'd', 'r', 'a', 'n', 't']   \n",
-        "5              polygamy           ['p', 'o', 'l', 'y', 'g', 'a', 'm', 'y']   \n",
-        "6         technologists  ['t', 'e', 'c', 'h', 'n', 'o', 'l', 'o', 'g', ...   \n",
-        "7                tussle                     ['t', 'u', 's', 's', 'l', 'e']   \n",
-        "8            explicitly  ['e', 'x', 'p', 'l', 'i', 'c', 'i', 't', 'l', ...   \n",
-        "9            moderators  ['m', 'o', 'd', 'e', 'r', 'a', 't', 'o', 'r', ...   \n",
-        "10                error                          ['e', 'r', 'r', 'o', 'r']   \n",
-        "11              stamped                ['s', 't', 'a', 'm', 'p', 'e', 'd']   \n",
-        "12                dress                          ['d', 'r', 'e', 's', 's']   \n",
-        "13             truckled           ['t', 'r', 'u', 'c', 'k', 'l', 'e', 'd']   \n",
-        "14        accommodation  ['a', 'c', 'c', 'o', 'm', 'm', 'o', 'd', 'a', ...   \n",
-        "15               reload                     ['r', 'e', 'l', 'o', 'a', 'd']   \n",
-        "16           confounded  ['c', 'o', 'n', 'f', 'o', 'u', 'n', 'd', 'e', ...   \n",
-        "17           racketeers  ['r', 'a', 'c', 'k', 'e', 't', 'e', 'e', 'r', ...   \n",
-        "18          ignoramuses  ['i', 'g', 'n', 'o', 'r', 'a', 'm', 'u', 's', ...   \n",
-        "19                party                          ['p', 'a', 'r', 't', 'y']   \n",
-        "20                 rill                               ['r', 'i', 'l', 'l']   \n",
-        "21               player                     ['p', 'l', 'a', 'y', 'e', 'r']   \n",
-        "22            protester      ['p', 'r', 'o', 't', 'e', 's', 't', 'e', 'r']   \n",
-        "23            asphalted      ['a', 's', 'p', 'h', 'a', 'l', 't', 'e', 'd']   \n",
-        "24             uniforms           ['u', 'n', 'i', 'f', 'o', 'r', 'm', 's']   \n",
-        "25           coniferous  ['c', 'o', 'n', 'i', 'f', 'e', 'r', 'o', 'u', ...   \n",
-        "26           dishearten  ['d', 'i', 's', 'h', 'e', 'a', 'r', 't', 'e', ...   \n",
-        "27                scull                          ['s', 'c', 'u', 'l', 'l']   \n",
-        "28               virgin                     ['v', 'i', 'r', 'g', 'i', 'n']   \n",
-        "29         licentiously  ['l', 'i', 'c', 'e', 'n', 't', 'i', 'o', 'u', ...   \n",
-        "..                  ...                                                ...   \n",
-        "970          grindstone  ['g', 'r', 'i', 'n', 'd', 's', 't', 'o', 'n', ...   \n",
-        "971        bankruptcies  ['b', 'a', 'n', 'k', 'r', 'u', 'p', 't', 'c', ...   \n",
-        "972              smalls                     ['s', 'm', 'a', 'l', 'l', 's']   \n",
-        "973             limping                ['l', 'i', 'm', 'p', 'i', 'n', 'g']   \n",
-        "974         interfacing  ['i', 'n', 't', 'e', 'r', 'f', 'a', 'c', 'i', ...   \n",
-        "975                mint                               ['_', '_', 'n', 't']   \n",
-        "976        romanticises  ['r', 'o', 'm', 'a', 'n', 't', 'i', 'c', 'i', ...   \n",
-        "977            cleavage           ['c', 'l', 'e', 'a', 'v', 'a', 'g', 'e']   \n",
-        "978             revival                ['r', 'e', 'v', 'i', 'v', 'a', 'l']   \n",
-        "979             praying                ['p', 'r', 'a', 'y', 'i', 'n', 'g']   \n",
-        "980              troupe                     ['t', 'r', 'o', 'u', 'p', 'e']   \n",
-        "981              public                     ['p', 'u', 'b', 'l', 'i', 'c']   \n",
-        "982          generating  ['g', 'e', 'n', 'e', 'r', 'a', 't', 'i', 'n', ...   \n",
-        "983             sallies                ['s', 'a', 'l', 'l', 'i', 'e', 's']   \n",
-        "984               yacht                          ['y', 'a', 'c', 'h', 't']   \n",
-        "985             armpits                ['a', 'r', 'm', 'p', 'i', 't', 's']   \n",
-        "986             oblongs                ['o', 'b', 'l', 'o', 'n', 'g', 's']   \n",
-        "987           developed      ['d', 'e', 'v', 'e', 'l', 'o', 'p', 'e', 'd']   \n",
-        "988            demolish           ['d', 'e', 'm', 'o', 'l', 'i', 's', 'h']   \n",
-        "989             pincers                ['p', 'i', 'n', 'c', 'e', 'r', 's']   \n",
-        "990  telecommunications  ['t', 'e', 'l', 'e', 'c', 'o', 'm', 'm', 'u', ...   \n",
-        "991              dabble                     ['d', 'a', 'b', 'b', 'l', 'e']   \n",
-        "992           morticing      ['m', 'o', 'r', 't', 'i', 'c', 'i', 'n', 'g']   \n",
-        "993               weals                          ['w', 'e', 'a', 'l', 's']   \n",
-        "994               dryer                          ['d', 'r', 'y', 'e', 'r']   \n",
-        "995      inconclusively  ['i', 'n', 'c', 'o', 'n', 'c', 'l', 'u', 's', ...   \n",
-        "996           bubbliest      ['_', '_', '_', '_', '_', '_', '_', '_', 't']   \n",
-        "997              graded                     ['g', 'r', 'a', 'd', 'e', 'd']   \n",
-        "998            carriage           ['c', 'a', 'r', 'r', 'i', 'a', 'g', 'e']   \n",
-        "999          datelining  ['d', 'a', 't', 'e', 'l', 'i', 'n', 'i', 'n', ...   \n",
-        "\n",
-        "                                         wrong letters  number of hits  \\\n",
-        "0                            ['s', 'r', 'l', 'a', 'i']               6   \n",
-        "1                                      ['s', 'l', 'b']               5   \n",
-        "2                                           ['l', 'b']               6   \n",
-        "3        ['s', 'r', 'd', 't', 'w', 'l', 'p', 'k', 'c']               6   \n",
-        "4                                                   []               8   \n",
-        "5                                 ['r', 'i', 's', 'd']               8   \n",
-        "6                                                ['r']              13   \n",
-        "7                                                ['a']               6   \n",
-        "8                            ['o', 'a', 'b', 's', 'm']              10   \n",
-        "9                                                ['u']              10   \n",
-        "10                           ['s', 't', 'n', 'l', 'y']               5   \n",
-        "11                           ['r', 'i', 'l', 'b', 'c']               7   \n",
-        "12                                                  []               5   \n",
-        "13                           ['s', 'i', 'a', 'b', 'p']               8   \n",
-        "14                                          ['s', 'g']              13   \n",
-        "15                                          ['s', 'i']               6   \n",
-        "16                                               ['p']              10   \n",
-        "17                                          ['o', 'l']              10   \n",
-        "18                                               ['l']              11   \n",
-        "19                                ['s', 'e', 'n', 'd']               5   \n",
-        "20                      ['e', 's', 'a', 'o', 'u', 'n']               4   \n",
-        "21                                          ['s', 'm']               6   \n",
-        "22                                     ['i', 'd', 'l']               9   \n",
-        "23                                          ['r', 'i']               9   \n",
-        "24                                     ['a', 't', 'p']               8   \n",
-        "25                                                  []              10   \n",
-        "26                                     ['o', 'l', 'g']              10   \n",
-        "27                           ['e', 'a', 'o', 'i', 'n']               5   \n",
-        "28                                     ['s', 'a', 'd']               6   \n",
-        "29                                                  []              12   \n",
-        "..                                                 ...             ...   \n",
-        "970                                    ['a', 'u', 'p']              10   \n",
-        "971                                                 []              12   \n",
-        "972                               ['e', 't', 'k', 'w']               6   \n",
-        "973                ['s', 'r', 'e', 'a', 'o', 'u', 'k']               7   \n",
-        "974                               ['o', 'l', 'd', 's']              11   \n",
-        "975  ['e', 's', 'a', 'o', 'u', 'd', 'k', 'l', 'p', ...               2   \n",
-        "976                                              ['d']              12   \n",
-        "977                                         ['r', 's']               8   \n",
-        "978                               ['s', 'n', 'c', 'm']               7   \n",
-        "979                               ['s', 'd', 'c', 'b']               7   \n",
-        "980                               ['s', 'g', 'a', 'l']               6   \n",
-        "981                     ['s', 'r', 'd', 'n', 'a', 'e']               6   \n",
-        "982                                         ['o', 'l']              10   \n",
-        "983                                              ['r']               7   \n",
-        "984                                         ['s', 'e']               5   \n",
-        "985                                              ['o']               7   \n",
-        "986                                    ['r', 'i', 'a']               7   \n",
-        "987                          ['t', 'a', 'r', 'n', 'i']               9   \n",
-        "988                                    ['r', 'a', 't']               8   \n",
-        "989                          ['a', 'o', 't', 'd', 'l']               7   \n",
-        "990                                         ['p', 'r']              18   \n",
-        "991                          ['s', 'r', 'i', 'n', 'y']               6   \n",
-        "992                               ['a', 's', 'f', 'd']               9   \n",
-        "993                          ['r', 'd', 'p', 'm', 'h']               5   \n",
-        "994                                         ['s', 'i']               5   \n",
-        "995                                              ['d']              14   \n",
-        "996  ['n', 'r', 'o', 'c', 'a', 'm', 'h', 'p', 'f', ...               1   \n",
-        "997                     ['s', 'c', 'v', 'y', 't', 'z']               6   \n",
-        "998                                    ['s', 'l', 'd']               8   \n",
-        "999                                         ['o', 's']              10   \n",
-        "\n",
-        "     lives remaining game won  word length  \n",
-        "0                  5     True            6  \n",
-        "1                  7     True            5  \n",
-        "2                  8     True            6  \n",
-        "3                  1     True            6  \n",
-        "4                 10     True            8  \n",
-        "5                  6     True            8  \n",
-        "6                  9     True           13  \n",
-        "7                  9     True            6  \n",
-        "8                  5     True           10  \n",
-        "9                  9     True           10  \n",
-        "10                 5     True            5  \n",
-        "11                 5     True            7  \n",
-        "12                10     True            5  \n",
-        "13                 5     True            8  \n",
-        "14                 8     True           13  \n",
-        "15                 8     True            6  \n",
-        "16                 9     True           10  \n",
-        "17                 8     True           10  \n",
-        "18                 9     True           11  \n",
-        "19                 6     True            5  \n",
-        "20                 4     True            4  \n",
-        "21                 8     True            6  \n",
-        "22                 7     True            9  \n",
-        "23                 8     True            9  \n",
-        "24                 7     True            8  \n",
-        "25                10     True           10  \n",
-        "26                 7     True           10  \n",
-        "27                 5     True            5  \n",
-        "28                 7     True            6  \n",
-        "29                10     True           12  \n",
-        "..               ...      ...          ...  \n",
-        "970                7     True           10  \n",
-        "971               10     True           12  \n",
-        "972                6     True            6  \n",
-        "973                3     True            7  \n",
-        "974                6     True           11  \n",
-        "975                0    False            4  \n",
-        "976                9     True           12  \n",
-        "977                8     True            8  \n",
-        "978                6     True            7  \n",
-        "979                6     True            7  \n",
-        "980                6     True            6  \n",
-        "981                4     True            6  \n",
-        "982                8     True           10  \n",
-        "983                9     True            7  \n",
-        "984                8     True            5  \n",
-        "985                9     True            7  \n",
-        "986                7     True            7  \n",
-        "987                5     True            9  \n",
-        "988                7     True            8  \n",
-        "989                5     True            7  \n",
-        "990                8     True           18  \n",
-        "991                5     True            6  \n",
-        "992                6     True            9  \n",
-        "993                5     True            5  \n",
-        "994                8     True            5  \n",
-        "995                9     True           14  \n",
-        "996                0    False            9  \n",
-        "997                4     True            6  \n",
-        "998                7     True            8  \n",
-        "999                8     True           10  \n",
-        "\n",
-        "[1000 rows x 7 columns]"
-       ]
-      }
-     ],
-     "prompt_number": 20
-    },
-    {
-     "cell_type": "code",
-     "collapsed": false,
-     "input": [
-      "adaptive_split['lives remaining'].hist()"
-     ],
-     "language": "python",
-     "metadata": {},
-     "outputs": [
-      {
-       "metadata": {},
-       "output_type": "pyout",
-       "prompt_number": 21,
-       "text": [
-        "<matplotlib.axes.AxesSubplot at 0x7f1586ed5470>"
-       ]
-      },
-      {
-       "metadata": {},
-       "output_type": "display_data",
-       "png": "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\nLwAAAABJRU5ErkJggg==\n",
-       "text": [
-        "<matplotlib.figure.Figure at 0x7f1586eb5da0>"
-       ]
-      }
-     ],
-     "prompt_number": 21
-    },
-    {
-     "cell_type": "code",
-     "collapsed": false,
-     "input": [
-      "adaptive_split.groupby('lives remaining').size()"
-     ],
-     "language": "python",
-     "metadata": {},
-     "outputs": [
-      {
-       "metadata": {},
-       "output_type": "pyout",
-       "prompt_number": 22,
-       "text": [
-        "lives remaining\n",
-        "0                   19\n",
-        "1                    9\n",
-        "2                   22\n",
-        "3                   56\n",
-        "4                   68\n",
-        "5                  105\n",
-        "6                  165\n",
-        "7                  172\n",
-        "8                  183\n",
-        "9                  124\n",
-        "10                  77\n",
-        "dtype: int64"
-       ]
-      }
-     ],
-     "prompt_number": 22
-    },
-    {
-     "cell_type": "code",
-     "collapsed": false,
-     "input": [],
-     "language": "python",
-     "metadata": {},
-     "outputs": [],
-     "prompt_number": 75
-    }
-   ],
-   "metadata": {}
-  }
- ]
-}
\ No newline at end of file
diff --git a/hangman/hangman-setter.ipynb b/hangman/hangman-setter.ipynb
deleted file mode 100644 (file)
index aa2487e..0000000
+++ /dev/null
@@ -1,555 +0,0 @@
-{
- "metadata": {
-  "name": "",
-  "signature": "sha256:65af1805536aa8ac4200804af5d4b4d0e55c2eb86d74b2cf3f31a632b3aeccf8"
- },
- "nbformat": 3,
- "nbformat_minor": 0,
- "worksheets": [
-  {
-   "cells": [
-    {
-     "cell_type": "code",
-     "collapsed": false,
-     "input": [
-      "import re\n",
-      "import random"
-     ],
-     "language": "python",
-     "metadata": {},
-     "outputs": [],
-     "prompt_number": 1
-    },
-    {
-     "cell_type": "code",
-     "collapsed": false,
-     "input": [
-      "WORDS = [w.strip() for w in open('/usr/share/dict/british-english').readlines() \n",
-      "         if re.match(r'^[a-z]*$', w.strip())]"
-     ],
-     "language": "python",
-     "metadata": {},
-     "outputs": [],
-     "prompt_number": 2
-    },
-    {
-     "cell_type": "code",
-     "collapsed": false,
-     "input": [
-      "STARTING_LIVES = 10\n",
-      "lives = 0"
-     ],
-     "language": "python",
-     "metadata": {},
-     "outputs": [],
-     "prompt_number": 3
-    },
-    {
-     "cell_type": "code",
-     "collapsed": false,
-     "input": [
-      "wrong_letters = []"
-     ],
-     "language": "python",
-     "metadata": {},
-     "outputs": [],
-     "prompt_number": 4
-    },
-    {
-     "cell_type": "code",
-     "collapsed": false,
-     "input": [
-      "len(WORDS)"
-     ],
-     "language": "python",
-     "metadata": {},
-     "outputs": [
-      {
-       "metadata": {},
-       "output_type": "pyout",
-       "prompt_number": 5,
-       "text": [
-        "62856"
-       ]
-      }
-     ],
-     "prompt_number": 5
-    },
-    {
-     "cell_type": "code",
-     "collapsed": false,
-     "input": [
-      "WORDS[30000:30010]"
-     ],
-     "language": "python",
-     "metadata": {},
-     "outputs": [
-      {
-       "metadata": {},
-       "output_type": "pyout",
-       "prompt_number": 6,
-       "text": [
-        "['jotted',\n",
-        " 'jotting',\n",
-        " 'jottings',\n",
-        " 'joule',\n",
-        " 'joules',\n",
-        " 'jounce',\n",
-        " 'jounced',\n",
-        " 'jounces',\n",
-        " 'jouncing',\n",
-        " 'journal']"
-       ]
-      }
-     ],
-     "prompt_number": 6
-    },
-    {
-     "cell_type": "code",
-     "collapsed": false,
-     "input": [
-      "target = random.choice(WORDS)\n",
-      "target"
-     ],
-     "language": "python",
-     "metadata": {},
-     "outputs": [
-      {
-       "metadata": {},
-       "output_type": "pyout",
-       "prompt_number": 7,
-       "text": [
-        "'goitre'"
-       ]
-      }
-     ],
-     "prompt_number": 7
-    },
-    {
-     "cell_type": "code",
-     "collapsed": false,
-     "input": [
-      "discovered = list('_' * len(target))\n",
-      "discovered"
-     ],
-     "language": "python",
-     "metadata": {},
-     "outputs": [
-      {
-       "metadata": {},
-       "output_type": "pyout",
-       "prompt_number": 8,
-       "text": [
-        "['_', '_', '_', '_', '_', '_']"
-       ]
-      }
-     ],
-     "prompt_number": 8
-    },
-    {
-     "cell_type": "code",
-     "collapsed": false,
-     "input": [
-      "letter = input('Enter letter: ').strip().lower()[0]\n",
-      "letter"
-     ],
-     "language": "python",
-     "metadata": {},
-     "outputs": [
-      {
-       "name": "stdout",
-       "output_type": "stream",
-       "stream": "stdout",
-       "text": [
-        "Enter letter: r\n"
-       ]
-      },
-      {
-       "metadata": {},
-       "output_type": "pyout",
-       "prompt_number": 9,
-       "text": [
-        "'r'"
-       ]
-      }
-     ],
-     "prompt_number": 9
-    },
-    {
-     "cell_type": "code",
-     "collapsed": false,
-     "input": [
-      "def find_all_explicit(string, letter):\n",
-      "    locations = []\n",
-      "    starting=0\n",
-      "    location = string.find(letter)\n",
-      "    while location > -1:\n",
-      "        locations += [location]\n",
-      "        starting = location + 1\n",
-      "        location = string.find(letter, starting)\n",
-      "    return locations"
-     ],
-     "language": "python",
-     "metadata": {},
-     "outputs": [],
-     "prompt_number": 25
-    },
-    {
-     "cell_type": "code",
-     "collapsed": false,
-     "input": [
-      "def find_all(string, letter):\n",
-      "    return [p for p, l in enumerate(string) if l == letter]"
-     ],
-     "language": "python",
-     "metadata": {},
-     "outputs": [],
-     "prompt_number": 26
-    },
-    {
-     "cell_type": "code",
-     "collapsed": false,
-     "input": [
-      "find_all('happy', 'p')"
-     ],
-     "language": "python",
-     "metadata": {},
-     "outputs": [
-      {
-       "metadata": {},
-       "output_type": "pyout",
-       "prompt_number": 27,
-       "text": [
-        "[2, 3]"
-       ]
-      }
-     ],
-     "prompt_number": 27
-    },
-    {
-     "cell_type": "code",
-     "collapsed": false,
-     "input": [
-      "guessed_letter = 'e'\n",
-      "locations = find_all(target, guessed_letter)\n",
-      "for location in locations:\n",
-      "    discovered[location] = guessed_letter\n",
-      "discovered"
-     ],
-     "language": "python",
-     "metadata": {},
-     "outputs": [
-      {
-       "metadata": {},
-       "output_type": "pyout",
-       "prompt_number": 12,
-       "text": [
-        "['_', '_', '_', '_', '_', 'e']"
-       ]
-      }
-     ],
-     "prompt_number": 12
-    },
-    {
-     "cell_type": "code",
-     "collapsed": false,
-     "input": [
-      "def updated_discovered_word(discovered, guessed_letter):\n",
-      "    locations = find_all(target, guessed_letter)\n",
-      "    for location in locations:\n",
-      "        discovered[location] = guessed_letter\n",
-      "    return discovered"
-     ],
-     "language": "python",
-     "metadata": {},
-     "outputs": [],
-     "prompt_number": 13
-    },
-    {
-     "cell_type": "code",
-     "collapsed": false,
-     "input": [
-      "def initialise():\n",
-      "    global lives, target, discovered, wrong_letters\n",
-      "    lives = STARTING_LIVES\n",
-      "    target = random.choice(WORDS)\n",
-      "    discovered = list('_' * len(target))\n",
-      "    wrong_letters = []"
-     ],
-     "language": "python",
-     "metadata": {},
-     "outputs": [],
-     "prompt_number": 14
-    },
-    {
-     "cell_type": "code",
-     "collapsed": false,
-     "input": [
-      "def do_turn():\n",
-      "    global discovered, lives, wrong_letters\n",
-      "    print('Word:', ' '.join(discovered), ' : Lives =', lives, ', wrong guesses:', ' '.join(sorted(wrong_letters)))\n",
-      "    guess = input('Enter letter: ').strip().lower()[0]\n",
-      "    if guess in target:\n",
-      "        updated_discovered_word(discovered, guess)\n",
-      "    else:\n",
-      "        lives -= 1\n",
-      "        if guess not in wrong_letters:\n",
-      "            wrong_letters += [guess]"
-     ],
-     "language": "python",
-     "metadata": {},
-     "outputs": [],
-     "prompt_number": 15
-    },
-    {
-     "cell_type": "code",
-     "collapsed": false,
-     "input": [
-      "def play_game():\n",
-      "    global discovered, lives\n",
-      "    initialise()\n",
-      "    game_finished = False\n",
-      "    do_turn()\n",
-      "    while not game_finished:\n",
-      "        if '_' not in discovered:\n",
-      "            print('You won! The word was', target)\n",
-      "            game_finished = True\n",
-      "        elif lives <= 0:\n",
-      "            print('You lost. The word was', target)\n",
-      "            game_finished = True\n",
-      "        else:\n",
-      "            do_turn()"
-     ],
-     "language": "python",
-     "metadata": {},
-     "outputs": [],
-     "prompt_number": 16
-    },
-    {
-     "cell_type": "code",
-     "collapsed": false,
-     "input": [
-      "play_game()"
-     ],
-     "language": "python",
-     "metadata": {},
-     "outputs": [
-      {
-       "output_type": "stream",
-       "stream": "stdout",
-       "text": [
-        "Word: _ _ _ _  : Lives = 10 , wrong guesses: \n"
-       ]
-      },
-      {
-       "name": "stdout",
-       "output_type": "stream",
-       "stream": "stdout",
-       "text": [
-        "Enter letter: e\n"
-       ]
-      },
-      {
-       "output_type": "stream",
-       "stream": "stdout",
-       "text": [
-        "Word: _ _ _ e  : Lives = 10 , wrong guesses: \n"
-       ]
-      },
-      {
-       "name": "stdout",
-       "output_type": "stream",
-       "stream": "stdout",
-       "text": [
-        "Enter letter: s\n"
-       ]
-      },
-      {
-       "output_type": "stream",
-       "stream": "stdout",
-       "text": [
-        "Word: _ _ _ e  : Lives = 9 , wrong guesses: s\n"
-       ]
-      },
-      {
-       "name": "stdout",
-       "output_type": "stream",
-       "stream": "stdout",
-       "text": [
-        "Enter letter: a\n"
-       ]
-      },
-      {
-       "output_type": "stream",
-       "stream": "stdout",
-       "text": [
-        "Word: _ _ _ e  : Lives = 8 , wrong guesses: a s\n"
-       ]
-      },
-      {
-       "name": "stdout",
-       "output_type": "stream",
-       "stream": "stdout",
-       "text": [
-        "Enter letter: o\n"
-       ]
-      },
-      {
-       "output_type": "stream",
-       "stream": "stdout",
-       "text": [
-        "Word: _ _ _ e  : Lives = 7 , wrong guesses: a o s\n"
-       ]
-      },
-      {
-       "name": "stdout",
-       "output_type": "stream",
-       "stream": "stdout",
-       "text": [
-        "Enter letter: i\n"
-       ]
-      },
-      {
-       "output_type": "stream",
-       "stream": "stdout",
-       "text": [
-        "Word: _ i _ e  : Lives = 7 , wrong guesses: a o s\n"
-       ]
-      },
-      {
-       "name": "stdout",
-       "output_type": "stream",
-       "stream": "stdout",
-       "text": [
-        "Enter letter: t\n"
-       ]
-      },
-      {
-       "output_type": "stream",
-       "stream": "stdout",
-       "text": [
-        "Word: _ i _ e  : Lives = 6 , wrong guesses: a o s t\n"
-       ]
-      },
-      {
-       "name": "stdout",
-       "output_type": "stream",
-       "stream": "stdout",
-       "text": [
-        "Enter letter: n\n"
-       ]
-      },
-      {
-       "output_type": "stream",
-       "stream": "stdout",
-       "text": [
-        "Word: _ i _ e  : Lives = 5 , wrong guesses: a n o s t\n"
-       ]
-      },
-      {
-       "name": "stdout",
-       "output_type": "stream",
-       "stream": "stdout",
-       "text": [
-        "Enter letter: m\n"
-       ]
-      },
-      {
-       "output_type": "stream",
-       "stream": "stdout",
-       "text": [
-        "Word: _ i _ e  : Lives = 4 , wrong guesses: a m n o s t\n"
-       ]
-      },
-      {
-       "name": "stdout",
-       "output_type": "stream",
-       "stream": "stdout",
-       "text": [
-        "Enter letter: l\n"
-       ]
-      },
-      {
-       "output_type": "stream",
-       "stream": "stdout",
-       "text": [
-        "Word: _ i _ e  : Lives = 3 , wrong guesses: a l m n o s t\n"
-       ]
-      },
-      {
-       "name": "stdout",
-       "output_type": "stream",
-       "stream": "stdout",
-       "text": [
-        "Enter letter: c\n"
-       ]
-      },
-      {
-       "output_type": "stream",
-       "stream": "stdout",
-       "text": [
-        "Word: _ i _ e  : Lives = 2 , wrong guesses: a c l m n o s t\n"
-       ]
-      },
-      {
-       "name": "stdout",
-       "output_type": "stream",
-       "stream": "stdout",
-       "text": [
-        "Enter letter: d\n"
-       ]
-      },
-      {
-       "output_type": "stream",
-       "stream": "stdout",
-       "text": [
-        "Word: _ i d e  : Lives = 2 , wrong guesses: a c l m n o s t\n"
-       ]
-      },
-      {
-       "name": "stdout",
-       "output_type": "stream",
-       "stream": "stdout",
-       "text": [
-        "Enter letter: h\n"
-       ]
-      },
-      {
-       "output_type": "stream",
-       "stream": "stdout",
-       "text": [
-        "Word: _ i d e  : Lives = 1 , wrong guesses: a c h l m n o s t\n"
-       ]
-      },
-      {
-       "name": "stdout",
-       "output_type": "stream",
-       "stream": "stdout",
-       "text": [
-        "Enter letter: b\n"
-       ]
-      },
-      {
-       "output_type": "stream",
-       "stream": "stdout",
-       "text": [
-        "You lost. The word was ride\n"
-       ]
-      }
-     ],
-     "prompt_number": 20
-    },
-    {
-     "cell_type": "code",
-     "collapsed": false,
-     "input": [],
-     "language": "python",
-     "metadata": {},
-     "outputs": [],
-     "prompt_number": 17
-    }
-   ],
-   "metadata": {}
-  }
- ]
-}
\ No newline at end of file