4 "signature": "sha256:44071c1a95bc0678534109dd2aa9b1d6318c87aa5048ca952603795efd142b14"
27 "WORDS = [w.strip() for w in open('/usr/share/dict/british-english').readlines() \n",
28 " if re.match(r'^[a-z]*$', w.strip())]"
51 " def __init__(self, target, lives=STARTING_LIVES):\n",
52 " self.lives = lives\n",
53 " self.target = target\n",
54 " self.discovered = list('_' * len(target))\n",
55 " self.wrong_letters = []\n",
56 " self.game_finished = False\n",
57 " self.game_won = False\n",
58 " self.game_lost = False\n",
60 " def find_all(self, letter):\n",
63 " location = self.target.find(letter)\n",
64 " while location > -1:\n",
65 " locations += [location]\n",
66 " starting = location + 1\n",
67 " location = self.target.find(letter, starting)\n",
68 " return locations\n",
70 " def update_discovered_word(self, guessed_letter):\n",
71 " locations = self.find_all(guessed_letter)\n",
72 " for location in locations:\n",
73 " self.discovered[location] = guessed_letter\n",
74 " return self.discovered\n",
76 " def do_turn(self):\n",
77 " print('Word:', ' '.join(self.discovered), \n",
78 " ' : Lives =', self.lives, \n",
79 " ', wrong guesses:', ' '.join(sorted(self.wrong_letters)))\n",
80 " guess = input('Enter letter: ').strip().lower()[0]\n",
81 " if guess in self.target:\n",
82 " self.update_discovered_word(guess)\n",
85 " if guess not in self.wrong_letters:\n",
86 " self.wrong_letters += [guess]\n",
87 " if self.lives == 0:\n",
88 " self.game_finished = True\n",
89 " self.game_lost = True\n",
90 " if '_' not in self.discovered:\n",
91 " self.game_finished = True\n",
92 " self.game_won = True\n",
94 " def play_game(self):\n",
96 " while not self.game_finished:\n",
98 " return self.game_won\n",
100 " def report_on_game(self):\n",
101 " if self.game_won:\n",
102 " print('You won! The word was', self.target)\n",
104 " print('You lost. The word was', self.target)\n",
105 " return self.game_won\n",
107 " def play_game_with_report(self):\n",
108 " self.play_game()\n",
109 " self.report_on_game()"
111 "language": "python",
120 "g = Game(random.choice(WORDS))"
122 "language": "python",
133 "language": "python",
138 "output_type": "pyout",
153 "language": "python",
158 "output_type": "pyout",
161 "['_', '_', '_', '_', '_', '_']"
173 "language": "python",
177 "output_type": "stream",
180 "Word: _ _ _ _ _ _ : Lives = 10 , wrong guesses: \n"
185 "output_type": "stream",
200 "language": "python",
205 "output_type": "pyout",
220 "language": "python",
225 "output_type": "pyout",
240 "language": "python",
244 "output_type": "stream",
247 "Word: _ _ _ _ _ _ : Lives = 9 , wrong guesses: x\n"
252 "output_type": "stream",
267 "language": "python",
272 "output_type": "pyout",
287 "language": "python",
292 "output_type": "pyout",
295 "['_', 'o', 'o', '_', '_', '_']"
307 "language": "python",
312 "output_type": "pyout",
325 "g = Game(random.choice(WORDS))\n",
326 "g.play_game_with_report()"
328 "language": "python",
332 "output_type": "stream",
335 "Word: _ _ _ _ _ _ _ _ _ _ : Lives = 10 , wrong guesses: \n"
340 "output_type": "stream",
347 "output_type": "stream",
350 "Word: _ _ _ _ _ _ _ _ _ _ : Lives = 9 , wrong guesses: e\n"
355 "output_type": "stream",
362 "output_type": "stream",
365 "Word: _ a _ _ _ _ a _ _ _ : Lives = 9 , wrong guesses: e\n"
370 "output_type": "stream",
377 "output_type": "stream",
380 "Word: _ a _ _ _ _ a _ t _ : Lives = 9 , wrong guesses: e\n"
385 "output_type": "stream",
392 "output_type": "stream",
395 "Word: _ a _ _ _ _ a _ t _ : Lives = 8 , wrong guesses: e o\n"
400 "output_type": "stream",
407 "output_type": "stream",
410 "Word: _ a _ _ _ _ a _ t _ : Lives = 7 , wrong guesses: e h o\n"
415 "output_type": "stream",
422 "output_type": "stream",
425 "Word: _ a _ _ _ _ a _ t s : Lives = 7 , wrong guesses: e h o\n"
430 "output_type": "stream",
437 "output_type": "stream",
440 "Word: _ a _ _ _ _ a _ t s : Lives = 6 , wrong guesses: e h o r\n"
445 "output_type": "stream",
452 "output_type": "stream",
455 "Word: _ a _ _ _ _ a _ t s : Lives = 5 , wrong guesses: d e h o r\n"
460 "output_type": "stream",
467 "output_type": "stream",
470 "Word: _ a l l _ _ a _ t s : Lives = 5 , wrong guesses: d e h o r\n"
475 "output_type": "stream",
482 "output_type": "stream",
485 "Word: _ a l l _ _ a _ t s : Lives = 4 , wrong guesses: d e f h o r\n"
490 "output_type": "stream",
497 "output_type": "stream",
500 "Word: _ a l l _ _ a n t s : Lives = 4 , wrong guesses: d e f h o r\n"
505 "output_type": "stream",
512 "output_type": "stream",
515 "Word: g a l l _ _ a n t s : Lives = 4 , wrong guesses: d e f h o r\n"
520 "output_type": "stream",
527 "output_type": "stream",
530 "Word: g a l l i _ a n t s : Lives = 4 , wrong guesses: d e f h o r\n"
535 "output_type": "stream",
542 "output_type": "stream",
545 "You won! The word was gallivants\n"
555 "g = Game(random.choice(WORDS))\n",
558 "language": "python",
562 "output_type": "stream",
565 "Word: _ _ _ _ _ _ _ _ : Lives = 10 , wrong guesses: \n"
570 "output_type": "stream",
577 "output_type": "stream",
580 "Word: _ _ _ e e _ _ _ : Lives = 10 , wrong guesses: \n"
585 "output_type": "stream",
592 "output_type": "stream",
595 "Word: _ _ _ e e _ _ _ : Lives = 9 , wrong guesses: a\n"
600 "output_type": "stream",
607 "output_type": "stream",
610 "Word: _ _ _ e e i _ _ : Lives = 9 , wrong guesses: a\n"
615 "output_type": "stream",
622 "output_type": "stream",
625 "Word: _ _ _ e e i n _ : Lives = 9 , wrong guesses: a\n"
630 "output_type": "stream",
637 "output_type": "stream",
640 "Word: _ _ _ e e i n g : Lives = 9 , wrong guesses: a\n"
645 "output_type": "stream",
652 "output_type": "stream",
655 "Word: _ _ _ e e i n g : Lives = 8 , wrong guesses: a u\n"
660 "output_type": "stream",
667 "output_type": "stream",
670 "Word: s _ _ e e i n g : Lives = 8 , wrong guesses: a u\n"
675 "output_type": "stream",
682 "output_type": "stream",
685 "Word: s _ _ e e i n g : Lives = 7 , wrong guesses: a h u\n"
690 "output_type": "stream",
697 "output_type": "stream",
700 "Word: s _ _ e e i n g : Lives = 6 , wrong guesses: a c h u\n"
705 "output_type": "stream",
712 "output_type": "stream",
715 "Word: s _ _ e e i n g : Lives = 5 , wrong guesses: a c h t u\n"
720 "output_type": "stream",
727 "output_type": "stream",
730 "Word: s _ r e e i n g : Lives = 5 , wrong guesses: a c h t u\n"
735 "output_type": "stream",
742 "output_type": "stream",
745 "Word: s _ r e e i n g : Lives = 4 , wrong guesses: a c h t u\n"
750 "output_type": "stream",
758 "output_type": "pyout",
773 "language": "python",
778 "output_type": "pyout",
791 "language": "python",