Boa tarde Galera, estou encalhado nesta condição. Alguém poderia ajudar como solucionar os dois pontos abaixo?
Atualmente meu jogo esta em um loop e não esta calculando/apresentando a rodada em andamento.
Obrigado!
Enunciado:Você deverá escrever um programa na linguagem Python, versão 3, que permita a uma "vítima" jogar o NIM contra o computador. O computador, é claro, deverá seguir a estratégia vencedora descrita acima.
Estrategia:consiste em deixar sempre múltiplos de (m+1) peças ao jogador oponente
Condições:
Uma função computador_escolhe_jogada que recebe, como parâmetros, os números n e m descritos acima e devolve um inteiro correspondente à próxima jogada do computador de acordo com a estratégia vencedora.
Uma função usuario_escolhe_jogada que recebe os mesmos parâmetros, solicita que o jogador informe sua jogada e verifica se o valor informado é válido. Se o valor informado for válido, a função deve devolvê-lo; caso contrário, deve solicitar novamente ao usuário que informe uma jogada válida.
Uma função partida que não recebe nenhum parâmetro, solicita ao usuário que informe os valores de n e m e inicia o jogo, alternando entre jogadas do computador e do usuário (ou seja, chamadas às duas funções anteriores). A escolha da jogada inicial deve ser feita em função da estratégia vencedora, como dito anteriormente. A cada jogada, deve ser impresso na tela o estado atual do jogo, ou seja, quantas peças foram removidas na última jogada e quantas restam na mesa. Quando a última peça é removida, essa função imprime na tela a mensagem "O computador ganhou!" ou "Você ganhou!" conforme o caso
Pendente:
Necessário analisar o melhor de 3 e encerrar o programa
printar na tela, print("**** Rodada %s ****" % rodada) a cada rodada
def computador_escolhe_jogada(n, m):
if (n <= 1):
rodada = 1
rodada = rodada + 1
print(" ")
print("O computador tirou %s peça." % m)
print("Fim do jogo! O computador ganhou!")
print(" ")
print("**** Rodada %s ****" % rodada)
print(" ")
com_joga = ((n )%(m + 1))
if (com_joga == 0):
n = n - m
print("O computador tirou %s peça." % m)
print("Agora restam %s peças no tabuleiro." % n)
usuario_escolhe_jogada(n, m)
else:
n = n - 1
print("O computador tirou uma peça.")
print("Agora restam %s peças no tabuleiro." % n)
usuario_escolhe_jogada(n, m)
def usuario_escolhe_jogada(n, m):
print(" ")
n_user = int(input("Quantas peças você vai tirar? "))
print("Voce tirou %s peças." % n_user)
if (n_user <= m):
n_pecas = n - n_user
print(" ")
print("Agora restam apenas %s peças no tabuleiro." % n_pecas)
n = n_pecas
computador_escolhe_jogada(n, m)
else:
while (n_user > m):
print("Oops! Jogada inválida! Tente de novo.")
print(" ")
n_user = int(input("Quantas peças você vai tirar? "))
if (n_user <= m):
computador_escolhe_jogada(n, m)
def partida():
n = int(input("Quantas peças? "))
m = int(input("Limite de peças por jogada? "))
com_joga = ((n )%(m + 1))
if (com_joga == 1):
print(" ")
print("Computador Começa!!")
computador_escolhe_jogada(n, m)
else:
print(" ")
print("Voce começa!")
usuario_escolhe_jogada(n, m)
rodada = 1
print("Bem-vindo ao jogo do NIM! Escolha:")
print(" ")
print("1 - para jogar uma partida isolada ")
tipo_jogo = int(input("2 - para jogar um campeonato "))
print(" ")
if ( tipo_jogo == 1 ):
print("Voce escolheu partida isolada!")
if ( tipo_jogo == 2):
print("Voce escolheu um campeonato!")
print(" ")
print("**** Rodada %s ****" % rodada)
print(" ")
partida()
Pergunta
mariogottinari
Boa tarde Galera, estou encalhado nesta condição. Alguém poderia ajudar como solucionar os dois pontos abaixo?
Condições:
def computador_escolhe_jogada(n, m): if (n <= 1): rodada = 1 rodada = rodada + 1 print(" ") print("O computador tirou %s peça." % m) print("Fim do jogo! O computador ganhou!") print(" ") print("**** Rodada %s ****" % rodada) print(" ") com_joga = ((n )%(m + 1)) if (com_joga == 0): n = n - m print("O computador tirou %s peça." % m) print("Agora restam %s peças no tabuleiro." % n) usuario_escolhe_jogada(n, m) else: n = n - 1 print("O computador tirou uma peça.") print("Agora restam %s peças no tabuleiro." % n) usuario_escolhe_jogada(n, m) def usuario_escolhe_jogada(n, m): print(" ") n_user = int(input("Quantas peças você vai tirar? ")) print("Voce tirou %s peças." % n_user) if (n_user <= m): n_pecas = n - n_user print(" ") print("Agora restam apenas %s peças no tabuleiro." % n_pecas) n = n_pecas computador_escolhe_jogada(n, m) else: while (n_user > m): print("Oops! Jogada inválida! Tente de novo.") print(" ") n_user = int(input("Quantas peças você vai tirar? ")) if (n_user <= m): computador_escolhe_jogada(n, m) def partida(): n = int(input("Quantas peças? ")) m = int(input("Limite de peças por jogada? ")) com_joga = ((n )%(m + 1)) if (com_joga == 1): print(" ") print("Computador Começa!!") computador_escolhe_jogada(n, m) else: print(" ") print("Voce começa!") usuario_escolhe_jogada(n, m) rodada = 1 print("Bem-vindo ao jogo do NIM! Escolha:") print(" ") print("1 - para jogar uma partida isolada ") tipo_jogo = int(input("2 - para jogar um campeonato ")) print(" ") if ( tipo_jogo == 1 ): print("Voce escolheu partida isolada!") if ( tipo_jogo == 2): print("Voce escolheu um campeonato!") print(" ") print("**** Rodada %s ****" % rodada) print(" ") partida()
Link para o comentário
Compartilhar em outros sites
6 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.