DEV Community

Cover image for My #100daysOfCode Challenge - Python 100 projects in 100 days - Journal Entries - Day 7
Anthony Beckford🚀
Anthony Beckford🚀

Posted on

My #100daysOfCode Challenge - Python 100 projects in 100 days - Journal Entries - Day 7

Day 7 - Hangman

main.py:

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
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.

from hangman_art import logo, stages

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 is not in the word")
    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])
Enter fullscreen mode Exit fullscreen mode

hangman_art.py

stages = ['''
+---+
| |
O |
/|\ |
/ \ |

|

''', '''
+---+
| |
O |
/|\ |
/ |

|

''', '''
+---+
| |
O |
/|\ |
|

|

''', '''
+---+
| |
O |
/| |
|
|
=========''', '''
+---+
| |
O |
| |
|

|

''', '''
+---+
| |
O |
|
|

|

''', '''
+---+
| |
|
|
|

|

''']

logo = '''
_

| |

| |__ __ _ _ __ __ _ _ __ ___ __ _ _ __

| '_ \ / ` | ' \ / ` | ' _ \ / _ | '_ \
| | | | (| | | | | (| | | | | | | (| | | | |
|
| ||_,|| ||_, || || ||_,|| ||
_
/ |

|___/ '''

hangman_words.py:

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',
]

Top comments (0)