Ejemplo n.º 1
0
        public double Evaluate(IChromosome chromosome)
        {
            var c = chromosome as CarChromosome;

            ChromosomesToBeginEvaluation.Add(c);

            do
            {
                Thread.Sleep(1000);
                c.Fitness = c.MaxDistance + c.MaxVelocity;
            } while (!c.Evaluated);

            ChromosomesToEndEvaluation.Add(c);

            do
            {
                Thread.Sleep(100);
            } while (!c.Evaluated);

            return(c.MaxDistance + c.MaxVelocity);
        }
        public double Evaluate(IChromosome chromosome)
        {
            var c = chromosome as WallBuilderChromosome;

            ChromosomesToBeginEvaluation.Add(c);
            var remainingTime = m_secondsForEvaluation;

            do
            {
                Thread.Sleep(1000);
                remainingTime--;
            } while (!c.Evaluated && remainingTime > 0);

            ChromosomesToEndEvaluation.Add(c);

            do
            {
                Thread.Sleep(100);
            } while (!c.Evaluated);

            return(c.BricksEndPositions.Max(t => t.y));
        }
Ejemplo n.º 3
0
        public double Evaluate(IChromosome chromosome)
        {
            var c = chromosome as ShooterChromosome;

            ChromosomesToBeginEvaluation.Add(c);

            do
            {
                Thread.Sleep(100);
                c.Fitness = c.MinDistanceFromTarget;
                //Debug.Log("Begin Evaluation : " + c.ID + " : " + c.Fitness);
            } while (!c.Evaluated);

            ChromosomesToEndEvaluation.Add(c);

            do
            {
                Thread.Sleep(100);
                //Debug.Log("End Evaluation : " + c.ID + " : " + c.Fitness);
            } while (!c.Evaluated);

            return(c.MinDistanceFromTarget);
        }