Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- """Hangman
- Standard game of Hangman. A word is chosen at random from a list and the
- user must guess the word letter by letter before running out of attempts."""
- import random
- def main():
- welcome = ['Welcome to Hangman! A word will be chosen at random and',
- 'you must try to guess the word correctly letter by letter',
- 'before you run out of attempts. Good luck!'
- ]
- for line in welcome:
- print(line, sep='n')
- # setting up the play_again loop
- play_again = True
- while play_again:
- # set up the game loop
- words = ["hangman", "chairs", "backpack", "bodywash", "clothing",
- "computer", "python", "program", "glasses", "sweatshirt",
- "sweatpants", "mattress", "friends", "clocks", "biology",
- "algebra", "suitcase", "knives", "ninjas", "shampoo"
- ]
- chosen_word = random.choice(words).lower()
- player_guess = None # will hold the players guess
- guessed_letters = [] # a list of letters guessed so far
- word_guessed = []
- for letter in chosen_word:
- word_guessed.append("-") # create an unguessed, blank version of the word
- joined_word = None # joins the words in the list word_guessed
- HANGMAN = (
- """
- -----
- | |
- |
- |
- |
- |
- |
- |
- |
- --------
- """,
- """
- -----
- | |
- | 0
- |
- |
- |
- |
- |
- |
- --------
- """,
- """
- -----
- | |
- | 0
- | -+-
- |
- |
- |
- |
- |
- --------
- """,
- """
- -----
- | |
- | 0
- | /-+-
- |
- |
- |
- |
- |
- --------
- """,
- """
- -----
- | |
- | 0
- | /-+-
- |
- |
- |
- |
- |
- --------
- """,
- """
- -----
- | |
- | 0
- | /-+-
- | |
- |
- |
- |
- |
- --------
- """,
- """
- -----
- | |
- | 0
- | /-+-
- | |
- | |
- |
- |
- |
- --------
- """,
- """
- -----
- | |
- | 0
- | /-+-
- | |
- | |
- | |
- |
- |
- --------
- """,
- """
- -----
- | |
- | 0
- | /-+-
- | |
- | |
- | |
- | |
- |
- --------
- """,
- """
- -----
- | |
- | 0
- | /-+-
- | |
- | |
- | | |
- | |
- |
- --------
- """,
- """
- -----
- | |
- | 0
- | /-+-
- | |
- | |
- | | |
- | | |
- |
- --------
- """)
- print(HANGMAN[0])
- attempts = len(HANGMAN) - 1
- while (attempts != 0 and "-" in word_guessed):
- print(("nYou have {} attempts remaining").format(attempts))
- joined_word = "".join(word_guessed)
- print(joined_word)
- try:
- player_guess = str(input("nPlease select a letter between A-Z" + "n> ")).lower()
- except: # check valid input
- print("That is not valid input. Please try again.")
- continue
- else:
- if not player_guess.isalpha(): # check the input is a letter. Also checks an input has been made.
- print("That is not a letter. Please try again.")
- continue
- elif len(player_guess) > 1: # check the input is only one letter
- print("That is more than one letter. Please try again.")
- continue
- elif player_guess in guessed_letters: # check it letter hasn't been guessed already
- print("You have already guessed that letter. Please try again.")
- continue
- else:
- pass
- guessed_letters.append(player_guess)
- for letter in range(len(chosen_word)):
- if player_guess == chosen_word[letter]:
- word_guessed[letter] = player_guess # replace all letters in the chosen word that match the players guess
- if player_guess not in chosen_word:
- attempts -= 1
- print(HANGMAN[(len(HANGMAN) - 1) - attempts])
- if "-" not in word_guessed: # no blanks remaining
- print(("nCongratulations! {} was the word").format(chosen_word))
- else: # loop must have ended because attempts reached 0
- print(("nUnlucky! The word was {}.").format(chosen_word))
- print("nWould you like to play again?")
- response = input("> ").lower()
- if response not in ("yes", "y"):
- play_again = False
- if __name__ == "__main__":
- main()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement