Ajuda em python3
19/05/2021
0
PYTHON3
Oiii estou fazendo um jogo de jokenpo, e surgiram alguns problemas no caminho.
Eu preciso emplementar um "jogar novamente" e limitar as rodadas.
Por exemplo: Caso for uma melhor de 3, se o jogador vencer 2, o jogo deve declarar o vencedor e finalizar. Caso for uma melhor de 5 e o jogador vencer 3, o jogo deve declarar o vencedor e finalizar.
Código que eu tenho até o momento:
vitoriasPlayer = 0
vitoriasCPU = 0
empates = 0
from random import randint
from time import sleep
def perdeu():
print("CPU Venceu")
global vitoriasCPU
vitoriasCPU+=1
sleep(2)
def venceu():
print("{} Venceu" .format(nome))
global vitoriasPlayer
vitoriasPlayer+=1
sleep(2)
def empatou():
print("Empate")
global empates
empates+=1
sleep(2)
def invalido():
print("Invalido")
sleep(2)
lista = ("Pedra", "Papel", "Tesoura")
print('''''' JOKENPÔ
'''''')
nome=str(input("Insira seu nome:"))
print("Seja Bem-Vindo {}.".format(nome))
rodadas = 0
while(rodadas != 3 and rodadas != 5):
rodadas = int(input("Digite a quantidade de rodadas (3 ou 5)"))
for i in range(rodadas):
CPU = randint(0,2)
perguntar = int(input(''''''\nOpções:
[0] Pedra
[1] Papel
[2] Tesoura
Sua escolha: ''''''))
print("JO\n")
sleep(0.5)
print("KEN\n")
sleep(0.5)
print("POOH!!!\n")
print("-="*20)
print("O CPU escolheu: {}".format(lista[CPU]))
print("{} escolheu: {}".format(nome, lista[perguntar]))
print("-="*20)
if CPU == 0:
if perguntar == 0:
empatou()
elif perguntar == 1:
venceu()
elif perguntar == 2:
perdeu()
else:
invalido()
elif CPU == 1:
if perguntar == 0:
perdeu()
elif perguntar == 1:
empatou()
elif perguntar == 2:
venceu()
else:
invalido()
elif CPU == 2:
if perguntar == 0:
venceu()
elif perguntar == 1:
perdeu()
elif perguntar == 2:
empatou()
else:
invalido()
else:
invalido()
print("\n{} venceu {} vez(es)".format(nome, vitoriasPlayer))
print("CPU venceu {} vez(es)".format(vitoriasCPU))
print("{} empate(s)".format(empates))
if vitoriasPlayer > vitoriasCPU:
print("\n{} Parabéns, vitória.".format(nome))
elif vitoriasCPU > vitoriasPlayer:
print("\nSupremacia das maquinas, vitória da CPU.")
elif vitoriasPlayer == vitoriasCPU:
print("\nEmpate")
Eu também fiz uma função para o jogar novamente, mas sempre que coloco no código, dá algum problema...desde já, grata pela ajuda.
def continuarjogando():
resposta = False
while True:
print(''Deseja continuar jogando? [S]im ou [N]ão'')
resposta = input()
if resposta.lower() == ''s'':
return True
elif resposta.lower() == ''n'':
return False
continuar = True
while continuar:
print(''jogando'')
continuar = continuarjogando()
Oiii estou fazendo um jogo de jokenpo, e surgiram alguns problemas no caminho.
Eu preciso emplementar um "jogar novamente" e limitar as rodadas.
Por exemplo: Caso for uma melhor de 3, se o jogador vencer 2, o jogo deve declarar o vencedor e finalizar. Caso for uma melhor de 5 e o jogador vencer 3, o jogo deve declarar o vencedor e finalizar.
Código que eu tenho até o momento:
vitoriasPlayer = 0
vitoriasCPU = 0
empates = 0
from random import randint
from time import sleep
def perdeu():
print("CPU Venceu")
global vitoriasCPU
vitoriasCPU+=1
sleep(2)
def venceu():
print("{} Venceu" .format(nome))
global vitoriasPlayer
vitoriasPlayer+=1
sleep(2)
def empatou():
print("Empate")
global empates
empates+=1
sleep(2)
def invalido():
print("Invalido")
sleep(2)
lista = ("Pedra", "Papel", "Tesoura")
print('''''' JOKENPÔ
'''''')
nome=str(input("Insira seu nome:"))
print("Seja Bem-Vindo {}.".format(nome))
rodadas = 0
while(rodadas != 3 and rodadas != 5):
rodadas = int(input("Digite a quantidade de rodadas (3 ou 5)"))
for i in range(rodadas):
CPU = randint(0,2)
perguntar = int(input(''''''\nOpções:
[0] Pedra
[1] Papel
[2] Tesoura
Sua escolha: ''''''))
print("JO\n")
sleep(0.5)
print("KEN\n")
sleep(0.5)
print("POOH!!!\n")
print("-="*20)
print("O CPU escolheu: {}".format(lista[CPU]))
print("{} escolheu: {}".format(nome, lista[perguntar]))
print("-="*20)
if CPU == 0:
if perguntar == 0:
empatou()
elif perguntar == 1:
venceu()
elif perguntar == 2:
perdeu()
else:
invalido()
elif CPU == 1:
if perguntar == 0:
perdeu()
elif perguntar == 1:
empatou()
elif perguntar == 2:
venceu()
else:
invalido()
elif CPU == 2:
if perguntar == 0:
venceu()
elif perguntar == 1:
perdeu()
elif perguntar == 2:
empatou()
else:
invalido()
else:
invalido()
print("\n{} venceu {} vez(es)".format(nome, vitoriasPlayer))
print("CPU venceu {} vez(es)".format(vitoriasCPU))
print("{} empate(s)".format(empates))
if vitoriasPlayer > vitoriasCPU:
print("\n{} Parabéns, vitória.".format(nome))
elif vitoriasCPU > vitoriasPlayer:
print("\nSupremacia das maquinas, vitória da CPU.")
elif vitoriasPlayer == vitoriasCPU:
print("\nEmpate")
Eu também fiz uma função para o jogar novamente, mas sempre que coloco no código, dá algum problema...desde já, grata pela ajuda.
def continuarjogando():
resposta = False
while True:
print(''Deseja continuar jogando? [S]im ou [N]ão'')
resposta = input()
if resposta.lower() == ''s'':
return True
elif resposta.lower() == ''n'':
return False
continuar = True
while continuar:
print(''jogando'')
continuar = continuarjogando()
Ana
Curtir tópico
+ 0
Responder
Clique aqui para fazer login e interagir na Comunidade :)