2
respostas

Replicar jogo Termo

Estou tentando replicar um jogo conhecido que gosto muito chamado "Termo". Nesse jogo, você deve acertar a palavra do dia. Ex:

Eu tenho 6 tentativas para acertar essa palavra, a cada tentativa ele me informa se as letras que eu tentei estão certas ou erradas. Ex: Palavra do dia = FELIZ

1ª tentativa: FESTA Resposta do jogo: Acertou a posição das letras FE e errou o resto. 2ª tentativa: FEITO Resposta do jogo: Acertou a posição das letras FE, existe a I na palavra mas colocou na posição errada e errou o resto.

Assim vai até eu acertar a palavra ou queimar todas as chances.

Estou tentando replicar esse jogo com os conhecimentos obtidos em aula e mais algumas pesquisas, porém não estou conseguindo chegar no resultado esperado. Até agora eu só consegui replicar um código de forca:

print("*******************************")
print("Bem vindo ao Termo")
print("*******************************")

vocabulario = ["feliz","dados","furia","treta","pombo","drama"]
palavra = random.choice(vocabulario)

chances = 5
alfabeto = list("abcdefghijklmnopqrstuvwxyz")
tentativas = []

while True:
    print(tentativas)
    print("Chances: ", chances)

    for letra in palavra:
        if letra in tentativas:
            print(letra, end='')
        else:
                print('_', end='')
    palpite = input("\nDigite seu palpite ou 'SAIR' para sair do programa!").lower()
    if palpite == "sair":
        break
    elif palpite not in alfabeto or palpite == '':
        print("Hein!? Fala direito! Isso não é uma letra!")
        continue
    elif palpite in tentativas:
        print("Você é desmemoriado ou o quê!? Você já tentou essa letra. Tente outra!")
        continue
    tentativas.append(palpite)
    if palpite in palavra:
        print("ACERTÔ, MIZERAVI")
    else:
        print("Errou feio, errou rude!")
        chances -= 1
    if chances == 0:
        print("Perdeu, pivete! Game over!!! >:)")
        break
    elif set(palavra).issubset(set(tentativas)):
        print("Parabéns, você acertou! Weeee are the champions, my frieeeend!")
        break

Só que com esse código eu só posso tentar 1 letra por vez e não a palavra, como eu queria. Qual seria a solução?

2 respostas

Olá, Beatriz. Tudo bom? Li sua postagem e fiquei motivado a criar uma versão do jogo Termo, pois eu também gosto bastante dele. Então fiz a minha própria versão, com a lógica principal já funcionando 100%.

Existem coisas a serem melhoradas para deixar esta minha versão mais próxima do jogo original, então fique a vontade caso queira prosseguir a partir do meu código.

Espero que ajude no seu projeto: https://github.com/mayconblopes/Jogo_Termo/blob/master/termo.py

Fala Maycon! Ainda não consegui fazer um por conta própria, mas valeu por compartilhar o projeto, ficou bem legal!! Uma dica legal pra deixar o termo aleatório é criar uma lista de projetos e mencionar ela na função que pega a palavra.

def read_random_word():
    with open("palavras.txt") as f:
        palavras = f.read().splitlines()
        return random.choice(palavras).lower()

Ai no projeto palavras.txt, você pode adicionar diversas palavras. Insira aqui a descrição dessa imagem para ajudar na acessibilidade