Hangman Game in Python

4

I'm doing a hangman game in Python. Every loop the program asks the letter or the word:

#Jogo
perguntarNovamente = True
game_on = True
while game_on:
    palavra_secreta = palavra()
    senha_list = [l for l in palavra_secreta]
    chances = 6
    tentativas = []
    #Esconder palavra
    for i in range(101):
        print()
    print (senha_list) #APENAS PARA TESTE
    #Começo do jogo
    while perguntarNovamente:
        print("A palavra:","_ "*len(senha_list))
        erros = 0
        desenho(erros)
        an = input("Digite uma letra(ou a palavra): ")
        if an == palavra_secreta:
            print("Parabéns você acertou!!")
            break
        elif an not in(senha_list):
            if an in(tentativas):
                print("Você já tentou essa letra!")
                continue
            else:
                print("Não há essa letra na palavra!")
                tentativas.append(an)
                erros +=1
                continue
        else:
            print("Você acertou uma letra!")
            tentativas.append(an)
            continue
    break

Each time the player throws a wrong letter the variable erros increases by 1, so I use it as a parameter to call the desenho function that draws the strength and the dummy according to the number of errors:

/ p>

def desenho(erros):
if erros == 0:
    print()
    print("|----- ")
    print("|    | ")
    print("|      ")
    print("|      ")
    print("|      ")
    print("|      ")
    print("_      ")
    print()
 #Não botei todos!! e está indentado!
 elif erros == 6:
    print()
    print("|----- ")
    print("|    | ")
    print("|    O ")
    print("|   /|\ ")
    print("|    | ")
    print("|   / \ ")
    print("_      ")
    print()

But with the increase of the variable erros the drawing does not change accordingly! How can I resolve?

Link to the code: link

    
asked by anonymous 17.09.2016 / 05:03

1 answer

5

Within the loop while perguntarNovamente: , you are initializing the variable erros = 0 , so every time the loop is executed, this variable returns to zero.

One possible solution is to initialize erros before entering the looping:

#Começo do jogo
erros = 0 # AQUI => inicializa a variável erros fora do looping principal
while perguntarNovamente:
    print("A palavra:","_ "*len(senha_list))
    desenho(erros)
    ...
    
17.09.2016 / 07:43