/* Copyright 2006 by Sean Luke and George Mason University Licensed under the Academic Free License version 3.0 See the file "LICENSE" for more information */ package sim.app.antsforage; import sim.engine.SimState; public /*strictfp*/ class GreedyDecisionMaker extends DecisionMaker { public DecisionInfo getHomeDecision( final SimState state ) { int index; if( numInfos == 0 ) { return null; } for( int i = 0 ; i < numInfos ; i++ ) { processForHomeDecision( info[i] ); } // compute the maximum value index = 0; for( int i = 0 ; i < numInfos ; i++ ) if( info[i].profit > info[index].profit ) index = i; int howMany = 0; for( int i = 0 ; i < numInfos ; i++ ) if( info[i].profit == info[index].profit ) howMany++; int x = state.random.nextInt( howMany ); for( int i = 0 ; i < numInfos ; i++ ) if( info[i].profit == info[index].profit ) if( x == 0 ) return info[i]; else x--; return null; } }