A Inteligência Artificial
Por: Panishi • 18/4/2021 • Trabalho acadêmico • 1.647 Palavras (7 Páginas) • 319 Visualizações
Atividade:
1) Estudar o domínio do Robocode (http://robocode.sourceforge.net/).
2) Modelar o domínio Robocode fazendo a descrição PEAS de Agentes Inteligentes. Determine como seu agente deve se comportar (o seu agente) e comece especificando em alto nível conceitual, e posteriormente ser mais específico e detalhado. Para tal basear-se na API do Robocode para detalhamento, e na estratégia escolhida por você para conceitualizar o seu robô.
3) Justificar as medidas de desempenho especificadas para o agente que está modelando.
4) Descrever o tipo de ambiente de tarefa do agente em termos de suas propriedades, dando justificativas com base nas definições.
5) Identificar a arquitetura de agente mais adequada ao ambiente e tarefa para servir de referência para a implementação do agente.
2) Modelar o domínio Robocode fazendo a descrição PEAS de Agentes Inteligentes. Determine como seu agente deve se comportar (o seu agente) e comece especificando em alto nível conceitual, e posteriormente ser mais específico e detalhado. Para tal basear-se na API do Robocode para detalhamento, e na estratégia escolhida por você para conceitualizar o seu robô.
Robocode é uma plataforma interativa gameficada de competição entre robôs virtuais programados em linguagem JAVA, onde após a programação e execução qualquer outro comando só poderá ser alterado ou incluído após finalização do jogo, edição de código e nova execução.
O conjunto que compõe o robô é separado em 3 partes, importantes para o entendimento do modelo de domínio aplicado:
- Corpo:
- Movimentos aplicados:
- Frente;
- Ré;
- Direita;
- Esquerda;
- Canhão:
- Gira em seu eixo:
- Movimento horário, 360°;
- Movimento anti-horário, 360°;
- Tiro:
- Potência:
- Energia aplicada para desferir ataque;
[pic 1] [pic 2][pic 3]
Ainda há o sensor de leitura do espaço, vital para a funcionalidade comportamento aplicado ao robô. Esse sensor é o radar, que gira em ângulo de 45°, varrendo um espaço de até 1.200 unidades de distâncias.
package Robos1;
import robocode.*;
/**
* RoboLaysa - a robot by
*/
public class Robo extends Robot
{
/**
* run: Robo default behavior
*/
public void run() {
while(true) {
// Enquanto receber true, execução será constante
int i=(int) (Math.random()*400);
int j=(int) (Math.random()*400);
int k=(int) (Math.random()*400);
//Movimentação do robô
ahead(i);
turnRight(j);
back(k);
//Movimentação do canhão
turnGunRight(360);
turnGunLeft(360);
}
}
public void onScannedRobot(ScannedRobotEvent e) {
// Esse método scanner robô inimigo e é executado
// Sequência de tiros intensivos
fire(5);
// Se movimentar quando avistar inimigo
ahead(100);
}
public void onHitByBullet(HitByBulletEvent e) {
// Esse método é executado ao levar dano do robô inimigo
// Recuar movimentação quando inimigo atirar
back(250);
// Sequência de tiros intensivos
fire(5);
}
public void onHitWall(HitWallEvent e) {
// Esse método é executado quando o robô bate na parede
int z=(int) (Math.random()*200);
int y=(int) (Math.random()*200);
int w=(int) (Math.random()*200);
//Movimentação do robô
ahead(z);
turnRight(y);
back(w);
}
}
Ao projetar esse agente, foi levado em consideração seu melhor desempenho. Assim podemos descrever o PEAS, recapitulando seu significo:
...