1
resposta

Projeto com problemas na execução

Olá, boa tarde a todos.

Eu executei o código e tive um problema (ele não acusa erro). Gostaria que me ajudasse, pois quando eu o executo ele não acha as letras das palavras e fica as tentativas até esgotá-las sem marcar nada. Eis o código:

import random

def jogar():
    print("*")
    print("Bem vindo ao jogo da Forca!")
    print("*")

    arquivo = open('palavras.txt', 'r')
    palavras = []

    for linha in arquivo:
        linha = linha.strip()
        palavras.append(linha)


    arquivo.close()

    numero = random.randrange(0,len(palavras))
    palavra_secreta = palavras[numero].lower()
    letras_acertadas = ["_" for letra in palavra_secreta]

    enforcou = False
    acertou = False
    erros = 0

    print(letras_acertadas)

    while(not enforcou and not acertou):

        chute = input("Qual letra? ")
        chute = chute.strip().upper()

        if(chute in palavra_secreta):
            index = 0
            for letra in palavra_secreta:
                if(chute == letra):
                    letras_acertadas[index] = letra
                index += 1
        else:
            erros += 1

        enforcou = erros == 6
        acertou = "_" not in letras_acertadas
        print(letras_acertadas)


    if(acertou):
        print("Você ganhou!!")
    else:
        print("Você perdeu!!")
    print("Fim do jogo")

if (__name__ == "__main__"):
    jogar()

Outra questão: geralmente eu uso o código do projeto pra verificar algumas coisas e comparar com meu código, mas infelizmente o link não está funcionado. O link: https://github.com/alura-cursos/Curso-Python-3-parte-2-Avan-ando-na-linguagem/archive/capitulo1.zip. Gostaria aproveitar para pedir o pessoal da alura arrumar, se possível, esse link. Antes me ajudava bastante conferir as modificações que fiz com o original do professor.

1 resposta

Rafael, tudo bem?

Nessa linha você transforma as letras em minúsculas: palavras[numero].lower()

Já nesta linha você tenta encontrar as letras transformando-as em maiúsculas: chute = chute.strip().upper()

Tente igualar essas duas tranformações (ou upper nas duas ou lower) e me fala se funcionou, beleza?