Skip to content

Commit

Permalink
Update README.md and create milestone_4.py. This contains the class H…
Browse files Browse the repository at this point in the history
…angman
  • Loading branch information
B-M-S-West committed Nov 6, 2023
1 parent d9a055c commit d12bc78
Show file tree
Hide file tree
Showing 2 changed files with 44 additions and 1 deletion.
5 changes: 4 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,4 +7,7 @@ Project Title:
Hangman

Description:
A project to produce the game of hangman using Python
A project to produce the game of hangman using Python
milestone_2.py - file that runs through the list of words and takes and checks a user input
milestone_3.py - file that defines two functions to check user input and then see if it's in the word
milestone_4.py - file that creates the Hangman class and then builds on the functionality of the above two files and cleans up the code
40 changes: 40 additions & 0 deletions milestone_4.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,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()

0 comments on commit d12bc78

Please sign in to comment.