O agente inicia em uma posição e direção desconhecidas. A posição inicial é sempre vazia, não contendo poço, wumpus ou ouro.
Em cada rodada do jogo, o usuário recebe pela entrada padrão uma
string com cinco caracteres, representando os sensores do
agente. Os caracteres mostram se um sensor está ativo (1
) ou não (0
).
const char *input = "00000";
char tem_cheiro = input[0];
char tem_brisa = input[1];
char tem_brilho = input[2];
char bateu_na_parede = input[3];
char wumpus_gritou = input[4];
10010 -> Cheiro & Bateu na parede.
01101 -> Brisa & Brilho & Wumpus gritou.
Para jogar o jogo, o usuário deve escrever, na saída padrão, o ação que deseja executar na rodada. Os comandos são compostos por somente um caractere:
l
← rotacionar 90° para a esquerda (-1
ponto).r
← rotacionar 90° para a direita (-1
ponto).m
← andar para frente (-1 ponto).s
← atira a flecha (-10 pontos).e
← desiste do mapa.p
← pega o ouro (+1000 pontos se
houver ouro na posição).Se mover para uma posição onde existe um Wumpus ou um Poço, o jogador
morre e perde 1000
pontos.
A flecha, quando atirada, se move em linha reta até o final do mapa. Caso o Wumpus seja atingido, ele morre e o sensor de grito é ativado por um turno.
IMPORTANTE: Os sensores carregam com energia
cinética. Para realizar a leitura dos sensores, o jogador precisa
executar uma ação. Isso inclui a primeira rodada, que é realizada às
cegas. Portanto, é recomendado que a primeira ação seja de rotação
(l
ou r
), já
que não apresenta risco. Após a primeira rodada, a leitura dos sensores
ocorre normalmente.
IMPORTANTE: Sempre que o jogador tenta pegar o ouro
(p
) ou desistir (e
), deve realizar a leitura dos sensores e da
pontuação. Caso essa leitura não seja feita, a execução do programa não
finalizará corretamente e a pontuação não será atribuida ao jogador.
#######
#.....#
#>....#
#G..P.#
#P....#
#W....#
#######
A solução mais eficiente para esse mapa é a sequência de movimentos
r
m p
. Nessa solução, o jogador rotaciona para a direita (-1
ponto), se move (-1 ponto) e pega o ouro (+1000 pontos). Portanto, o
jogador termina o jogo com +998 pontos.
Author: Wumpus Clássico, com modificações de Bruno Ribas e Guilherme Puida