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 ... * **********************************************************************/
Last modified: Wed May 5 08:54:39 EST 1999