2
respostas

Meu jogo da forca

Boa tarde pessoal!

Estou adorando o curso, fiz um joguinho de forma que caso o usuário acerte pelo menos três posições da palavra é perguntado se ele quer arriscar qual é a palavra em caso negativo ele tem a opção de uma ajuda para revelar mais uma letra da palavra, havia feito com nível de dificuldade também tendo como base o tamanho da palavra e número de vogais, mas não coube para colocar aqui.

import random
print("Bem vindo ao jogo da forca!")

acertou = False
enforcou = False
lista_palavra = ["Bailarina", "Futebol", "Estátua", "Pintor", "Frio", "Bebê", "Astronauta", "Cadeira", "Cadeado", "Fernando"]
palavra = lista_palavra[int(random.random()*10)]
palavra = palavra.upper()
lista = []
lista2 = []
tentativa = 0
index2 = 0
index3 = 0
validador2 = 0
print("A palavra sortida é composta por {} caracteres:".format(len(palavra)))

while (not acertou and not enforcou):

    if (index2 >= 3 and validador == 0):
        index3 = 0
        opcao = input("Deseja arriscar qual é a palavara secreta? Digite s ou n: ")
        opcao = opcao.strip().upper()

        while (opcao != "S" and opcao != "N"):
            opcao = input("Digite s ou n somente: ")
            opcao = opcao.strip().upper()

        if (opcao == "S"):
            arriscar = input("Digite a palavra pensada: ")
            arriscar = arriscar.upper()
            if(palavra == arriscar):
                acertou = True
                continue
            else:
                enforcou = True
                continue

        elif(opcao == "N" and validador2 == 0):

            opcao2 = input("Deseja uma ajudinha? s ou n: ")
            opcao2 = opcao2.strip().upper()

            while (opcao2 != "S" and opcao2 != "N"):
                opcao2 = input("Digite s ou n somente: ")
                opcao2 = opcao2.strip().upper()

            if (opcao2 == "S"):

                for letra2 in palavra:
                    if(validador2 == 1):
                        break
                    if(letra2 not in lista2):
                        for letra3 in palavra:
                             if(letra3 == letra2):
                                lista[index3] = letra2
                             if(index3 == len(palavra)):
                                validador2 == 1
                                break
                             index3 = index3 + 1

                lista2.append(letra2)
                validador2 = 1
                print(lista)
                opcao3 = input("Deseja arriscar qual é a palavara secreta? Digite s ou n: ")
                opcao3 = opcao3.strip().upper()

                while (opcao3 != "S" and opcao3 != "N"):
                    opcao3 = input("Digite s ou n somente: ")
                    opcao3 = opcao3.strip().upper()

                if (opcao3 == "S"):
                    arriscar = input("Digite a palavra pensada: ")
                    arriscar = arriscar.upper()
                    if (palavra == arriscar):
                        acertou = True
                        break
                    else:
                        enforcou = True
                        break

    if(acertou == True or enforcou == True):
        continue

    chute = input("Digite a letra pensada: ")
    chute = chute.strip().upper()
    index = 0
    validador = 1
    existe = chute in lista2

    if (existe):
        print("Letra já digitada!")
        continue
    if(tentativa == 0):
        for letra in palavra:

            if(chute == letra):
                lista.insert(index,chute)
                validador = 0
                index2 = index2 + 1
            else:
                lista.insert(index, "_")
            index = index + 1
    else:
        for letra in palavra:
            if (chute == letra):
                lista[index] = chute
                validador = 0
                index2 = index2 + 1
            index = index + 1
    if(validador == 1):
        print("A letra selecionada não está contida na palavra secreta!")
        lista2.append(chute)
        tentativa = tentativa + 1
        continue

    if(index2 == len(palavra)):
        acertou = True
    if("_" not in lista):
        acertou = True
    print(lista)
    lista2.append(chute)
    tentativa = tentativa + 1

print('\n' * 1)

if (acertou == True):
    print("Execelente! Fim de Jogo!")
else:
    print("Enforcou! a palavra correta foi: {}".format(palavra))
2 respostas

Oi, Fernando! Tudo bem?

Mandou bem! Suas alterações ficaram ótimas!

Muito bacana ver que entendeu a lógica envolvida e utilizou esse conhecimento para melhorar a experiência do usuário.

Continue mergulhando.

Bons estudos e até mais! =)

Olá Carolina!

Muito obrigado!! :)