public static float base_score(boolean player, GameState gs) {
    	if (player) {
	    	int resources = 0;
	    	for (int i = 0; i < gs.getResourceTypes(); i++) {
	    		resources += gs.getResources(i);
	    	}
	        float score = resources*RESOURCE;
	        for(Unit u:gs.getMyUnits()) {
	                score += u.getResources() * RESOURCE_IN_WORKER;
	                int cost = 0;
	                for (int i = 0; i < u.getCost().size(); i++) {
	                	cost += u.getCost(i);
	                }
	                score += UNIT_BONUS_MULTIPLIER * (cost*u.getHP())/(float)u.getMaxHP();
	        }
	        
	        return score;
    	}
        
    	int resources = 0;
    	for (int i = 0; i < gs.getNeutralUnits().size(); i++) {
    		resources += gs.getNeutralUnits().get(i).getResources();
    	}
        float score = resources*RESOURCE;
        for(Unit u:gs.getOtherUnits()) {
                score += u.getResources() * RESOURCE_IN_WORKER;
                int cost = 0;
                for (int i = 0; i < u.getCost().size(); i++) {
                	cost += u.getCost(i);
                }
                score += UNIT_BONUS_MULTIPLIER * (cost*u.getHP())/(float)u.getMaxHP();
        }
        
        return score;
    }