Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Como adicionar mais palavras no arquivo já criado ?

Criamos um arquivo "palavras.txt" e adicionamos algumas palavras de frutas para escolher , de maneira aleatória, no jogo na forca. Mas, e se eu cansar das mesmas palavras sempre ... Como posso adicionar novas palavras usando código ?

2 respostas
solução!

Olá, Júlio César. Tudo bom?

É bem simples! Você pode simplesmente utilizar os comandos :

arquivo = open('palavras.txt', 'a')
arquivo.write('banana')

A Caelum tem um post bem legal explicando esses comandos que eu passei e com muitos outros detalhes sobre o assunto :

https://www.caelum.com.br/apostila-python-orientacao-a-objetos/arquivos-e-modulos#exercicios

Espero ter ajudado : )

Bom dia Júlio César, tudo bem? Espero que sim!

A maneira mais simples seria adicionando mais palavras no arquivo txt, porém isso dependeria de você adicionar muitas para que tenha muita variedade de palavras.

Vou trazer aqui uma solução, usando um site que usa palavras aleatoriamente, o link dele é esse aqui: Site de palavras aleatórias

Como o site gera uma palavra aleatória nova sempre que entramos nele, podemos buscar essa palavra através de uma função, vamos fazer uso de uma biblioteca para solicitar acesso a esse site, adicione ao seu código logo no início o seguinte:

from urllib.request import Request, urlopen

Feito isso, coloque a função em alguma parte do seu código:

def carrega_palavra_secreta_site():

    url = 'https://www.palabrasaleatorias.com/palavras-aleatorias.php'
    texto = Request(url, headers={'User-Agent': 'Mozilla/5.0'})
    webpage = str(urlopen(texto).read())
    webpage = webpage.split('\\n')
    palavra = webpage[114].split('<')[0]
    return palavra.upper()

Essa função irá procurar no site a palavra secreta com base na linha do código fonte que está em HTML.

Agora só precisamos ajustar para que a palavra secreta seja iniciada a partir dessa função. Adicionei uma opção para o jogador escolher se quer puxar a palavra secreta do arquivo txt ou do site, então não tirei a função que procura do arquivo, só adicionei uma funcionalidade:

def jogar():
    imprime_mensagem_abertura()
    opcao = input('Carregar palavras do arquivo txt ou do site?\n1 - Arquivo txt\n2 - Site\n')
    if opcao == '1':
        palavra_secreta = carrega_palavra_secreta()
    elif opcao == '2':
        palavra_secreta = carrega_palavra_secreta_site()

    letras_acertadas = inicializa_letras_acertadas(palavra_secreta)

O início da função jogar ficou assim para mim, verifique se tem alguma variável com nome diferente no seu código para que funcione em conjunto e caso necessite, faça alterações.

Espero que tenha entendido.

Estou à disposição, qualquer dúvida me avise. Bons estudos!

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software