Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- HANGMANPICS = ['''
- +---+
- | |
- |
- |
- |
- |
- =========''', '''
- +---+
- | |
- O |
- |
- |
- |
- =========''', '''
- +---+
- | |
- O |
- | |
- |
- |
- =========''', '''
- +---+
- | |
- O |
- /| |
- |
- |
- =========''', '''
- +---+
- | |
- O |
- /|\ |
- |
- |
- =========''', '''
- +---+
- | |
- O |
- /|\ |
- / |
- |
- =========''', '''
- +---+
- | |
- O |
- /|\ |
- / \ |
- |
- =========''']
- def pick_word():
- """Return a random word from the word bank."""
- words = ["soccer", "summer", "windows", "lights", "nighttime", "desktop", "walk"]
- return random.choice(words)
- def print_hangman(secret, guesses):
- """Print the gallows, the man, and the blanked-out secret."""
- wrong_guesses = [guess for guess in guesses if not guess in secret]
- word_display = ' '.join(letter if letter in guesses else '_' for letter in secret)
- print(HANGMANPICS[len(wrong_guesses)])
- print()
- print(word_display)
- def guess(secret, guesses):
- """Prompt for a single letter, append it to guesses, and return the guess."""
- while True:
- letter = input("Pick a letter: ")
- if len(letter) != 1:
- print("Please enter only one letter.")
- elif letter not in 'abcdefghijklmnopqrstuvwxyz':
- print("Please guess a letter.")
- else:
- guesses.append(letter)
- return letter
- def won(secret, guesses):
- """Check whether the secret has been guessed."""
- right_guesses = [letter for letter in secret if letter in guesses]
- return len(right_guesses) >= len(secret)
- def hanged(secret, guesses):
- """Check whether too many guesses have been made."""
- wrong_guesses = [guess for guess in guesses if not guess in secret]
- return len(wrong_guesses) >= len(HANGMANPICS)
- def play_hangman():
- """Play one game of hangman. Return True if the player won."""
- secret = pick_word()
- guesses = []
- message = None
- while not hanged(secret, guesses):
- print_hangman(secret, guesses)
- if message is not None:
- print()
- print(message)
- new_guess = guess(secret, guesses)
- if won(secret, guesses):
- print("Congratulations! You won and got the word", secret)
- return True
- elif new_guess in secret:
- message = "Congratulations! {0} was found!".format(new_guess)
- else:
- message = "That letter is not in the word."
- print("Sorry you lost! The correct word was", secret)
- return False
- def play_again():
- while True:
- play_again = input("Would you like to play again: ");
- if play_again == "Y" or play_again == "y":
- print("Creating a new game...")
- return True
- elif play_again == "N" or play_again == "n":
- print("Thanks for playing, bye!")
- return False
- else:
- print("Error: Please choose either 'Y' or 'N'")
- while True:
- play_hangman()
- if not play_again():
- break
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement