import java.awt.Color; public class SimBean { public SimBean() { environment = new BoundedEnv(10, 10); addFish(5, 5, null); addFish(3, 3, Color.blue); addFish(3, 7, Color.red); addFish(7, 3, Color.green); addFish(7, 7, Color.yellow); simulation = new Simulation(environment, dummyDisplay); } public void addFish(int row, int column, Color c) { Fish fish; Location location = new Location(row, column); if (c == null) fish = new Fish(environment, location); else fish = new Fish(environment, location, environment.randomDirection(), c); if (environment.isEmpty(location)) environment.add(fish); } public void reset(int rows, int columns) { environment = new BoundedEnv(rows, columns); simulation = new Simulation(environment, dummyDisplay); } public StringBuffer getHTML() { StringBuffer b = new StringBuffer(); b.append(""); for (int i = 0; i < environment.numRows(); i++) { b.append(""); for (int j = 0; j < environment.numCols(); j++) { b.append(""); } b.append(""); } b.append("
"); Location location = new Location(i, j); Object obj = environment.objectAt(location); if (obj instanceof Fish) { Fish fish = (Fish)obj; b.append(""); } else b.append(" "); b.append("
"); return b; } public static String colorName(Color c) { if (c.equals(Color.blue)) return "blue"; else if (c.equals(Color.red)) return "red"; else if (c.equals(Color.yellow)) return "yellow"; else if (c.equals(Color.green)) return "green"; else return "color"; } public void step() { simulation.step(); } private Environment environment; private Simulation simulation; private EnvDisplay dummyDisplay = new EnvDisplay() { public void showEnv() {} }; }