Gerar nomes aleatórios

1,559 views
Skip to first unread message

Rodnei Carvalho

unread,
Jun 13, 2018, 11:06:45 AM6/13/18
to Python Brasil
Olá, estou estudando python, e para dar uma praticada resolvi criar um pequeno um programa com alguns jogos, dentre eles o jogo da forca, comum nome pré fixado, no entanto gostaria de saber como eu poderia gerar nomes aleatórios, eis meu código:

def jogar():
print("*********************************")
print("***Bem vindo ao jogo da Forca!***")
print("*********************************")

palavra_secreta = "bananas"
letras_acertadas = ["_", "_", "_", "_", "_", "_"]
enforcou = False
acertou = False

print(letras_acertadas)

while(not acertou and not enforcou):
print("Jogando...")

chute = input("Digite a letra: ")
chute = chute.strip()

index = 0
for letra in palavra_secreta:
if (chute.upper() == letra.upper()):
letras_acertadas[index] = letra
index = index + 1

print(letras_acertadas)

print("Fim do jogo")


if(__name__ == "__main__"):
jogar()

Rod Limão

unread,
Jun 13, 2018, 11:14:48 AM6/13/18
to python...@googlegroups.com
Eu não sei se gerar seria uma boa solução, seriam muitas regras para verificar. Eu acho que seria mais fácil você carregar o nome de uma lista "externa" (txt, xml, etc...) assim você pode atualizar a lista se quiser.

RLC



--
--
------------------------------------
Grupo Python-Brasil
http://www.python.org.br/wiki/AntesDePerguntar
 
<*> Para visitar o site do grupo na web, acesse:
http://groups.google.com/group/python-brasil
 
<*> Para sair deste grupo, envie um e-mail para:
python-brasi...@googlegroups.com
---
Você recebeu essa mensagem porque está inscrito no grupo "Python Brasil" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para python-brasi...@googlegroups.com.
Para postar nesse grupo, envie um e-mail para python...@googlegroups.com.
Para ver essa discussão na Web, acesse https://groups.google.com/d/msgid/python-brasil/2fa74beb-0d74-4661-be42-1483afa494de%40googlegroups.com.
Para mais opções, acesse https://groups.google.com/d/optout.

Alfredo Vilela

unread,
Jun 14, 2018, 12:29:33 AM6/14/18
to python...@googlegroups.com
Você pode criar uma lista interna ou como Rod Limão falou, lista externa. Coloque em uma lista e randomize.

import random
palavra = ('abacate','pera','maça')
print(random.choice(palavra))

Só que a variável letras_acertadas vc vai ter que alterar para adaptar para cada palavra, o que vc fez serve só para palavras com 7 letras.

Até.


---
Você recebeu essa mensagem porque está inscrito no grupo "Python Brasil" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para python-brasil+unsubscribe@googlegroups.com.

Para postar nesse grupo, envie um e-mail para python...@googlegroups.com.
Para ver essa discussão na Web, acesse https://groups.google.com/d/msgid/python-brasil/2fa74beb-0d74-4661-be42-1483afa494de%40googlegroups.com.
Para mais opções, acesse https://groups.google.com/d/optout.

--
--
------------------------------------
Grupo Python-Brasil
http://www.python.org.br/wiki/AntesDePerguntar
 
<*> Para visitar o site do grupo na web, acesse:
http://groups.google.com/group/python-brasil
 
<*> Para sair deste grupo, envie um e-mail para:

---
Você recebeu essa mensagem porque está inscrito no grupo "Python Brasil" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para python-brasil+unsubscribe@googlegroups.com.

Para postar nesse grupo, envie um e-mail para python...@googlegroups.com.

Rodnei Carvalho

unread,
Jun 14, 2018, 1:47:22 PM6/14/18
to Python Brasil
Entendi.... muito obrigado.

Rodnei Carvalho

unread,
Jun 19, 2018, 3:55:52 PM6/19/18
to Python Brasil
Terminei a forca.... acabei adicionando um arquivo .txt e usei uma função abrindo o arquivo. Olha como o arquivo ficou....


from random import randrange


def boas_vindas():

print("*********************************")
print("***Bem vindo ao jogo da Forca!***")
print("*********************************")


def gerador_de_nomes():
arquivo = open("nomes.txt", "r")
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


def caracteres_letras_acertadas(palavra):
return ["_" for letra in palavra]


def chute_jogador():

chute = input("Digite a letra: ")
    chute = chute.strip().upper()
return chute


def chute_correto(chute, letras_acertadas, palavra_secreta):

index = 0
for letra in palavra_secreta:
        if chute == letra:
letras_acertadas[index] = letra
index += 1


def imprime_mensagem_vencedor():

