{
"metadata": {
"name": "",
- "signature": "sha256:07f366ec645d178071697c25c43d438fd80cf3a676ad9bd8d7613f5bfa36adf5"
+ "signature": "sha256:545958b09bd5e8fa505a87efb9adac0a47f5192bcc21e705711935beec6eb83c"
},
"nbformat": 3,
"nbformat_minor": 0,
" self.game_lost = False\n",
" \n",
" def find_all(self, letter):\n",
- " locations = []\n",
- " starting=0\n",
- " location = self.target.find(letter)\n",
- " while location > -1:\n",
- " locations += [location]\n",
- " starting = location + 1\n",
- " location = self.target.find(letter, starting)\n",
- " return locations\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",
" \n",
" def guess(self, discovered, missed, lives):\n",
" guessed_letters = [l.lower() for l in discovered + missed if l in string.ascii_letters]\n",
- " self.ordered_subtract(guessed_letters)\n",
- " return self.ordered_letters[0]\n",
- "\n",
- " def ordered_subtract(self, to_remove):\n",
- " for r in to_remove:\n",
- " if r in self.ordered_letters:\n",
- " ri = self.ordered_letters.index(r)\n",
- " self.ordered_letters = self.ordered_letters[:ri] + self.ordered_letters[ri+1:]"
+ " return [l for l in self.ordered_letters if l not in guessed_letters][0]"
],
"language": "python",
"metadata": {},
"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",
"output_type": "stream",
"stream": "stdout",
"text": [
- "43\n"
+ "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"
]
- }
- ],
- "prompt_number": 8
- },
- {
- "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": [
- "316\n"
+ "\n",
+ "9"
]
- }
- ],
- "prompt_number": 9
- },
- {
- "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": [
+ "\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": [
- "5\n"
+ "\n",
+ "10 loops, best of 3: 74.6 ms per loop\n"
]
}
],
- "prompt_number": 10
+ "prompt_number": 57
},
{
"cell_type": "code",
"output_type": "stream",
"stream": "stdout",
"text": [
- "473\n"
+ "440\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",
- " self.ordered_subtract(guessed_letters)\n",
- " return self.ordered_letters[0]\n",
- "\n",
- " def ordered_subtract(self, to_remove):\n",
- " for r in to_remove:\n",
- " if r in self.ordered_letters:\n",
- " ri = self.ordered_letters.index(r)\n",
- " self.ordered_letters = self.ordered_letters[:ri] + self.ordered_letters[ri+1:]\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",
"language": "python",
"metadata": {},
"outputs": [],
- "prompt_number": 15
+ "prompt_number": 33
},
{
"cell_type": "code",
"output_type": "stream",
"stream": "stdout",
"text": [
- "489\n"
+ "474\n"
]
}
],
- "prompt_number": 16
+ "prompt_number": 34
},
{
"cell_type": "code",
" 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",
- " self.ordered_subtract(guessed_letters)\n",
- " return self.ordered_letters[0]\n",
- "\n",
- " def ordered_subtract(self, to_remove):\n",
- " for r in to_remove:\n",
- " if r in self.ordered_letters:\n",
- " ri = self.ordered_letters.index(r)\n",
- " self.ordered_letters = self.ordered_letters[:ri] + self.ordered_letters[ri+1:]\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",
"language": "python",
"metadata": {},
"outputs": [],
- "prompt_number": 17
+ "prompt_number": 35
},
{
"cell_type": "code",
"output_type": "stream",
"stream": "stdout",
"text": [
- "979\n"
+ "982\n"
]
}
],
- "prompt_number": 18
+ "prompt_number": 36
},
{
"cell_type": "code",
"language": "python",
"metadata": {},
"outputs": [],
- "prompt_number": 19
+ "prompt_number": 37
},
{
"cell_type": "code",
" 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",
- " self.ordered_subtract(guessed_letters)\n",
- " return self.ordered_letters[0]\n",
- "\n",
- " def ordered_subtract(self, to_remove):\n",
- " for r in to_remove:\n",
- " if r in self.ordered_letters:\n",
- " ri = self.ordered_letters.index(r)\n",
- " self.ordered_letters = self.ordered_letters[:ri] + self.ordered_letters[ri+1:]\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",
"language": "python",
"metadata": {},
"outputs": [],
- "prompt_number": 20
+ "prompt_number": 38
},
{
"cell_type": "code",
"output_type": "stream",
"stream": "stdout",
"text": [
- "512\n"
+ "502\n"
]
}
],
- "prompt_number": 21
+ "prompt_number": 39
},
{
"cell_type": "code",
" 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",
- " self.ordered_subtract(guessed_letters)\n",
- " return self.ordered_letters[0]\n",
- "\n",
- " def ordered_subtract(self, to_remove):\n",
- " for r in to_remove:\n",
- " if r in self.ordered_letters:\n",
- " ri = self.ordered_letters.index(r)\n",
- " self.ordered_letters = self.ordered_letters[:ri] + self.ordered_letters[ri+1:]\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",
"language": "python",
"metadata": {},
"outputs": [],
- "prompt_number": 22
+ "prompt_number": 40
},
{
"cell_type": "code",
"output_type": "stream",
"stream": "stdout",
"text": [
- "990\n"
+ "993\n"
]
}
],
- "prompt_number": 23
+ "prompt_number": 41
},
{
"cell_type": "code",
"output_type": "stream",
"stream": "stdout",
"text": [
- "986\n",
- "996"
+ "994\n",
+ "993"
]
},
{
"stream": "stdout",
"text": [
"\n",
- "991"
+ "987"
]
},
{
"stream": "stdout",
"text": [
"\n",
- "990"
+ "993"
]
},
{
"stream": "stdout",
"text": [
"\n",
- "1 loops, best of 3: 57.2 s per loop\n"
+ "1 loops, best of 3: 30.6 s per loop\n"
]
}
],
- "prompt_number": 24
+ "prompt_number": 42
},
{
"cell_type": "code",
" 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",
- " self.ordered_subtract(guessed_letters)\n",
- " return self.ordered_letters[0]\n",
- "\n",
- " def ordered_subtract(self, to_remove):\n",
- " for r in to_remove:\n",
- " if r in self.ordered_letters:\n",
- " ri = self.ordered_letters.index(r)\n",
- " self.ordered_letters = self.ordered_letters[:ri] + self.ordered_letters[ri+1:]\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",
"language": "python",
"metadata": {},
"outputs": [],
- "prompt_number": 25
+ "prompt_number": 43
},
{
"cell_type": "code",
"language": "python",
"metadata": {},
"outputs": [],
- "prompt_number": 26
+ "prompt_number": 44
},
{
"cell_type": "code",
"language": "python",
"metadata": {},
"outputs": [],
- "prompt_number": 27
+ "prompt_number": 45
},
{
"cell_type": "code",
"language": "python",
"metadata": {},
"outputs": [],
- "prompt_number": 28
+ "prompt_number": 46
},
{
"cell_type": "code",
"language": "python",
"metadata": {},
"outputs": [],
- "prompt_number": 29
+ "prompt_number": 47
},
{
"cell_type": "code",
"output_type": "stream",
"stream": "stdout",
"text": [
- "463\n",
- "492"
+ "479\n",
+ "455"
]
},
{
"stream": "stdout",
"text": [
"\n",
- "451"
+ "460"
]
},
{
"stream": "stdout",
"text": [
"\n",
- "448"
+ "498"
]
},
{
"stream": "stdout",
"text": [
"\n",
- "1 loops, best of 3: 30.9 s per loop\n"
+ "1 loops, best of 3: 15.9 s per loop\n"
]
}
],
- "prompt_number": 30
+ "prompt_number": 48
},
{
"cell_type": "code",
"output_type": "stream",
"stream": "stdout",
"text": [
- "985\n",
- "972"
+ "981\n",
+ "983"
]
},
{
"stream": "stdout",
"text": [
"\n",
- "976"
+ "980"
]
},
{
"stream": "stdout",
"text": [
"\n",
- "986"
+ "980"
]
},
{
"stream": "stdout",
"text": [
"\n",
- "1 loops, best of 3: 1min 8s per loop\n"
+ "1 loops, best of 3: 36.9 s per loop\n"
]
}
],
- "prompt_number": 31
+ "prompt_number": 49
},
{
"cell_type": "code",
"output_type": "stream",
"stream": "stdout",
"text": [
- "502\n",
- "491"
+ "521\n",
+ "484"
]
},
{
"stream": "stdout",
"text": [
"\n",
- "537"
+ "491"
]
},
{
"stream": "stdout",
"text": [
"\n",
- "524"
+ "518"
]
},
{
"stream": "stdout",
"text": [
"\n",
- "1 loops, best of 3: 13min 6s per loop\n"
+ "1 loops, best of 3: 7min 18s per loop\n"
]
}
],
- "prompt_number": 32
+ "prompt_number": 50
},
{
"cell_type": "code",
"output_type": "stream",
"stream": "stdout",
"text": [
- "993\n",
- "991"
+ "987\n",
+ "988"
]
},
{
"stream": "stdout",
"text": [
"\n",
- "994"
+ "996"
]
},
{
"stream": "stdout",
"text": [
"\n",
- "989"
+ "995"
]
},
{
"stream": "stdout",
"text": [
"\n",
- "1 loops, best of 3: 56.6 s per loop\n"
+ "1 loops, best of 3: 31.1 s per loop\n"
]
}
],
- "prompt_number": 33
+ "prompt_number": 51
},
{
"cell_type": "code",
"output_type": "stream",
"stream": "stdout",
"text": [
- "jutting ['_', 'u', 't', 't', 'i', 'n', 'g'] ['e', 'a', 'o', 'l', 's', 'f', 'p', 'b', 'c', 'r']\n",
- "faze"
+ "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": [
- " ['_', 'a', '_', 'e'] ['r', 'l', 'm', 'p', 's', 'g', 'b', 'd', 'v', 'k']\n",
- "fate"
+ " ['_', 'u', 'n', 'n', 'y'] ['s', 'e', 'a', 'o', 'i', 'm', 'l', 'g', 'f', 't']\n",
+ "curving"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
- " ['_', 'a', '_', 'e'] ['r', 'l', 'm', 'p', 's', 'g', 'b', 'd', 'v', 'k']\n",
- "dunk"
+ " ['c', 'u', '_', '_', 'i', 'n', 'g'] ['e', 'a', 'o', 'l', 's', 'f', 'p', 'b', 't', 'm']\n",
+ "hoe"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
- " ['_', 'u', 'n', 'k'] ['e', 's', 'o', 'a', 'i', 'l', 'f', 'r', 'j', 'p']\n",
- "loons"
+ " ['_', 'o', '_'] ['a', 't', 'b', 'd', 'w', 'p', 'n', 's', 'g', 'y']\n",
+ "butt"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
- " ['_', 'o', 'o', 'n', 's'] ['e', 't', 'k', 'm', 'p', 'd', 'f', 'c', 'b', 'g']\n",
- "lab"
+ " ['_', 'u', '_', '_'] ['e', 's', 'o', 'a', 'i', 'l', 'f', 'r', 'n', 'm']\n",
+ "mucked"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
- " ['_', 'a', 'b'] ['t', 'p', 'g', 'w', 'm', 'd', 'y', 'r', 'c', 'n']\n",
- "joked"
+ " ['_', 'u', '_', '_', 'e', 'd'] ['a', 'o', 'i', 'l', 's', 't', 'f', 'p', 'g', 'b']\n",
+ "flaw"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
- " ['_', 'o', 'k', 'e', 'd'] ['s', 'a', 'w', 'p', 't', 'r', 'h', 'b', 'y', 'c']\n"
+ " ['f', 'l', 'a', '_'] ['e', 's', 'o', 'r', 'y', 'g', 'k', 'x', 'p', 'n']\n"
]
}
],
- "prompt_number": 34
+ "prompt_number": 52
},
{
"cell_type": "code",
"output_type": "stream",
"stream": "stdout",
"text": [
- "0.9923\n"
+ "0.9936\n"
]
}
],
- "prompt_number": 35
+ "prompt_number": 53
},
{
"cell_type": "code",
"input": [],
"language": "python",
"metadata": {},
- "outputs": []
+ "outputs": [],
+ "prompt_number": 53
}
],
"metadata": {}