Welcome to the Treehouse Community

Want to collaborate on code errors? Have bugs you need feedback on? Looking for an extra set of eyes on your latest project? Get support with fellow developers, designers, and programmers of all backgrounds and skill levels here with the Treehouse Community! While you're at it, check out some resources Treehouse students have shared here.

Looking to learn something new?

Treehouse offers a seven day free trial for new students. Get access to thousands of hours of content and join thousands of Treehouse students and alumni in the community today.

Start your free trial

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

Hinh Phan
Hinh Phan
2,564 Points

I can't run the code. Please lead me out!

import sys
import os
import random

#make a list of words
wordstea = [
    'blue' ,
    'green' ,
    'black' ,
    'bean' ,
    'sean' ,
    'yellow',
    'white' ,
    'purple' , 
    'melon' ,
    'lemon'
]

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

def draw(bad_guesses, good_guesses, secret_word):
    clear()
    while True:
        print('')
        print('Strikes: {}/8.'.format(len(bad_guesses)))
        print('')

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

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

    print(' ')        



def get_guesses(bad_guesses, good_guesses):
    while True:
        guess = input("Guess the secret words: ").lower()

        if len(guess) != 1:
            print("You can only guess 1 word")
        elif guess in bad_guesses or guess in good_guesses:
            print("You can only guess the letter one time")
        elif not guess.isalpha():
            print("You can only guess the letter in alphabet order")
        else:
            return guess


def play(done):
    clear()
    secret_word = random.choice(wordstea)
    bad_guesses = []
    good_guesses = []

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

        if good_guesses in secret_word:
            good_guesses.append(guess)
            found = True
            for letter in secret_word:
                if letter not in good_guesses:
                    found = False
        if found:
            print("You win")
            print("My word was{}".format(secret_word))
            done = True
        else:
            bad_guesses.append(guess)
            if len(bad_guesses) == 8:
                draw(bad_guesses, good_guesses, secret_word)
                print("You lost")
                done = True

        if done:
            play_again = input("Do you want to play again? Y/n ").lower()
            if play_again != 'n':
                return play(done=False)
            else:                   
                sys.exit()

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

print("Wellcome")

done = False        

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