Last active
December 20, 2021 03:31
-
-
Save Jithender5913/441d9aa1f5db9060767066ae5a7974c2 to your computer and use it in GitHub Desktop.
The Hangman project
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| stages = [''' | |
| +---+ | |
| | | | |
| O | | |
| /|\ | | |
| / \ | | |
| | | |
| ========= | |
| ''', ''' | |
| +---+ | |
| | | | |
| O | | |
| /|\ | | |
| / | | |
| | | |
| ========= | |
| ''', ''' | |
| +---+ | |
| | | | |
| O | | |
| /|\ | | |
| | | |
| | | |
| ========= | |
| ''', ''' | |
| +---+ | |
| | | | |
| O | | |
| /| | | |
| | | |
| | | |
| =========''', ''' | |
| +---+ | |
| | | | |
| O | | |
| | | | |
| | | |
| | | |
| ========= | |
| ''', ''' | |
| +---+ | |
| | | | |
| O | | |
| | | |
| | | |
| | | |
| ========= | |
| ''', ''' | |
| +---+ | |
| | | | |
| | | |
| | | |
| | | |
| | | |
| ========= | |
| '''] | |
| word_list = [ | |
| 'abruptly', | |
| 'absurd', | |
| 'abyss', | |
| 'affix', | |
| 'askew', | |
| 'avenue', | |
| 'awkward', | |
| 'axiom', | |
| 'azure', | |
| 'bagpipes', | |
| 'bandwagon', | |
| 'banjo', | |
| 'bayou', | |
| 'beekeeper', | |
| 'bikini', | |
| 'blitz', | |
| 'blizzard', | |
| 'boggle', | |
| 'bookworm', | |
| 'boxcar', | |
| 'boxful', | |
| 'buckaroo', | |
| 'buffalo', | |
| 'buffoon', | |
| 'buxom', | |
| 'buzzard', | |
| 'buzzing', | |
| 'buzzwords', | |
| 'caliph', | |
| 'cobweb', | |
| 'cockiness', | |
| 'croquet', | |
| 'crypt', | |
| 'curacao', | |
| 'cycle', | |
| 'daiquiri', | |
| 'dirndl', | |
| 'disavow', | |
| 'dizzying', | |
| 'duplex', | |
| 'dwarves', | |
| 'embezzle', | |
| 'equip', | |
| 'espionage', | |
| 'euouae', | |
| 'exodus', | |
| 'faking', | |
| 'fishhook', | |
| 'fixable', | |
| 'fjord', | |
| 'flapjack', | |
| 'flopping', | |
| 'fluffiness', | |
| 'flyby', | |
| 'foxglove', | |
| 'frazzled', | |
| 'frizzled', | |
| 'fuchsia', | |
| 'funny', | |
| 'gabby', | |
| 'galaxy', | |
| 'galvanize', | |
| 'gazebo', | |
| 'giaour', | |
| 'gizmo', | |
| 'glowworm', | |
| 'glyph', | |
| 'gnarly', | |
| 'gnostic', | |
| 'gossip', | |
| 'grogginess', | |
| 'haiku', | |
| 'haphazard', | |
| 'hyphen', | |
| 'iatrogenic', | |
| 'icebox', | |
| 'injury', | |
| 'ivory', | |
| 'ivy', | |
| 'jackpot', | |
| 'jaundice', | |
| 'jawbreaker', | |
| 'jaywalk', | |
| 'jazziest', | |
| 'jazzy', | |
| 'jelly', | |
| 'jigsaw', | |
| 'jinx', | |
| 'jiujitsu', | |
| 'jockey', | |
| 'jogging', | |
| 'joking', | |
| 'jovial', | |
| 'joyful', | |
| 'juicy', | |
| 'jukebox', | |
| 'jumbo', | |
| 'kayak', | |
| 'kazoo', | |
| 'keyhole', | |
| 'khaki', | |
| 'kilobyte', | |
| 'kiosk', | |
| 'kitsch', | |
| 'kiwifruit', | |
| 'klutz', | |
| 'knapsack', | |
| 'larynx', | |
| 'lengths', | |
| 'lucky', | |
| 'luxury', | |
| 'lymph', | |
| 'marquis', | |
| 'matrix', | |
| 'megahertz', | |
| 'microwave', | |
| 'mnemonic', | |
| 'mystify', | |
| 'naphtha', | |
| 'nightclub', | |
| 'nowadays', | |
| 'numbskull', | |
| 'nymph', | |
| 'onyx', | |
| 'ovary', | |
| 'oxidize', | |
| 'oxygen', | |
| 'pajama', | |
| 'peekaboo', | |
| 'phlegm', | |
| 'pixel', | |
| 'pizazz', | |
| 'pneumonia', | |
| 'polka', | |
| 'pshaw', | |
| 'psyche', | |
| 'puppy', | |
| 'puzzling', | |
| 'quartz', | |
| 'queue', | |
| 'quips', | |
| 'quixotic', | |
| 'quiz', | |
| 'quizzes', | |
| 'quorum', | |
| 'razzmatazz', | |
| 'rhubarb', | |
| 'rhythm', | |
| 'rickshaw', | |
| 'schnapps', | |
| 'scratch', | |
| 'shiv', | |
| 'snazzy', | |
| 'sphinx', | |
| 'spritz', | |
| 'squawk', | |
| 'staff', | |
| 'strength', | |
| 'strengths', | |
| 'stretch', | |
| 'stronghold', | |
| 'stymied', | |
| 'subway', | |
| 'swivel', | |
| 'syndrome', | |
| 'thriftless', | |
| 'thumbscrew', | |
| 'topaz', | |
| 'transcript', | |
| 'transgress', | |
| 'transplant', | |
| 'triphthong', | |
| 'twelfth', | |
| 'twelfths', | |
| 'unknown', | |
| 'unworthy', | |
| 'unzip', | |
| 'uptown', | |
| 'vaporize', | |
| 'vixen', | |
| 'vodka', | |
| 'voodoo', | |
| 'vortex', | |
| 'voyeurism', | |
| 'walkway', | |
| 'waltz', | |
| 'wave', | |
| 'wavy', | |
| 'waxy', | |
| 'wellspring', | |
| 'wheezy', | |
| 'whiskey', | |
| 'whizzing', | |
| 'whomever', | |
| 'wimpy', | |
| 'witchcraft', | |
| 'wizard', | |
| 'woozy', | |
| 'wristwatch', | |
| 'wyvern', | |
| 'xylophone', | |
| 'yachtsman', | |
| 'yippee', | |
| 'yoked', | |
| 'youthful', | |
| 'yummy', | |
| 'zephyr', | |
| 'zigzag', | |
| 'zigzagging', | |
| 'zilch', | |
| 'zipper', | |
| 'zodiac', | |
| 'zombie', | |
| ] | |
| # Step 5 | |
| # import random | |
| # TODO-1: - Update the word list to use the 'word_list' from hangman_words.py | |
| # Delete this line: word_list = ["ardvark", "baboon", "camel"] | |
| # from hangman_words import word_list | |
| # import hangman_words | |
| chosen_word = random.choice(word_list) | |
| word_length = len(chosen_word) | |
| end_of_game = False | |
| lives = 6 | |
| # TODO-3: - Import the logo from hangman_art.py and print it at the start of the game. | |
| stages = [''' | |
| +---+ | |
| | | | |
| O | | |
| /|\ | | |
| / \ | | |
| | | |
| ========= | |
| ''', ''' | |
| +---+ | |
| | | | |
| O | | |
| /|\ | | |
| / | | |
| | | |
| ========= | |
| ''', ''' | |
| +---+ | |
| | | | |
| O | | |
| /|\ | | |
| | | |
| | | |
| ========= | |
| ''', ''' | |
| +---+ | |
| | | | |
| O | | |
| /| | | |
| | | |
| | | |
| =========''', ''' | |
| +---+ | |
| | | | |
| O | | |
| | | | |
| | | |
| | | |
| ========= | |
| ''', ''' | |
| +---+ | |
| | | | |
| O | | |
| | | |
| | | |
| | | |
| ========= | |
| ''', ''' | |
| +---+ | |
| | | | |
| | | |
| | | |
| | | |
| | | |
| ========= | |
| '''] | |
| logo = ''' | |
| _ | |
| | | | |
| | |__ __ _ _ __ __ _ _ __ ___ __ _ _ __ | |
| | '_ \ / _` | '_ \ / _` | '_ ` _ \ / _` | '_ \ | |
| | | | | (_| | | | | (_| | | | | | | (_| | | | | | |
| |_| |_|\__,_|_| |_|\__, |_| |_| |_|\__,_|_| |_| | |
| __/ | | |
| |___/ ''' | |
| # from hangman_art import logo | |
| print(logo) | |
| # Testing code | |
| # print(f'Pssst, the solution is {chosen_word}.') | |
| # Create blanks | |
| display = [] | |
| for _ in range(word_length): | |
| display += "_" | |
| while not end_of_game: | |
| guess = input("Guess a letter: ").lower() | |
| # TODO-4: - If the user has entered a letter they've already guessed, print the letter and let them know. | |
| if guess in display: | |
| print(f"You've already guessed {guess}") | |
| # Check guessed letter | |
| for position in range(word_length): | |
| letter = chosen_word[position] | |
| # print(f"Current position: {position}\n Current letter: {letter}\n Guessed letter: {guess}") | |
| if letter == guess: | |
| display[position] = letter | |
| # Check if user is wrong. | |
| if guess not in chosen_word: | |
| # TODO-5: - If the letter is not in the chosen_word, print out the letter and let them know it's not in the | |
| # word. | |
| print(f"You guessed {guess}, that's not in the word. You lose a life.") | |
| lives -= 1 | |
| if lives == 0: | |
| end_of_game = True | |
| print("You lose.") | |
| # Join all the elements in the list and turn it into a String. | |
| print(f"{' '.join(display)}") | |
| # Check if user has got all letters. | |
| if "_" not in display: | |
| end_of_game = True | |
| print("You win.") | |
| # TODO-2: - Import the stages from hangman_art.py and make this error go away. | |
| # from hangman_art import stages | |
| print(stages[lives]) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment