Ir para conteúdo
Fórum Script Brasil
  • 0

Ajudinha :)


João Victor M.S

Pergunta

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

 

 

Editado por João Victor M.S
Link para o comentário
Compartilhar em outros sites

0 respostass a esta questão

Posts Recomendados

Até agora não há respostas para essa pergunta

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.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,9k
×
×
  • Criar Novo...