-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmilestone_4.py
40 lines (38 loc) · 1.43 KB
/
milestone_4.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
import random
# class definition for hangman
class Hangman:
# hangman constructor
def __init__ (self, word_list, num_lives=5):
# attributes
self.word = random.choice(word_list)
self.word_guessed = ['_' for _ in self.word]
self.num_letters = len(set(self.word))
self.word_list = word_list
self.num_lives = num_lives
self.list_of_guesses = []
# methods
def check_guess(self, guess):
guess = guess.lower()
if guess in self.word:
print(f'Good guess! {guess} is in the word.')
for i in range(len(self.word)):
if self.word[i] == guess:
self.word_guessed[i] = guess
self.num_letters -= 1
else:
self.num_lives -= 1
print(f'Sorry, {guess} is not in the word')
print(f'You have {self.num_lives} lives left')
def ask_for_input(self):
while True:
guess = input('Guess a single letter: ')
if not (len(guess) == 1 and guess.isalpha()):
print("Invalid letter. Please, enter a single alphabetical character.")
elif guess in self.list_of_guesses:
print("You already tried that letter!")
else:
self.check_guess(guess)
self.list_of_guesses.append(guess)
# test the code
hangman = Hangman(['apple', 'banana', 'cherry'])
hangman.ask_for_input()