package sokobanevo.evolution;

import java.util.ArrayList;

/**
 * Computes fitness of given range of individuals in population.
 * 
 * Designed to be launched on separated thread.
 * 
 * @author Payne
 */
public class IndividumFitness implements Runnable{
    
    private final int from;
    private final int[] generationFitnessArray;
    private final ArrayList<char[]> baseMap;
    private final ArrayList<char[]> deadlockMap;
    private final int to;
    private final ArrayList<char[]> population;

    IndividumFitness(int from, int to, int[] generationFitnessArray, ArrayList<char[]> baseMap, ArrayList<char[]> deadlockMap, ArrayList<char[]> population) {
        this.from = from;
        this.to = to;
        this.generationFitnessArray = generationFitnessArray;
        this.baseMap = baseMap;
        this.population = population;
        this.deadlockMap = deadlockMap;
    }

    @Override
    public void run() {
        for(int i = from; i < to; i++){
            EvolutionSokoSolver.individumFitnessCompute(i, generationFitnessArray, baseMap, deadlockMap, population.get(i));
        }
    }
    
}
