As regras deste jogo são bem simples. Podemos definir um jogo para
cada inteiro positivo k. Fixe um k
positivo. Chamaremos o jogo Nim correspondente de
k-Nim.
As possíveis posições do jogo k-Nim são as
k-uplas de inteiros não-negativos (n_1, n_2,...,
n_k). Temos dois jogadores, chamados, digamos, L
e R, que alternam seus lances. Um lance consiste em
i entre 1 e
k e
n_i de pelo menos 1.
n_1+n_2+...+n_k diminui de pelo menos
1 a cada lance, e portanto chegamos, em algum momento, à
configuração (0,0,...,0). Naturalmente, o jogador que
tiver de jogar neste instante, não tem nenhum lance legal a seu
dispor. Convencionamos que este jogador perde o jogo. Em
outras palavras, o jogador que levar o jogo à situação
(0,0,...,0) vence o jogo.
ep1a.c,
ep1b.c ep1c.c. Para todos estes programas,
você deve assumir que k = 5.
capenguinha) e
qual dos dois jogadores será o primeiro jogador. A seguir, o programa deve
ler os lances dos dois jogadores alternadamente, verificando a legalidade de
cada lance fornecido. Naturalmente, quando um jogador vencer, o programa deve
indicar este fato, parabenizar o vitorioso, e terminar sua execução.Procure escrever este programa de forma que seu uso seja conveniente para os dois jogadores humanos.
int lance_prof_Teoria(int n1, int n2, int n3, int n4, int n5, int f);
string mens_prof_Teoria(int n1, int n2, int n3, int n4, int n5);
do professor Teoria.
ep1b é o mesmo que o
programa capenguinha (uma diferença é que o
capenguinha não faz verificações sobre a validade dos
lances).
int lance_aluno_brilhante(int n1, int n2, int n3, int n4, int n5, int f);
que jogará contra o professor Teoria. Isto é, o programa
ep1c deve receber como entrada os valores dos
n_i (como no ep1a e ep1b), deve
perguntar qual dos jogadores será o primeiro jogador, e então deve
deixar o professor Teoria e a sua função jogarem entre si, até que o
jogo termine.Será que sua função será capaz de derrotar o professor Teoria?
/*********************************************************************** * * Nome do Aluno ... Numero USP ... * * Curso ... Data ... * * Nome do Professor ... * * Exercicio Programa Numero ... * * Compilador usado ... * **********************************************************************/
Y. Kohayakawa
<yoshi@ime.usp.br>
Last modified: Wed May 5 08:54:39 EST 1999