1
resposta

Nova função para o jogo.

Nova função para o jogo.

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Segue abaixo.

   print('Escolha o tema!\n')
    print('(1) Frutas')
    print('(2) Países')
    print('(3) Objetos\n')

    tema = int(input('Qual o tema: '))
    if (tema == 1):
        palavra = frutas()
    elif (tema == 2):
        palavra = paises()
    else:
        palavra = objetos()

Abaixo adicione.

def frutas():
    arquivo = open('frutas.txt', 'r')
    lista = []

    for linha in arquivo:
        linha = linha.strip()
        lista.append(linha)

    arquivo.close()

    numero = random.randrange(0, len(lista))
    palavra = lista[numero].upper()
    return palavra

def paises():
    arquivo = open('paises.txt', 'r')
    lista = []

    for linha in arquivo:
        linha = linha.strip()
        lista.append(linha)

    arquivo.close()

    numero = random.randrange(0, len(lista))
    palavra = lista[numero].upper()
    return palavra

def objetos():
    arquivo = open('objetos.txt', 'r')
    lista = []

    for linha in arquivo:
        linha = linha.strip()
        lista.append(linha)

    arquivo.close()

    numero = random.randrange(0, len(lista))
    palavra = lista[numero].upper()
    return palavra

Agora crie as seguintes listas: frutas.txt / objetos.txt / paises.txt

Segue código completo no https://github.com/jpaulodl/jogo_de_forca

1 resposta

Olá João!! Você criou 3 defs para praticamente fazer a mesma execução. Para ter um código mais limpo, sugiro que altere o menu para informar diretamente o nome do txt em um parâmetro, e que este fique na chamada da função.

print('Escolha o tema!\n')
print('(1) Frutas')
print('(2) Países')
print('(3) Objetos\n')

tema = int(input('Qual o tema: '))
if (tema == 1):
palavra = 'frutas.txt'
elif (tema == 2):
palavra = 'paises.txt'
else:
palavra = 'nomes.txt'


def carrega_palavra_secreta(nome_arquivo='palavras.txt'):
from random import randrange

arquivo = open(nome_arquivo, "r", encoding="UTF-8")
palavras = []

for linha in arquivo:
    linha = linha.strip()
    palavras.append(linha)

arquivo.close()

numero = randrange(0, len(palavras))
palavra_secreta = palavras[numero].upper()

return palavra_secreta


palavra_chave = carrega_palavra_secreta(palavra)