Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Os inputs e letras não aparecem mais

Fala pessoal! Tudo bem?

Uma ajuda aqui. Até a aula 1 do módulo 5 o meu jogo da forca funcionava bem (dentro dos parâmetros e códigos inseridos até então pelo instrutor Nico, obviamente).

Mas daí, seguindo a sequência didática do vídeo, inseri o código de "erros" e "enforcou" e aí o jogo não funcionou mais, não aparecendo nem as letras nos respectivos espaços. O que será que houve? Seguem o print e o código escrito

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

E o código:


def jogar():

    print("*********************************")
    print("***Bem-vindo ao jogo da Forca!***")
    print("*********************************")

    palavra_secreta = "bacana"
    letras_acertadas = ["_","_","_","_","_","_"]

    enforcou = False
    acertou = False
    erros = 0
    print(letras_acertadas)

    while(not enforcou and not acertou):
        chute = input("Qual a letra? ")
        chute = chute.strip()

    if(chute in palavra_secreta):
        index=0
        for letra in palavra_secreta:
            if (chute.upper()==letra.upper()):
                letras_acertadas[index] = letra
            index=index+1
    else:
        erros = erros + 1
    enforcou = erros == 6
    print (letras_acertadas)


    print ("Fim de jogo")

if(__name__ == "__main__"):
    jogar()
2 respostas
solução!

Olá Nicholas, tudo bem com você?

O comportamento apresentado está acontecendo devido à indentação (espaçamento) do código. O código responsável pela verificação do chute do usuário e a letra, está fora do laço while, dessa forma ele não está sendo executado.

Para realizar a correção, basta seguir os passos abaixo:

  • Abra seu projeto no editor de código
  • Selecione da linha if(chute in palavra_secreta): até a linha print (letras_acertadas)
  • Pressione uma vez . Assim esse bloco de código será adicionado ao laço de repetição while
  • Salve o arquivo e execute-o

Código com a modificação aplicada

def jogar():

    print("*********************************")
    print("***Bem-vindo ao jogo da Forca!***")
    print("*********************************")

    palavra_secreta = "bacana"
    letras_acertadas = ["_","_","_","_","_","_"]

    enforcou = False
    acertou = False
    erros = 0
    print(letras_acertadas)

    while(not enforcou and not acertou):
        chute = input("Qual a letra? ")
        chute = chute.strip()

        if(chute in palavra_secreta):
            index=0
            for letra in palavra_secreta:
                if (chute.upper()==letra.upper()):
                    letras_acertadas[index] = letra
                index=index+1
        else:
            erros = erros + 1
        enforcou = erros == 6
        print (letras_acertadas)


    print ("Fim de jogo")

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

Espero ter lhe ajudado. Em caso de dúvidas estou à disposição.

Não hesite em voltar ao fórum para continuar aprendendo e interagindo com a comunidade.

Abraços e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!

Ah! Caramba! uma coisa tão simples e olha que refiz as identações vi o vídeo umas 2 ou 3x e nada! Acho que foi o cansaço!

Valeu pela resposta!

Abraços