From 4e885cb919ecd4484249b3b004ec1bbb3fff4eb3 Mon Sep 17 00:00:00 2001 From: Mueez Khan <30333942+rzmk@users.noreply.github.com> Date: Sat, 9 Jan 2021 08:28:43 -0500 Subject: [PATCH] Created a hangman game! Focuses: - Modules - Traversing lists - Loops Art and words from course. --- Day 7/hangman_art.py | 69 +++++++++++++ Day 7/hangman_words.py | 215 +++++++++++++++++++++++++++++++++++++++++ Day 7/main.py | 50 ++++++++++ 3 files changed, 334 insertions(+) create mode 100644 Day 7/hangman_art.py create mode 100644 Day 7/hangman_words.py create mode 100644 Day 7/main.py diff --git a/Day 7/hangman_art.py b/Day 7/hangman_art.py new file mode 100644 index 0000000..0854df5 --- /dev/null +++ b/Day 7/hangman_art.py @@ -0,0 +1,69 @@ +stages = [''' + +---+ + | | + O | + /|\ | + / \ | + | +========= +''', ''' + +---+ + | | + O | + /|\ | + / | + | +========= +''', ''' + +---+ + | | + O | + /|\ | + | + | +========= +''', ''' + +---+ + | | + O | + /| | + | + | +=========''', ''' + +---+ + | | + O | + | | + | + | +========= +''', ''' + +---+ + | | + O | + | + | + | +========= +''', ''' + +---+ + | | + | + | + | + | +========= +'''] + +logo = ''' + _ +| | +| |__ __ _ _ __ __ _ _ __ ___ __ _ _ __ +| '_ \ / _` | '_ \ / _` | '_ ` _ \ / _` | '_ \ +| | | | (_| | | | | (_| | | | | | | (_| | | | | +|_| |_|\__,_|_| |_|\__, |_| |_| |_|\__,_|_| |_| + __/ | + |___/ ''' + + + \ No newline at end of file diff --git a/Day 7/hangman_words.py b/Day 7/hangman_words.py new file mode 100644 index 0000000..fdf6b72 --- /dev/null +++ b/Day 7/hangman_words.py @@ -0,0 +1,215 @@ +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', +] \ No newline at end of file diff --git a/Day 7/main.py b/Day 7/main.py new file mode 100644 index 0000000..0533f6c --- /dev/null +++ b/Day 7/main.py @@ -0,0 +1,50 @@ +import random +import hangman_words +import hangman_art + +word_list = hangman_words.word_list + +chosen_word = random.choice(word_list) +word_length = len(chosen_word) + +end_of_game = False +lives = 6 + +print(hangman_art.logo) +print(hangman_art.stages[6]) +#Testing code + +#Create blanks +display = [] +for _ in range(word_length): + display += "_" + +print(display) + +while not end_of_game: + guess = input("Guess a letter: ").lower() + if guess in display: + print(f"You already guessed the letter {guess}.") + #Check guessed letter + for position in range(word_length): + letter = chosen_word[position] + if letter == guess: + display[position] = letter + + if guess not in chosen_word: + print(f"The letter {guess} is not in the hidden 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.") + + print(hangman_art.stages[lives]) +print(f"\nThe word was {chosen_word}.") \ No newline at end of file