print("Parabéns, você ganhou!")
print(" ___________ ")
print(" '._==_==_=_.' ")
print(" .-\\: /-. ")
print(" | (|:. |) | ")
print(" '-|:. |-' ")
print(" \\::. / ")
print(" '::. .' ")
print(" ) ( ")
print(" _.' '._ ")
print(" '-------' ")


def imprime_mensagem_perdedor(palavra_secreta):

print("Puxa, você foi enforcado!")
print("A palavra era {}".format(palavra_secreta))
print(" _______________ ")
print(" / \ ")
print(" / \ ")
print("// \/\ ")
print("\| XXXX XXXX | / ")
print(" | XXXX XXXX |/ ")
print(" | XXX XXX | ")
print(" | | ")
print(" \__ XXX __/ ")
print(" |\ XXX /| ")
print(" | | | | ")
print(" | I I I I I I I | ")
print(" | I I I I I I | ")
print(" \_ _/ ")
print(" \_ _/ ")
print(" \_______/ ")

def desenha_forca(erros):
print(" _______ ")
print(" |/ | ")

if(erros == 1):
print(" | (_) ")
print(" | ")
print(" | ")
print(" | ")

if(erros == 2):
print(" | (_) ")
print(" | \ ")
print(" | ")
print(" | ")

if(erros == 3):
print(" | (_) ")
print(" | \| ")
print(" | ")
print(" | ")

if(erros == 4):
print(" | (_) ")
print(" | \|/ ")
print(" | ")
print(" | ")

if(erros == 5):
print(" | (_) ")
print(" | \|/ ")
print(" | | ")
print(" | ")

if(erros == 6):
print(" | (_) ")
print(" | \|/ ")
print(" | | ")
print(" | / ")

if (erros == 7):
print(" | (_) ")
print(" | \|/ ")
print(" | | ")
print(" | / \ ")

print(" | ")
print("_|___ ")
print()

def jogar():
boas_vindas()
palavra_secreta = gerador_de_nomes()
letras_acertadas = caracteres_letras_acertadas(palavra_secreta)


enforcou = False
acertou = False
    erros = 0

print(letras_acertadas)

while not enforcou and not acertou:

chute = chute_jogador()

if chute in palavra_secreta:
chute_correto(chute, letras_acertadas, palavra_secreta)
else:
erros += 1
desenha_forca(erros)

enforcou = erros == 7
acertou = "_" not in letras_acertadas

print(letras_acertadas)


if (acertou):
imprime_mensagem_vencedor()
else:
imprime_mensagem_perdedor(palavra_secreta)



if (__name__ == "__main__"):
jogar()

Alfredo Vilela

unread,
Jun 19, 2018, 8:18:58 PM6/19/18
to python...@googlegroups.com
Muito legal!!! Eu só sugiro o tratamento de erro na abertura do arquivo (try..except).

--
--
------------------------------------
Grupo Python-Brasil
http://www.python.org.br/wiki/AntesDePerguntar
 
<*> Para visitar o site do grupo na web, acesse:
http://groups.google.com/group/python-brasil
 
<*> Para sair deste grupo, envie um e-mail para:
python-brasil+unsubscribe@googlegroups.com
---
Você recebeu essa mensagem porque está inscrito no grupo "Python Brasil" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para python-brasil+unsubscribe@googlegroups.com.
Para postar nesse grupo, envie um e-mail para python...@googlegroups.com.

Fred Chevitarese

unread,
Jun 20, 2018, 12:56:34 PM6/20/18
to python-brasil
Adiciona à um repositório no git, ou no gitlab. 

Abraço!


"
São os homens que mais me surpreendem na humanidade. Porque perdem a saúde para juntar dinheiro, depois perdem dinheiro para recuperar a saúde. E por pensarem ansiosamente no futuro, esquecem do presente de tal forma que acabam por não viver nem o presente nem o futuro. E vivem como se nunca fossem morrer e morrem como se nunca tivessem vivido” - Dalai Lama.
"

Fred Chevitarese - GNU/Linux





---
Você recebeu essa mensagem porque está inscrito no grupo "Python Brasil" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para python-brasi...@googlegroups.com.

Para postar nesse grupo, envie um e-mail para python...@googlegroups.com.
Para ver essa discussão na Web, acesse https://groups.google.com/d/msgid/python-brasil/de2998b9-789e-40dd-98ad-c5bfb5927282%40googlegroups.com.
Para mais opções, acesse https://groups.google.com/d/optout.

--
--
------------------------------------
Grupo Python-Brasil
http://www.python.org.br/wiki/AntesDePerguntar
 
<*> Para visitar o site do grupo na web, acesse:
http://groups.google.com/group/python-brasil
 
<*> Para sair deste grupo, envie um e-mail para:

---
Você recebeu essa mensagem porque está inscrito no grupo "Python Brasil" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para python-brasi...@googlegroups.com.

