private void listaGX_SelectedIndexChanged(object sender, EventArgs e) { Robot robot = (Robot)listaGX.SelectedItem; RG1.Text = robot.adn[0].ToString(); RG2.Text = robot.adn[1].ToString(); RG3.Text = robot.adn[2].ToString(); RG4.Text = robot.adn[3].ToString(); RG5.Text = robot.adn[4].ToString(); RG6.Text = robot.adn[5].ToString(); RG7.Text = robot.adn[6].ToString(); Partida nueva = new Partida(robot, esc); textpuntos.Text = nueva.puntos.ToString(); SimularRobotEscenario(robot); }
private void MetodoRecursivo(List <Robot> generacion2) { numerodegeneraciones++; List <Robot> aux = generacion2; List <Robot> seleccionados; Dictionary <Robot, int> dict = new Dictionary <Robot, int>(); foreach (Robot v in aux) { Partida partida = new Partida(v, esc); dict.Add(v, partida.puntos); } var mejores = dict.OrderByDescending(pair => pair.Value).Take(250); if (mejores.First().Value < evaluacion) { seleccionados = new List <Robot>(); foreach (var n in mejores) { seleccionados = mejores.Select(kvp => kvp.Key).ToList(); } List <Robot> generacionsiguiente = CruzarPoblacion(seleccionados); MetodoRecursivo(generacionsiguiente); } var top = dict.OrderByDescending(pair => pair.Value); int index = 0; foreach (var r in top) { listaGX.Items.Add(r.Key); generacionX.Items.Add("Sujeto" + index + ": " + r.Key.ToString() + "-----> " + r.Value.ToString()); index++; } numberGenerations.Text = numerodegeneraciones.ToString(); txtMutaciones.Text = numerodemutaciones.ToString(); }
private void botonEmpezar_Click(object sender, EventArgs e) { poblacion.Clear(); generacion1.Items.Clear(); diccionario.Clear(); diccionario1.Items.Clear(); listageneracion2.Items.Clear(); listaGX.Items.Clear(); generacionX.Items.Clear(); numerodemutaciones = 0; numerodegeneraciones = 0; this.numeropoblacion = Int32.Parse(txtPI.Text); this.evaluacion = Int32.Parse(txtEvaluacion.Text); CrearPoblacion(numeropoblacion); foreach (Robot v in poblacion) { generacion1.Items.Add(v); } //GenerarRecorrido(); foreach (Robot v in poblacion) { Partida partida = new Partida(v, esc); diccionario.Add(v, partida.puntos); } var top = diccionario.OrderByDescending(pair => pair.Value); int index = 0; foreach (var r in top) { diccionario1.Items.Add("Sujeto" + index + ": " + r.Key.ToString() + "-----> " + r.Value.ToString()); index++; } var mejores = diccionario.OrderByDescending(pair => pair.Value).Take(250); List <Robot> seleccionados = new List <Robot>(); foreach (var n in mejores) { seleccionados = mejores.Select(kvp => kvp.Key).ToList(); } List <Robot> generacion2 = CruzarPoblacion(seleccionados); foreach (Robot r in generacion2) { listageneracion2.Items.Add(r.ToString()); } MetodoRecursivo(generacion2); }