Fundamentos Lógicos da IA - 2023-1
UnB-\(\gamma\)

Table of Contents

1. Mundo de Wumpus

1.1. Funcionamento

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.

1.2. Exemplos de Mapa

1.2.1. Exemplo 1

#######
#.....#
#>....#
#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: Bruno Ribas e Guilherme Puida

Created: 2023-05-11 Thu 14:52

Validate