DEV Community

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

Posted on

1

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

Sentry image

Hands-on debugging session: instrument, monitor, and fix

Join Lazar for a hands-on session where you’ll build it, break it, debug it, and fix it. You’ll set up Sentry, track errors, use Session Replay and Tracing, and leverage some good ol’ AI to find and fix issues fast.

RSVP here →

Top comments (0)

A Workflow Copilot. Tailored to You.

Pieces.app image

Our desktop app, with its intelligent copilot, streamlines coding by generating snippets, extracting code from screenshots, and accelerating problem-solving.

Read the docs

👋 Kindness is contagious

Please leave a ❤️ or a friendly comment on this post if you found it helpful!

Okay