public class Ant { public Square SQUARE; //蚂蚁所在方格 public Food CARRYING = null; //所搬的食物数 public int ID; //蚂蚁的编号 public boolean HELPING = false; //是否帮忙搬运食物
public class Square { public Square NE; //附近的8个方向的方格
public Square N; public Square NW; public Square W; public Square SW; public Square S; public Square SE; public Square E; public LinkedList ANTS; //本方格中包含的蚂蚁 public Food FOOD; //本方格中包含的食物数 public Nest NEST; //方格为蚁穴 public Pheromone_1 PHEROMONE_1; //本方格中的外激素含量 public int X; //本方格的坐标 public int Y; private World WORLD; //所属的环境 public boolean WALL; //是否有障碍物
public Square(int x, int y, World world) { FOOD = null; NEST = null; PHEROMONE_1 = null; X = x; Y = y; WORLD = world; WALL = false; ANTS = new LinkedList(); }
3、环境:环境是由多个方格组成的,是一个平面的,因此用一个方格的二维数组来表示是最合适不过的。
public class World { private Square[][] WORLD; //定义环境二维数组 private int WIDTH; //环境的长宽 private int HEIGHT; private Pheromone_1List P1LIST; //保存所有外激素的列表
public World(Pheromone_1List p1list) { this.WIDTH = Settings.WIDTH; this.HEIGHT = Settings.HEIGHT; this.P1LIST = p1list; WORLD = new Square[WIDTH][HEIGHT]; }