1
resposta

guess is not defined

Estou com um problema e precisava muito de ajuda.

import random


def play_hangman():

    welcome()
    secret_word = random_secret_word()
    guessed_letters = right_letters(secret_word)

    hanged = False
    got_it_right = False  # O jogo ainda não começou por isso deixamos "False"
    mistakes = 0

    while(not hanged and not got_it_right):  # Enquanto(True and True) = Enquanto(True)
        ask_guess()
        if (guess in secret_word):
            sets_the_right_guess(guess, secret_word, guessed_letters)
        else:
            mistakes += 1
            print(f"You made {mistakes} mistakes.")

        if (mistakes == 10):
            break

        got_it_right = "_" not in guessed_letters
        print(guessed_letters)

    if (got_it_right):
        print('You won!')
    else:
        print("You lost!")


# functions

def welcome():
    print("\n****************************")
    print("Welcome to the hangman game!")
    print("****************************")


def random_secret_word():
    file = open("words.txt", "r")
    words = []

    for line in file:  # cade linha representa uma palavra
        line = line.strip()
        words.append(line)

    file.close()

    number = random.randrange(0, len(words))
    secret_word = words[number].upper()
    return secret_word


def right_letters(secret_word):
    # para cada letra na palavra adicione no final da lista "_"
    return ["_" for letter in secret_word]


def ask_guess():
    guess = input("\nWhich Letter? ")
    guess = guess.strip().upper()
    return guess


def sets_the_right_guess(guess, secret_word, guessed_letters):
    index = 0
    # você não precisa declara explicitamente o tipo da variável que será utilizada no for como índice da execução.
    for letter in secret_word:
        if(guess == letter):
            guessed_letters[index] = letter
        index += 1


# run the file, since is in a "bigger one" AKA "all_games.py"
if(__name__ == "__main__"):  # usamos para poder rodar depois separadamente
    play_hangman()

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

1 resposta

Olá,

a variável guess não foi declarada/inicializada antes da utilização em:

if (guess in secret_word):

Exemplo:

>>> p = 'palavra'
>>> i in p
Traceback (most recent call last):
  File "<input>", line 1, in <module>
NameError: name 'i' is not defined
>>> i = 'a'
>>> i in p
True

[]'s