Hangman Game - Hit Check

Asked

Viewed 401 times

-1

Guys I’m having a problem to finish the frock game in Python, I’m not able to do a scheme to check if the letters were right and or wrong, could help me?

from random import randint

lista_palavras = ["casa", "mercado", "palio", "palmeiras", "lakers", "lucas"]

print('''==============================
     JOGO DA FORCA - IFPR
==============================''')
print("\n")

print('''==============================
     Pronto para Começar...?
==============================''')
print("\n")

aceita = 1
n_aceita = 0

while True:
    inicio = int(input("Digite (1) para Inicar ou (0) para Sair: "))

    if inicio == aceita:

        pos= randint (0, len(lista_palavras)-1)
        palavra = lista_palavras[pos]
        riscos = [" _ "] * len(palavra)

        print("\n")
        print("Começando o jogo....FORCA - IFPR")

        erros = 0

        while erros < 7 :
            letra = input("Digite uma letra: ")


            l = 0
            while l < len(palavra):
                if palavra[l] == letra:
                    riscos[l] = letra

                # fazer um esquema para verificar se errou ou acertou

                l+=1

            #se ele errou
            #conta um erro a mais

            #mostrar o desenho conforme a quantidade de erros


        print(palavra)
        print(riscos)

    elif inicio == n_aceita:
        print("Saindo do jogo....")
        print("\n")
        print("Obrigado!")
        break
  • 1

    You can do: if letter in word "Ends implementation".

  • Okay, Matheus, more like I fit that into the while?

  • It may be after you ask to type a letter. You can do: if letra in palavra: acertos += letra else: erros += letra

  • Got it, plus before the loop of repetition to go through the word? If you can show me an example within the structure of the code I appreciate, is that I am beginner in Python so I am learning slowly..... kkkk

1 answer

0


I took your code and changed a few things, check the changes and add/modify whatever you think you need in your original. Edit.: I added comments to facilitate the location of the changes.

from random import randint

lista_palavras = ["casa", "mercado", "palio", "palmeiras", "lakers", 
"lucas"]

print('''==============================
 JOGO DA FORCA - IFPR
==============================''')
print("\n")

print('''==============================
 Pronto para Começar...?
==============================''')
print("\n")

while True:
    inicio = int(input("Digite (1) para Inicar ou (0) para Sair: "))

    '''retirei as variáveis aceita e n_aceita, pois em Python qualquer valor diferente
de 0 já significa verdadeiro, então usei isso como parâmetro para iniciar o jogo'''

    if inicio:

        pos= randint (0, len(lista_palavras)-1)
        palavra = lista_palavras[pos]
        riscos = [" _ "] * len(palavra)

        print("\n")
        print("Começando o jogo....FORCA - IFPR")

        erros = 0

        while erros < 7 :
            letra = input("Digite uma letra: ")

            '''adicionei uma lógica para conferir se a letra está presente na palavra,
        estando presente, ela substitui a posição equivalente dela na string palavra na lista
        de riscos, senão o número de erros aumenta em 1'''

            if letra in palavra:
                pos = palavra.find(letra)
                for i in range(pos, len(palavra)):
                    if letra == palavra[i]:
                        riscos[i] = letra
            else:
                erros += 1

            '''Coloquei a impressão dos riscos dentro do loop para que seja possível
        ver as letras acertadas enquanto se digita novas'''

            print('Palavra:\n', riscos)

        print(palavra)

    else:
        print("Saindo do jogo....")
        print("\n")
        print("Obrigado!")
        break
  • Okay buddy, thanks for the comments. However now I need to add the drawing of the gallows in the verification of the wrong letter, I’m thinking of creating a def to put the errors as I elaborated below, but when I fit the check presents error in the code:

  • What would be the mistake? How did you put these new functions?

  • So, buddy, I made the code change so you could take a look. The problem now is that when I type a letter "wrong" does not appear the drawing of the gallows, and also when I type a letter does not present the risk referring to the position of the word.

Browser other questions tagged

You are not signed in. Login or sign up in order to post.