I was creating a game that scrambles words, and the user has 6 attempts to guess what the word is. I'll put the code here:
import random
def main():
while True:
input('Presisone enter para sortear uma nova palavra.')
palavra_oculta, dica = EscolhePalavra()
palavra_embaralhada = EmbaralhaPalavra(palavra_oculta)
palavra_embaralhada = palavra_embaralhada.lower()
palavra_oculta = palavra_oculta.lower()
tentativas = 6
while tentativas != 0:
print('\nA palavra embaralhada é: %s'%palavra_embaralhada)
print('A dica é: %s'%dica)
print('Você ainda tem %d tentativas.'%tentativas)
palpite = input('Digite seu palpite: ')
if palpite == palavra_oculta:
print('Parabéns, você acertou!!!')
break
else:
print('Ainda nao, tente novamente!')
tentativas -= 1
if tentativas == 0:
print('Você perdeu! a palavra correta era %s.'%palavra_oculta)
else:
print('Parabéns, você acertou a palavra!!!')
def EscolhePalavra(): #Essa função está funcionando normalmente, a usei em outro jogo.
lista_arquivos = {'Animais.txt' : 'Animal', 'Frutas.txt' : 'Fruta',
'Objetos.txt' : 'Objeto', 'Pessoas.txt' : 'Pesssoa',
'Profissões.txt' : 'Profissão'}
arquivo_escolhido = random.choice(list(lista_arquivos.keys()))
palavra = random.choice(open(arquivo_escolhido).readlines())
dica = lista_arquivos[arquivo_escolhido]
return(palavra, dica)
def EmbaralhaPalavra(palavra):
palavra = list(palavra)
random.shuffle(palavra)
palavra = ''.join(palavra)
return palavra
if __name__ == '__main__':
main()
Let's face the problems:
First, with the word scrambled. For some reason I still do not know which one, by giving print
to palavra_embaralhada
, most of the time it gets broken into two lines. I have already tried to give a print
on a separate line in the code, but the problem persists.
The second is that the comparison between the string
written by the user stored in the variable palpite
, and the palavra_oculta
almost always goes wrong. I was only able to hit once. As much as I type the correct word, the program considers it to be two different strings . What I have to do?