0

I wrote this simple script for the game Rock-paper-scissors, but I don't know how to loop the game so it doesn't end and the person keeps playing by choosing y or n.

I try some kindoms like writing a new input but this cause errors. I try while True: on initial and end of script I try start() Help me pls! I gave you a cookie! : I'm using Pycharm program to write the commands!

this is my script (i'm studying python and it was done with the help of the internet)

from random import randint
from time import sleep
itens = ('Pedra', 'Papel', 'Tesoura')
computador = randint(0, 2)
print('''Suas opções:
[ 0 ] PEDRA
[ 1 ] PAPEL
[ 2 ] TESOURA''')
jogador = int(input('Qual é a sua escolha? '))
print('JÔ')
sleep(0.5)
print('KEN')
sleep(0.5)
print('PÔ!!!')
print('-=' * 15)
print('O computador escolheu {}'.format(itens[computador]))
print('Jogador escolheu {}'.format(itens[jogador]))
print('-=' * 15)
if computador == 0: # computador jogou pedra
    if jogador == 0:
        print('EMPATE')
    elif jogador == 1:
        print('Jogador GANHOU!')
    elif jogador == 2:
        print('Computador GANHOU!')
    else:
        print('Jogada inválida!')
elif computador == 1: # computador jogou papel
     if jogador == 0:
         print('Computador GANHOU!')
     elif jogador == 1:
         print('EMPATE')
     elif jogador == 2:
         print('Jogador GANHOU!')
     else:
         print('Jogada inválida!')
elif computador == 2: # computador jogou tesoura
    if jogador == 0:
        print('Jogador GANHOU!')
    elif jogador == 1:
        print('Computador GANHOU!')
    elif jogador == 2:
        print('EMPATE')
    else:
        print('Jogada inválida!')
Daniel Walker
  • 6,380
  • 5
  • 22
  • 45
André
  • 1
  • 2
  • Does this answer your question? [Asking the user for input until they give a valid response](https://stackoverflow.com/questions/23294658/asking-the-user-for-input-until-they-give-a-valid-response) – Jongware Jun 15 '20 at 07:06

2 Answers2

0

Place the entire code in a function, and create a while loop. For example:

from random import randint
from time import sleep

def loop():
*** your entire game here ***

reply = "y"
while reply == "y":
    loop()
  • Sorry guys, I started studying python just three days ago, I don't know much about programming language, any type, but I'm enjoying learning python, I'm thinking about the future and the possibilities of programming that way. def loop (): on initial code and reply = "y" at the end? – André Jun 15 '20 at 17:26
  • "C:/Users/André/AppData/Roaming/JetBrains/PyCharmEdu2020.1/scratches/Games/JO KEN PO.py", line 50, in while reply == 'y': NameError: name 'reply' is not defined – André Jun 15 '20 at 17:30
0
from random import randint
from time import sleep

def loop():
itens = ('Pedra', 'Papel', 'Tesoura')
computador = randint(0, 2)
print('''Suas opções:
[ 0 ] PEDRA
[ 1 ] PAPEL
[ 2 ] TESOURA''')
jogador = int(input('Qual é a sua escolha? '))
print('JÔ')
sleep(0.5)
print('KEN')
sleep(0.5)
print('PÔ!!!')
print('-=' * 15)
print('O computador escolheu {}'.format(itens[computador]))
print('Jogador escolheu {}'.format(itens[jogador]))
print('-=' * 15)
if computador == 0: # computador jogou pedra
    if jogador == 0:
        print('EMPATE')
    elif jogador == 1:
        print('Jogador GANHOU!')
    elif jogador == 2:
        print('Computador GANHOU!')
    else:
        print('Jogada inválida!')
elif computador == 1: # computador jogou papel
     if jogador == 0:
         print('Computador GANHOU!')
     elif jogador == 1:
         print('EMPATE')
     elif jogador == 2:
         print('Jogador GANHOU!')
     else:
         print('Jogada inválida!')
elif computador == 2: # computador jogou tesoura
    if jogador == 0:
        print('Jogador GANHOU!')
    elif jogador == 1:
        print('Computador GANHOU!')
    elif jogador == 2:
        print('EMPATE')
    else:
        print('Jogada inválida!')
reply = "y"
while reply == "y"
loop()

>

     PyDev console: starting.
>     Python 3.8.3 (tags/v3.8.3:6f8c832, May 13 2020, 22:37:02) [MSC v.1924 64 bit (AMD64)] on win32
>     runfile('C:/Users/André/AppData/Roaming/JetBrains/PyCharmEdu2020.1/scratches/Games/JO
> KEN PO.py',
> wdir='C:/Users/André/AppData/Roaming/JetBrains/PyCharmEdu2020.1/scratches/Games')
>     Traceback (most recent call last):
>       File "<input>", line 1, in <module>
>       File "C:\Program Files\JetBrains\PyCharm Edu 2020.1.1\plugins\python-ce\helpers\pydev\_pydev_bundle\pydev_umd.py", line 197, in runfile
>         pydev_imports.execfile(filename, global_vars, local_vars)  # execute the script
>       File "C:\Program Files\JetBrains\PyCharm Edu 2020.1.1\plugins\python-ce\helpers\pydev\_pydev_imps\_pydev_execfile.py", line 18, in execfile
>         exec(compile(contents+"\n", file, 'exec'), glob, loc)
>       File "C:/Users/André/AppData/Roaming/JetBrains/PyCharmEdu2020.1/scratches/Games/JO
> KEN PO.py", line 5
>         itens = ('Pedra', 'Papel', 'Tesoura')
>         ^

I don't know why I'm giving an error! Maybe I have to download a library?

André
  • 1
  • 2