Example #1
0
        protected override void Initialize()
        {
            if (jugadores != null)
            {
                foreach (Jugador j in jugadores)
                {
                    Components.Remove(j);
                }
            }
            if (comidas != null)
            {
                foreach (Comida c in comidas)
                {
                    Components.Remove(c);
                }
            }

            //Al forzar el recolector de basura no importa hacer New aqui:
            rnd       = new Random();
            jugadores = new Jugador[JUGADORES];
            comidas   = new Comida[rnd.Next(COMIDA_MIN, COMIDA_MAX)];

            //Inicializando los jugadores:
            for (int i = 0; i < jugadores.Length; i++)
            {
                jugadores[i] = new Jugador(this, rnd.Next(ESCENARIO.Left, ESCENARIO.Right), rnd.Next(ESCENARIO.Top, ESCENARIO.Bottom), TAMANO_JUGADOR);
                Components.Add(jugadores[i]); //Con esto se grafican y actualizan automaticamente.
            }

            //Inicializando la comida:
            for (int i = 0; i < comidas.Length; i++)
            {
                comidas[i] = new Comida(this, rnd.Next(ESCENARIO.Left, ESCENARIO.Right), rnd.Next(ESCENARIO.Top, ESCENARIO.Bottom), TAMANO_COMIDA);
                Components.Add(comidas[i]);
            }


            ia.Generation(jugadores, comidas);
            generacion++;

            base.Initialize();

            //Se fuerza el recolector de basura:
            GC.Collect();
        }
 public void Generation(Jugador[] jugadores, Comida[] comidas)
 {
     //Actualizar los fitness de la poblacion actual y correr una epoca evolutiva en la poblacion
     if (this.comidas != null && this.jugadores != null) //Generacion posterior a la primera
     {
         for (int i = 0; i < jugadores.Length; i++)
             ((gameChromosome)poblacion[i]).chromoFitness = this.jugadores[i].Fitness();
         poblacion.RunEpoch();
     }
     //Transformar la poblacion actual a redes neuronales controladoras
     for (int i = 0; i < poblacion.Size; i++)
         ChromosomeNetworkMapper.ChromosomeToNetwork((gameChromosome)poblacion[i], redes[i]);
     this.jugadores = jugadores;
     this.comidas = comidas;
 }
        protected override void Initialize()
        {
            if (jugadores != null) foreach (Jugador j in jugadores) Components.Remove(j);
            if (comidas != null) foreach (Comida c in comidas) Components.Remove(c);

            //Al forzar el recolector de basura no importa hacer New aqui:
            rnd = new Random();
            jugadores = new Jugador[JUGADORES];
            comidas = new Comida[rnd.Next(COMIDA_MIN, COMIDA_MAX)];

            //Inicializando los jugadores:
            for (int i = 0; i < jugadores.Length; i++)
            {
                jugadores[i] = new Jugador(this, rnd.Next(ESCENARIO.Left, ESCENARIO.Right), rnd.Next(ESCENARIO.Top, ESCENARIO.Bottom), TAMANO_JUGADOR);
                Components.Add(jugadores[i]); //Con esto se grafican y actualizan automaticamente.
            }

            //Inicializando la comida:
            for (int i = 0; i < comidas.Length; i++)
            {
                comidas[i] = new Comida(this, rnd.Next(ESCENARIO.Left, ESCENARIO.Right), rnd.Next(ESCENARIO.Top, ESCENARIO.Bottom), TAMANO_COMIDA);
                Components.Add(comidas[i]);
            }

            ia.Generation(jugadores, comidas);
            generacion++;

            base.Initialize();

            //Se fuerza el recolector de basura:
            GC.Collect();
        }