Eu estava criando um jogo em python que se baseava no Jogo do Nim porém está ocorrendo um erro gostaria que me ajudassem...
O programa ocorre normalmente o problema é que quando o jogador coloca 0 da ZeroDivising error, dá ai que pesso ajuda quero que ao invez de dar o erro de ZeroDivising quando o jogador por 0, quero que peça novamente para jogador colocar um valor válido
Acredito que o erro acontece nessa parte:
if (m + 1) % (n - m) == 0 or (m + 1) % (n - m) == (m + 1):
print("Voce começa!")
vezdocomputador = False
else:
print("Computador começa!")
#Código completo abaixo:
tipo_jogo = 0
def computador_escolhe_jogada(n, m):
if n <= m:
return n
else:
quantia = n % (m + 1)
if quantia > 0:
return quantia
return m
def usuario_escolhe_jogada(n, m):
jogada = 0
while jogada == 0:
jogada = int(input("Quantas peças? "))
if jogada > n or jogada < 1 or jogada > m:
jogada = 0
return jogada
def partida():
print(" ")
n = int(input("Quantas peças? "))
m = int(input("Limite de peças por jogada? "))
vezdocomputador = True
if (m + 1) % (n - m) == 0 or (m + 1) % (n - m) == (m + 1):
print("Voce começa!")
vezdocomputador = False
else:
print("Computador começa!")
while n > 0:
if vezdocomputador:
jogada = computador_escolhe_jogada(n, m)
vezdocomputador = False
if jogada == 1:
print("O computador tirou uma peça.")
else:
print("O computador tirou {} peças.".format(jogada))
else:
jogada = usuario_escolhe_jogada(n, m)
vezdocomputador = True
if jogada == 1:
print("Voce tirou uma peça.")
else:
print("Voce tirou {} peças.".format(jogada))
n = n - jogada
print("Agora restam {} peças no tabuleiro.\n".format(n))
if vezdocomputador:
print("Fim de jogo! Você ganhou!")
return 1
else:
print("Fim de jogo! O computador ganhou!")
return 0
def campeonato():
usuario = 0
computador = 0
for _ in range(3):
vencedor = partida()
Pergunta
João Victor M.S
Eu estava criando um jogo em python que se baseava no Jogo do Nim porém está ocorrendo um erro gostaria que me ajudassem...
O programa ocorre normalmente o problema é que quando o jogador coloca 0 da ZeroDivising error, dá ai que pesso ajuda quero que ao invez de dar o erro de ZeroDivising quando o jogador por 0, quero que peça novamente para jogador colocar um valor válido
Acredito que o erro acontece nessa parte:
if (m + 1) % (n - m) == 0 or (m + 1) % (n - m) == (m + 1):
print("Voce começa!")
vezdocomputador = False
else:
print("Computador começa!")
#Código completo abaixo:
tipo_jogo = 0
def computador_escolhe_jogada(n, m):
if n <= m:
return n
else:
quantia = n % (m + 1)
if quantia > 0:
return quantia
return m
def usuario_escolhe_jogada(n, m):
jogada = 0
while jogada == 0:
jogada = int(input("Quantas peças? "))
if jogada > n or jogada < 1 or jogada > m:
jogada = 0
return jogada
def partida():
print(" ")
n = int(input("Quantas peças? "))
m = int(input("Limite de peças por jogada? "))
vezdocomputador = True
if (m + 1) % (n - m) == 0 or (m + 1) % (n - m) == (m + 1):
print("Voce começa!")
vezdocomputador = False
else:
print("Computador começa!")
while n > 0:
if vezdocomputador:
jogada = computador_escolhe_jogada(n, m)
vezdocomputador = False
if jogada == 1:
print("O computador tirou uma peça.")
else:
print("O computador tirou {} peças.".format(jogada))
else:
jogada = usuario_escolhe_jogada(n, m)
vezdocomputador = True
if jogada == 1:
print("Voce tirou uma peça.")
else:
print("Voce tirou {} peças.".format(jogada))
n = n - jogada
print("Agora restam {} peças no tabuleiro.\n".format(n))
if vezdocomputador:
print("Fim de jogo! Você ganhou!")
return 1
else:
print("Fim de jogo! O computador ganhou!")
return 0
def campeonato():
usuario = 0
computador = 0
for _ in range(3):
vencedor = partida()
if vencedor == 1:
usuario = usuario + 1
else:
computador = computador + 1
print("Placar final: Você {} x {} Computador".format(usuario, computador))
while tipo_jogo == 0:
print("Bem-vindo ao jogo do NIM! Escolha:")
print(" ")
print("1 - Para jogar uma partida isolada")
print("2 - Para jogar um campeonato")
tipo_jogo = int(input("Sua opção: "))
print(" ")
if tipo_jogo == 1:
print("Voce escolheu partida isolada!")
partida()
break
if tipo_jogo == 2:
print("Voce escolheu um campeonato!")
campeonato()
break
else:
print("Opção inválida!")
tipo_jogo = 0
Link para o comentário
Compartilhar em outros sites
0 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.