Skip to content

zhassan2/Hangman

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 

Repository files navigation

Hangman

A simple hangman game using Python """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()

About

A simple hangman game using Python

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published