public void step() {
    	
    	for(int a = 0; a < agents.length; a++) {
			agents[a].hasMoved = false;
    	}
    	
    	for(int i = 0; i < numStrategies; i++) {
    		averageScoreStrat[i] = 0;
    		averageEncountersStrat[i] = 0;
    	}
    	
    	for(int a = 0; a < agents.length; a++) {
			agents[a].act();
			
			String strategy = agents[a].getStrategy();
			for(int i = 0; i < numStrategies; i++) {
				if(strategy.equals(strategies[i])) {
					averageScoreStrat[i] += agents[a].getScore();
					averageEncountersStrat[i] += agents[a].getEncounters();
				}
	    	}
	    }
	    
    	for(int i = 0; i < numStrategies; i++) {
    		if(agentsStrat[i] != 0) {
    			averageScoreStrat[i] = averageScoreStrat[i] / (double)agentsStrat[i];
    		}
    		if(averageEncountersStrat[i] != 0) {
    			averageEncountersStrat[i] = averageEncountersStrat[i] / (double)agentsStrat[i];
    		}
    	}
    	
    	Arrays.sort(agents);
    }