Python Python Basics (2015) Letter Game App Letter Game Refinement

Shaun Jensen
Shaun Jensen
Pro Student 3,020 Points

having trouble with getting a couple of errors

getting a couple of errors in the letter_game Traceback (most recent call last): File "", line 112, in <module> play (done) File "", line 68, in play draw(bad_guesses, good_guesses, secret_word) here is my code

import os import random import sys

make a list of words

words = [ 'apple', 'banana', 'orange', 'coconut', 'strawberry', 'lime', 'grapefruit', 'lemon', 'kumquat', 'blueberry', 'melon' ]

def clear(): if == 'nt': os.system('cls') else: os.system('clear')

def draw(bad_guesses, good_guesses, secret_word): clear()

print('Strikes: {}/7'.format(len(bad_guesses)))

for letter in bad_guesses:
    print(letter, end=' ')

for letter in secret_word:
    if letter in good_guesses:
        print(letter, end='')
        print('_', end='')


def get_guess(bad_guesses, good_guesses): while True: guess = input("Guess a letter: ").lower()

    if len(guess) != 1:
        print("You can only guess a single letter!")            
    elif guess in bad_guesses or guess in good_guesses:
        ("You've already guessed that letter!")            
    elif not guess.isalpha():
        print("You can only guess letters!")            
        return guess

def play(done): clear() secre_word = random.choice(words) bad_guesses = [] good_guesses = []

while True:
    draw(bad_guesses, good_guesses, secret_word)
    guess = get_guess(bad_guesses, good_guesses)

    if guess in secret_word:
        found = True
        for letter in secret_word:
            if letter not in good_guesses:
                found = False
        if found:
            print("You win!")
            print("The secret word was {}".format(secret_word))
            done = True
        if len(bad_guesses) == 7:
            draw(bad_guesses, good_guesses, secret_word)
            print("You lost!")
            print("The secret word was {}".format(secret_word))
            done = True

    if done:
        play_again = input("Play again? Y/n ").lower()
        if play_again != 'n':
            return play(done=False)

def welcome(): start = input("Press enter/return to start or Q to quit ").lower() if start == 'q': print("Bye!") sys.exit() else: return True

print("Welcome to Letter Guess!")

done = False

while True: clear() welcome() play(done)

would appreciate the help :)

1 Answer

Justin Black
Justin Black
24,266 Points

First thing I notice is:

secre_word = random.choice(words)

which should be:

secret_word = random.choice(words)

At a first glance, pretty sure it all boils down to that one simple typo.