Para postar nesse grupo, envie um e-mail para python...@googlegroups.com.

Edson Silva

unread,
Jun 20, 2018, 7:00:26 PM6/20/18
to Python Brasil
     Oi Rodnei!

     Cara achei super legal seu código, os desenhos são uma resenha, deve ter dado mais trabalho fazer ele do que o código todos! kkkkk
     Fiquei animado com seu código que perdi o dia mexendo nele, fiz umas alterações, espero que não se incomode.
     Também comecei a fazer  famoso Jogo da Velha, mais deixei de lado por falta  de tempo, época de provas. 
     Como eu ainda não aprendi a mexer no Git, vai um copiar/colar mesmo.

'''
Autro:Rodnei Carvalho - python-brasil
colaborador: Edson J. Silva- python-brasil

Jogo da forca V.01
20/06/18
- adicionado listas chutes.
- adicionado print de chutes e qtd de chutes e chutes restantes.
- adicionado tratamento de erro na entrada.
- adicionado Placar.
- adicionado contador de acertos e erros
'''

from random import randrange

chutes= [] #lista pra guardar os chutes

def boas_vindas(palavra_secreta):

print("*********************************")
print("***Bem vindo ao jogo da Forca!***")
print("*********************************")
    print()                                     #espaço apenas para melhorar a leitura
print("A palavra secreta tem %i letras!"%len(palavra_secreta))
print() #espaço apenas para melhorar a leitura

def gerador_de_nomes():
arquivo = open("nomes.txt", "r")
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


def caracteres_letras_acertadas(palavra):
return ["_" for letra in palavra]


def chute_jogador():
    global chutes
while True:
try:
chute = input("\nDigite a letra: ")
if chute.isalpha():
chute = chute.strip().upper()
if chute.upper() not in chutes:
chutes.append(chute) #
break
else:
print("Você já deu este chute, Tente novamente!")
print("Seus chutes: %s\n" % chutes)
else:
print("Entrada inválida!\nPor favor digite somente letra \"a-z ou A-Z\"")

except AttributeError:
print("Entrada inválida!\nPor favor, digite somente letra \"A-Z\"")

return chute


def chute_correto(chute, letras_acertadas, palavra_secreta):
index = 0
    acerto = 0
for letra in palavra_secreta:
if chute == letra:
letras_acertadas[index] = letra
def placar_erros(chutes,erros):
print("Você já errou %i/%i tentativas." %(erros, 7))
print("Seus chutes: %s\n" % chutes)

def placar_acertos(acertos,palavra_secreta):
print("Você acertou %i/%i letras."%(acertos,(len(palavra_secreta))))
print("Seus chutes: %s\n" % chutes)

def jogar():
palavra_secreta = gerador_de_nomes()
boas_vindas(palavra_secreta)
letras_acertadas = caracteres_letras_acertadas(palavra_secreta)


enforcou = False
acertou = False
    erros = 0
acertos = 0

print(letras_acertadas)

while not enforcou and not acertou:

chute = chute_jogador()

if chute in palavra_secreta:
chute_correto(chute, letras_acertadas, palavra_secreta)
            acertos += 1
placar_acertos(acertos, palavra_secreta)

else:
erros += 1
desenha_forca(erros)
            placar_erros(chutes, erros)


enforcou = erros == 7
acertou = "_" not in letras_acertadas

print(letras_acertadas)


if (acertou):
imprime_mensagem_vencedor()
else:
imprime_mensagem_perdedor(palavra_secreta)



if (__name__ == "__main__"):
jogar()

Kleberson Gomes

unread,
Jun 20, 2018, 7:17:14 PM6/20/18
to python...@googlegroups.com
Muito legal o código. Estou iniciando em Python, pelo que vi não tá na versão 3.6 ou é impressão minha?

--
--
------------------------------------
Grupo Python-Brasil
http://www.python.org.br/wiki/AntesDePerguntar
 
<*> Para visitar o site do grupo na web, acesse:
http://groups.google.com/group/python-brasil
 
<*> Para sair deste grupo, envie um e-mail para:
python-brasi...@googlegroups.com
---
Você recebeu essa mensagem porque está inscrito no grupo "Python Brasil" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para python-brasi...@googlegroups.com.
Para postar nesse grupo, envie um e-mail para python...@googlegroups.com.

Rodnei Carvalho

unread,
Jun 28, 2018, 3:34:01 PM6/28/18
to Python Brasil
Muito Legal..... Edson Silva.... com um pouco mais de calma vou colocar esse código no Github e compartilhar aqui....

Rodnei Carvalho

unread,
Jun 29, 2018, 11:28:02 AM6/29/18
to Python Brasil
Aqui está o link do github com o joguinho.....   

Reply all
Reply to author
Forward
0 new messages