Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Mão na massa: Palavras aleatórias no jogo

Meu código atualmente, tive algumas ideias independetes do curso,

caso vejam algo a melhorar ficarei feliz em aprender

import random

def play():
    print(25*"/")
    print("/   O Jogo da Forca     / ")
    print(25*"/","\n")

    # Metodo implementado para gerar um pais presenta na lista de forma randomica
    pais_secreto = ['brasil', 'australia', 'japao', 'canada', 'gana', 'grecia','peru', 'china', 'chile', 'cuba', 'belgica', 'polonia', 'jamaica', 'paraguai', 'alemanha', 'zimbabue', 'argentina', 'dinamarca', 'madagascar', 'eslovaquia', 'montenegro']
    random.shuffle(pais_secreto)
    pais_secreto = (pais_secreto[0]).upper()
    letras_acertadas = ("_" * len(pais_secreto))
    print(letras_acertadas)
    letras_certas = (list(letras_acertadas))
    print(letras_certas)

    enforcou = False
    escapou = False
    tentativas = 1

    print(pais_secreto)


    while(not enforcou and not escapou):
        print(f"O país tem {len(pais_secreto)} letras.", "\n")

        chute = input("chute uma letra: ")
        chute = chute.strip().upper()

        # Logica de chutes, quando errado sobe uma tentativa, ao acertar não sobe
        if chute not in pais_secreto:
            tentativas += 1
            print(f"Você ainda tem {len(pais_secreto) - tentativas + 1} para jogar")
        else:
            posicao =  0
            for letra in pais_secreto:
                if(chute == letra):
                    letras_certas[posicao] = letra
                posicao += 1

        # Metodo para quantidade de tentativas ser do tamanho do pais secreto
        enforcou = tentativas > len(pais_secreto)
        if(enforcou == True):
            print("Você se enforcou")
        print(letras_certas)

        # Metodo para transformar a lista em uma string e finalizar o jogo quando o pais for completo
        acertou = ''.join(letras_certas)
        if(acertou == pais_secreto):
            print("\n", "Parabéns, você escapou da forca!")
            break


if(__name__ == "__main__"):
    play()
1 resposta
solução!

Oi, Leo. Então, você disse que queria algumas dicas para implementar no teu código. Aqui vão algumas ideias pra ti:

  1. Você poderia quebrar alguns blocos de código em outras funções e chamá-las em teu def play()
  2. Você poderia elaborar uma lista de países que irão compor o "pais_secreto" e armazená-los em um arquivo.txt e aplicar as chamadas de open/close aquivo;
  3. Nesse mesmo ponto 2, você poderia agregar o encode utf 8 para aceitar caracteres especiais e acentuação (o que é importante para o caso da língua portuguesa);
  4. Você poderia elaborar uma lógica que informasse a quantidade de tentativas que ainda faltam para o usuário acertar/perder o jogo;
  5. você poderia elaborar a lógica para informar quais são os erros cometidos pelo o usuário e mostrá-lo na tela, para que o mesmo soubesse quais letras ele já errou e não cometer os mesmos erros;
  6. Você poderia adicionar um menu de dificuldade no qual logo de entrada o usuário escolhesse quantas tentativas ele tem para acertar.

Eu te dei as ideias, veja se você consegue implementá-las. Cada ponto que você conseguir implementar é conhecimento em caixa ;)