Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.util.Random;
- /**
- * Created by tiagobotelho on 14/12/14.
- */
- public class Hamming extends Agente{
- public Hamming(String forma,String cor,Coord pos,int lifespan) {
- super(forma, cor, pos,lifespan);
- }
- public String toString() {
- return "Agente Hamming:\n"+super.toString();
- }
- public void move(Ambiente a) {
- Random rd = new Random();
- Objeto hamm;
- int aux;
- int final_aux=0;
- int coorx = 0;
- int coory = 0;
- lifespan--;
- if(lifespan>=1) { //se ainda nao for a ultima jogada do agente
- memory.inserePercepcaoM(perception);
- if(perception.getVisao().isEmpty()) { //se estiver vazio salta para uma posicao random
- pos.setX(rd.nextInt(a.getWidth())+1);
- pos.setY(rd.nextInt(a.getHeight())+1);
- }
- else {
- for(Objeto obj: perception.getVisao()) { //comparacao de todas as precepcoes
- aux=4;
- for(Objeto mobj: memory.getObjetos()) { //com todos os objetos em memoria para calcHamming
- if(aux > obj.calcHamming(mobj)){
- aux=obj.calcHamming(mobj);
- }
- }
- if(final_aux < aux) {
- final_aux = aux;
- hamm=obj;
- coorx=obj.getPos().getX(); //obtem as coordenadas do que tiver maior Hamming
- coory=obj.getPos().getY();
- }
- }
- hamm = perception.getVisao().get(rd.nextInt(perception.getVisao().size()));
- memory.addtoObjetos(hamm);
- pos.setX(coorx); //adiciona na memoria e salta para o objeto correspondente (hamm)
- pos.setY(coory);
- }
- this.vision_camp(a);
- this.add_to_walk(new Coord(pos.getX(), pos.getY()));
- }
- else {
- a.getEntidades().remove(a.getEntidades().indexOf(this));
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement