quinta-feira, 18 de junho de 2020

Teoria dos jogos ou Teoria de jogos é um ramo da matemática aplicada que estuda situações estratégicas onde jogadores escolhem diferentes ações na tentativa de melhorar seu retorno. 
https://pt.wikipedia.org/wiki/Teoria_dos_jogos

O Nim é um jogo que foi originado na antiga China para dois jogadores. Foi o primeiro jogo a ser estudado matematicamente
https://pt.wikipedia.org/wiki/Nim_(jogo)

Esse material foi escrito com o objetivo de organizar o estudo para alunos da disciplina Introdução à Computação em Python.
https://panda.ime.usp.br/aulasPython/static/aulasPython/index.html

Curso de Introdução à Ciência da Computação destinado aos alunos regulares da Universidade de São Paulo e a todos os demais interessados em aprender não só a programar em Python mas também os conceitos básicos da Ciência da Computação!
https://www.coursera.org/learn/ciencia-computacao-python-conceitos
https://docs.python.org/pt-br/3/library/index.html
#Jogo do NIM - Python 3 - USP Coursera Week6
def computador_escolhe_jogada(n,m):
    tirou = 1
    while tirou != m:
        if (n - tirou) % (m+1) == 0:
            return tirou
        else:
           tirou += 1
    return tirou
def usuario_escolhe_jogada(n,m):
    jogada = False
    while not jogada:
        tira=int(input('\nQuantas peças você vai tirar?'))
        if tira < 1 or tira > m:
            print('\nOops! Jogada inválida! Tente de novo.')
        else:
            jogada = True
    return tira
def partida():
    n=int(input('Quantas peças?'))
    m=int(input('Limite de peças por jogada?'))
    comp = False
    if n % (m+1) == 0:
        print('\nVoce começa!')
    else:
        print('\nComputador começa!')
        comp = True
    while n > 0:
        if comp:
            tirou = computador_escolhe_jogada(n,m)
            n -= tirou
            if tirou == 1:
                print('\nO computador tirou uma peça')
            else:
                print('\nO computador tirou',tirou,'peças')
            comp = False
        else:
            tira = usuario_escolhe_jogada(n,m)
            n -= tira
            if tira == 1:
                print('\nVocê tirou uma peça.')
            else:
                print('Você tirou',tira, 'peças.')
            comp = True
        if n == 1:
            print('Agora resta apenas uma peça no tabuleiro.')
        elif n != 0:
            print ('Agora restam,', n, 'peças no tabuleiro.')
    print('Fim do jogo! O computador ganhou!')       
def campeonato():
    rodada = 1
    while rodada <= 3:
        print("\n**** Rodada",rodada,"****\n")
        partida()
        rodada += 1
    print("\n**** Final do campeonato! ****")
    print("\nPlacar: Você 0 X 3 Computador") 

print("Bem-vindo ao jogo do NIM! Escolha:\n")
print("1 - para jogar uma partida isolada")
escolha=int(input("2 - para jogar um campeonato"))
if escolha == 1:
    partida()
elif escolha == 2:
    print("\nVoce escolheu um campeonato!")
    campeonato()

Obrigado a ajuda:https://gist.github.com/hbenevides/d08965aa89d02c5b139635f0bb851368

Dicas,dúvidas e sugestões deixe abaixo nos comentários.  👇

2 comentários:

  1. hehehe....da até pra criar um joguinho em meu amigo?

    ResponderExcluir
  2. Ola Marcos, e o Fabricio né, eu estava cometendo o erro de fazer as funcoes se alternar e já retornar as var m e n, e tinha que ser tudo dentro da função partida. lol

    ResponderExcluir