import java.awt.Color; public class SpiralFishEnviroment { private static final int ENV_ROWS =11; private static final int ENV_COLS = ENV_ROWS; private static final int NUM_STEPS = ENV_ROWS * ENV_COLS + 2 ; private static final int DELAY = (50/ENV_ROWS*(ENV_ROWS+10)) ; public static void main(String[] args) { Location locstart = new Location(0,ENV_COLS -1); BoundedEnv env = new BoundedEnv(ENV_ROWS, ENV_COLS); SpiralFish s1 = new SpiralFish(env, locstart, Direction.SOUTH, Color.CYAN); SimpleMBSDisplay display = new SimpleMBSDisplay(env, DELAY); display.showEnv(); System.out.println("Enviroment is " + ENV_ROWS + " by " + ENV_COLS); System.out.println("Number of steps till completion is " + NUM_STEPS); System.out.println("Run Delay is " + DELAY); Location loc1 = new Location(env.numRows() - env.numCols(),env.numCols() - 1); Location loc2 = new Location(env.numRows() -1,env.numCols() -2); Location loc3 = new Location(env.numRows() - 2,env.numCols() - env.numRows()); Location loc4 = new Location(env.numRows() - env.numCols(),env.numCols() - 10); Location loc5 = new Location(env.numRows() - (env.numRows() -1),env.numCols() -2); Location loc6 = new Location(env.numRows() - 2,env.numCols() -3); Location loc7 = new Location(env.numRows() - 3,env.numCols() -10); Location loc8 = new Location(env.numRows() - 10,env.numCols() -9); Location loc9 = new Location(env.numRows() - 9,env.numCols() -3); Location loc10 = new Location(env.numRows() - 3,env.numCols() -4); Location loc11 = new Location(env.numRows() - 4,env.numCols() -9); Location loc12 = new Location(env.numRows() - 9,env.numCols() -8); Location loc13 = new Location(env.numRows() - 8,env.numCols() -4); Location loc14 = new Location(env.numRows() - 4,env.numCols() -5); Location loc15 = new Location(env.numRows() - 5,env.numCols() -8); Location loc16 = new Location(env.numRows() - 8,env.numCols() -7); Location loc17 = new Location(env.numRows() - 7,env.numCols() -5); Location loc18 = new Location(env.numRows() - 5,env.numCols() -6); Location loc19 = new Location(env.numRows() - 6,env.numCols() -7); Location loc20 = new Location(env.numRows() - 7,env.numCols() -6); Location locend = new Location(env.numRows() - 6,env.numCols() -6); // Run the simulation for the specified number of steps. for ( int i = 0; i < NUM_STEPS; i++ ) { s1.act(); display.showEnv(); if (s1.nextLocation().equals(loc1)) { s1.changeDirection(Direction.SOUTH); } if (s1.nextLocation().equals(loc2)) { s1.changeDirection(Direction.WEST); } if (s1.nextLocation().equals(loc3)) { s1.changeDirection(Direction.NORTH); } if (s1.nextLocation().equals(loc4)) { s1.changeDirection(Direction.EAST); } if (s1.nextLocation().equals(loc5)) { s1.changeDirection(Direction.SOUTH); } if (s1.nextLocation().equals(loc6)) { s1.changeDirection(Direction.WEST); } if (s1.nextLocation().equals(loc7)) { s1.changeDirection(Direction.NORTH); } if (s1.nextLocation().equals(loc8)) { s1.changeDirection(Direction.EAST); } if (s1.nextLocation().equals(loc9)) { s1.changeDirection(Direction.SOUTH); } if (s1.nextLocation().equals(loc10)) { s1.changeDirection(Direction.WEST); } if (s1.nextLocation().equals(loc11)) { s1.changeDirection(Direction.NORTH); } if (s1.nextLocation().equals(loc12)) { s1.changeDirection(Direction.EAST); } if (s1.nextLocation().equals(loc13)) { s1.changeDirection(Direction.SOUTH); } if (s1.nextLocation().equals(loc14)) { s1.changeDirection(Direction.WEST); } if (s1.nextLocation().equals(loc15)) { s1.changeDirection(Direction.NORTH); } if (s1.nextLocation().equals(loc16)) { s1.changeDirection(Direction.EAST); } if (s1.nextLocation().equals(loc17)) { s1.changeDirection(Direction.SOUTH); } if (s1.nextLocation().equals(loc18)) { s1.changeDirection(Direction.WEST); } if (s1.nextLocation().equals(loc19)) { s1.changeDirection(Direction.NORTH); } if (s1.nextLocation().equals(loc20)) { s1.changeDirection(Direction.EAST); } if (s1.location().equals(locend)) { System.out.println("End!"); } } } }