python old game sometimes shows no result

Asked

Viewed 37 times

-2

made an old game program in python 3 but the problem is that when I choose an option does not show anything sometimes but certain part of the time works saying if I won or lost code:

insira o código aqui
import random

pedra = 'Pedra'
papel = 'Papel'
tesoura = 'Tesoura'

jogador = str(input('Pedra, papel ou tesoura? Fale: ')).capitalize()

if jogador.capitalize() == random.choice([pedra, papel, tesoura]).capitalize():
    print('Deu empate!')
elif jogador.capitalize() == pedra and  random.choice([pedra, papel, tesoura]) == tesoura:
    print('Você venceu! Pedra ganha de tesoura.')
elif jogador.capitalize() == papel and random.choice([pedra, papel, tesoura]) == pedra:
    print('Você venceu! Papel ganha de pedra.')
elif jogador.capitalize() == tesoura and random.choice([pedra, papel, tesoura]) == papel:
    print('Você venceu! Tesoura ganha de papel.')
elif jogador.capitalize() == pedra and random.choice([pedra, papel, tesoura]) == papel:
    print('Você perdeu! Papel ganha de tesoura.')
elif jogador.capitalize() == papel and random.choice([pedra, papel, tesoura]) == tesoura:
    print('Você perdeu! Tesoura ganha de papel.')
elif jogador.capitalize() == tesoura and random.choice([pedra, papel, tesoura]) == pedra:
    print('Você perdeu! Pedra ganha de tesoura.')
else:
    print('As vezes o programa não escolhe algum então dá nisso malz kkkk')
  • Try to do: below the line jogador =... place sorteio = random.choice(..... Finally, for each if use if ..... == sorteio.

  • Just for the record, this is not the old game :-) Anyway, take a look here that you have almost "ready": https://answall.com/q/519193/112052 (inclusive, with an answer that shows a better way to verify the result)

  • That’s not the tic-tac-toe

1 answer

0

Every time Voce checks whether your option matches random.choice([pedra, papel, tesoura]).capitalize(): Voce is creating a new value for the system option.

Create a variable before your ifs and uses it to compare with your answer:

selecaoComputador = random.choice([pedra, papel, tesoura]).capitalize():

then just knife like this:

if jogador.capitalize() == selecaoComputador:
    print('Deu empate!')
elif jogador.capitalize() == pedra and  selecaoComputador == tesoura:
    print('Você venceu! Pedra ganha de tesoura.')
elif jogador.capitalize() == papel and selecaoComputador == pedra:
    print('Você venceu! Papel ganha de pedra.')
elif jogador.capitalize() == tesoura and selecaoComputador == papel:
    print('Você venceu! Tesoura ganha de papel.')
elif jogador.capitalize() == pedra and selecaoComputador == papel:
    print('Você perdeu! Papel ganha de tesoura.')
elif jogador.capitalize() == papel and selecaoComputador == tesoura:
    print('Você perdeu! Tesoura ganha de papel.')
elif jogador.capitalize() == tesoura and selecaoComputador == pedra:
    print('Você perdeu! Pedra ganha de tesoura.')
else:
    print('nao deve chegar aqui')

Browser other questions tagged

You are not signed in. Login or sign up in order to post.