package sim.app.sugarscape; import sim.engine.*; import sim.field.grid.*; import java.io.*; public /*strictfp*/ class RuleG2 implements Steppable { public double[][] sugarfield() { double temp ; final double[][] sugarMax = new double[50][50]; try{ FileReader fileReader = new FileReader("sim/app/sugarscape/sugarfield.txt"); BufferedReader sugarfield = new BufferedReader(fileReader); for(int x=0;x<50;x++) { String temp2 = new String(); if((temp2 = sugarfield.readLine())!= null) { StringReader temp3 = new StringReader(temp2); for(int y=0;y<50;y++) { if((temp = 1.0*(temp3.read()))!=-1) sugarMax[x][y] = temp-48; } } } } catch(Exception e){ e.printStackTrace(); } return sugarMax; } public void step(SimState state) { SugarScape2 sugarscape = (SugarScape2)state; final DoubleGrid2D _valgrid = sugarscape.valgrid; final double[][] _valgrid_field = sugarscape.valgrid.field; double[][] sugarfield = new double[50][50]; try{ sugarfield = sugarfield(); } catch(Exception e){} final double maxSugar = 4.0; final int _gridWidth = _valgrid.getWidth(); final int _gridHeight = _valgrid.getHeight(); final double _growthRate = sugarscape.growthRate; double temp; // for each x and y position for(int x=0;x< _gridWidth;x++) { for(int y=0;y< _gridHeight;y++) { temp = _valgrid_field[x][y]; if(temp < sugarfield[(x/2)][(y/2)]){} //_valgrid_field[x][y] = temp+_growthRate; //else //_valgrid_field[x][y] = sugarfield[(x/2)][(y/2)]; } } sugarscape.valgrid.field = _valgrid_field; } }