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(); }