mental_katsu Postado Junho 17, 2022 Compartilhar Postado Junho 17, 2022 Olá a todos. Desculpem a ignorância. Nesse momento se ela for uma benção, estou muito abençoado. Eu defini funções descritas no código que vou colar abaixo. Eu testei as funções separadamente e retornaram os valores que eu desejava. Porém, quando executo o programa completo a função partida não lê as variáveis x e z que foram retornadas nas funções usuario_escolhe_jogada e computador_escolhe_jogada. Conseguem me dar uma luz? Obrigado! def usuario_escolhe_jogada(n, m): z = int(input("Quantas peças você vai tirar? ")) while z > m or z <= 0: print("Oops! Jogada inválida! Tente de novo.") z = int(input("Quantas peças você vai tirar? ")) return z def computador_escolhe_jogada(n, m): x = m while x > 0: if (n - x) % (m + 1) != 0: x = x-1 else: break if x == 0: x = m return x else: return x def partida(): n = int(input("Quantas peças? ")) m = int(input("Limite de peças por jogada? ")) if n % (m + 1) == 0 : print("Você começa!") usuario_escolhe_jogada(n, m) print("Voce tirou", z, "peças.") n = (n - z) if n == 0: print("Fim do jogo! Você ganhou!") else: if n == 1: print("Agora resta apenas uma peça no tabuleiro.") computador_escolhe_jogada(n, m) else: print("Agora restam", n, "peças no tabuleiro") computador_escolhe_jogada(n, m) else: print("Computador começa!") computador_escolhe_jogada(n, m) print("O computador tirou", x, "peças.") n = (n - x) if n == 0: print("Fim do jogo! O computador ganhou!") else: if n == 1: print("Agora resta apenas uma peça no tabuleiro.") usuario_escolhe_jogada(n, m) else: print("Agora restam", y, "peças no tabuleiro") usuario_escolhe_jogada(n, m) def campeonato(): w = 3 while w != 0: if w == 3: print("**** Rodada 1 ****") w = w - 1 partida() elif w == 2: print("**** Rodada 2 ****") w = w - 1 partida() else: print("**** Rodada 3 ****") partida() w = w - 1 print("**** Final do campeonato! ****") print("Placar: Você 0 X 3 Computador") print("Bem-vindo ao jogo do NIM! Escolha:") print("1 - para jogar uma partida isolada") a = int(input("2 - para jogar um campeonato: ")) while a!=1 and a !=2: print("opção inválida") print("1 - para jogar uma partida isolada") a = int(input("2 - para jogar um campeonato: ")) if a == 1: print("Voce escolheu uma partida isolada") partida() else: print("Voce escolheu um campeonato!") campeonato() Link to comment Compartilhe em outros sites Outras opções de compartilhamento...
Pessoal da TecnoSpeed Thanael Postado Junho 18, 2022 Pessoal da TecnoSpeed Compartilhar Postado Junho 18, 2022 Olá @mental_katsu tudo bem? Andei vendo seu código, e esta faltando armazenar os returns das suas funções em variáveis. Nesse caso deveria ser. if n == 1: print("Agora resta apenas uma peça no tabuleiro.") z = computador_escolhe_jogada(n, m) else: print("Agora restam", n, "peças no tabuleiro") x = computador_escolhe_jogada(n, m) Pois o return seria algo tipo "Retornar alguma coisa para ser usada fora da função", porém para que seja possível utilizar este retorno você tem que armazenar ele em uma variável como no exemplo acima.Deste modo sempre que existir o return na função, você devera chamar essa função armazenando em uma variavel para receber o valor do return. Exemplo: def numero_ao_quadrado(numero): return numero**2 # Deste modo poderei usar o return da função numero = numero_ao_quadrado(4) # Caso so exista a chamada da função o return não fica armazenado em nenhum lugar numero_ao_quadrado(4) Tenta ajustar as chamadas das suas funções para ver se irá funcionar o código, após isso avisa aqui se deu certo ou não. Também estou a disposição para lhe auxiliar em quaisquer dúvidas que possam surgir. 😀 Link to comment Compartilhe em outros sites Outras opções de compartilhamento...
Postagens Recomendadas
Crie uma conta ou entre para comentar 😀
Você precisa ser um membro para deixar um comentário.
Crie a sua conta
Participe da nossa comunidade, crie sua conta.
Criar minha conta agoraÉ bem rápido!
Entrar
Você já tem uma conta?
Entrar agoraFaça o login agora.