package ia;
import java.util.Set;
import java.util.TreeSet;
import com.jogamp.opengl.GLAutoDrawable;
public class Carlos implements IFigura, Comparable {
private Posicao posicao;
private String nome;
private boolean estado;
public Carlos(Posicao posicao, String nome, boolean estado) {
this.posicao = posicao;
this.nome = nome;
this.estado = estado;
}
public Posicao getPosicao() {
return posicao;
}
public void setPosicao(Posicao posicao) {
this.posicao = posicao;
}
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public boolean getEstado() {
return estado;
}
public void setEstado(boolean estado) {
this.estado = estado;
}
@Override
public String devolverNome() {
// TODO Auto-generated method stub
return this.nome;
}
@Override
public void Capturar(IAmbiente ambiente) {
IAgente[] nome = ambiente.listarAgentes();
//
@Override
public void Escapar(IAmbiente ambiente) {
// estou a pergubtar ao ambiente quem tá a pegar ou aonde está ameaça e a quê posicao se encontra o agente inimigo
Set<Posicao> posicao = new TreeSet<Posicao>(); ambiente.devolverAmeaca().devolverPosicao();
//se ambiente validar uma nova posicao da diagonal cima direita.
if(ambiente.validar(new Posicao(this.posicao._fila-1, this.posicao._coluna+1))==true) {
alterarPosicao(new Posicao(this.posicao._fila-1, this.posicao._coluna+1));
// Senão se ambiente validar a nova posicao da direita
}else if(ambiente.validar(new Posicao(this.posicao._fila, this.posicao._coluna+1))==true){
alterarPosicao(new Posicao(this.posicao._fila, this.posicao._coluna+1));
// Senão se ambiente validar a nova posicao da diagonal baixo direita
}else if(ambiente.validar(new Posicao(this.posicao._fila+1, this.posicao._coluna+1))==true) {
alterarPosicao(new Posicao(this.posicao._fila+1, this.posicao._coluna+1));
// Senão se ambiente validar a nova posicao da baixo
}else if(ambiente.validar(new Posicao(this.posicao._fila+1, this.posicao._coluna))==true) {
alterarPosicao(new Posicao(this.posicao._fila+1, this.posicao._coluna));
// Senão se ambiente validar a nova posicao da diagonal baixo esquerda
}else if(ambiente.validar(new Posicao(this.posicao._fila+1, this.posicao._coluna-1))==true) {
alterarPosicao(new Posicao(this.posicao._fila+1, this.posicao._coluna-1));
// Senão se ambiente validar a nova posicao da Esquerda
}else if(ambiente.validar(new Posicao(this.posicao._fila, this.posicao._coluna-1))==true) {
alterarPosicao(new Posicao(this.posicao._fila, this.posicao._coluna-1));
// Senão se ambiente validar a nova posicao da cima Esquerda
}else if(ambiente.validar(new Posicao(this.posicao._fila-1, this.posicao._coluna-1))==true) {
alterarPosicao(new Posicao(this.posicao._fila-1, this.posicao._coluna-1));
// Senão se ambiente validar a nova posicao da cima
}else if(ambiente.validar(new Posicao(this.posicao._fila-1, this.posicao._coluna))==true) {
alterarPosicao(new Posicao(this.posicao._fila-1, this.posicao._coluna));
}
}
@Override
public Posicao devolverPosicao() {
// TODO Auto-generated method stub
return this.posicao;
}
@Override
public void alterarPosicao(Posicao posicao) {
// TODO Auto-generated method stub
this.posicao = posicao;
}
@Override
public boolean devolverEstado() {
return this.estado;
}
@Override
public void alterarEstado() {
// TODO Auto-generated method stub
this.estado = !estado;
}
@Override
public void desenha(GLAutoDrawable drawable) {
// TODO Auto-generated method stub
}
@Override
public int compareTo(Carlos ar) {
return this.posicao.compareTo(ar.posicao);
}
}