-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathhangman.py
108 lines (88 loc) · 1.97 KB
/
hangman.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
import random as rng
import re
stages = [
""" +----+
|
|
|
|
|
============""",
""" +----+
| |
|
|
|
|
============""",
""" +----+
| |
O |
|
|
|
============""",
""" +----+
| |
O |
| |
|
|
============""",
""" +----+
| |
O |
/| |
|
|
============""",
""" +----+
| |
O |
/|\ |
|
|
============""",
""" +----+
| |
O |
/|\ |
/ |
|
============""",
""" +----+
| |
O |
/|\ |
/ \ |
|
============"""]
guess_words = ['banana', 'computer', 'elephant', 'guitar', 'kangaroo', 'library',
'microphone', 'octopus', 'pizza', 'rainbow', 'saxophone', 'telephone',
'umbrella', 'volleyball', 'watermelon', 'xylophone', 'yogurt', 'zebra', 'airplane', 'basketball'
]
guesses = 0
wrong_guesses = []
word_index = rng.randrange(0, len(guess_words))
selected_word = guess_words[word_index]
word_to_guess = "_" * len(selected_word)
while True:
print(stages[guesses])
print(word_to_guess)
guess = input("Enter your guess: ")
if guess in selected_word:
indexes = [m.start() for m in re.finditer(guess, selected_word)]
word_to_guess_list = list(word_to_guess)
for i in indexes:
word_to_guess_list[i] = guess
word_to_guess = "".join(word_to_guess_list)
if "_" not in word_to_guess:
print("Congratulations! You guessed the word.")
break
else:
wrong_guesses.append(guess)
print("Wrong guesses: ", wrong_guesses)
guesses += 1
if guesses == len(stages):
print("You ran out of guesses. The word was:", selected_word)
break