void ProximaGeracao(Cromossomo primeiro, Cromossomo segundo) { Cromossomo penultimo = new Cromossomo(); Cromossomo ultimo = new Cromossomo(); if (SaveControl.RetornarEvolutionState()) { int menor = 10; for (int i = 0; i < cromossomosUsados.Count; i++) { if (cromossomosUsados[i].FuncaoAvaliacao() <= menor) { menor = cromossomosUsados[i].FuncaoAvaliacao(); if (i == 0) { penultimo = cromossomosUsados[i]; ultimo = cromossomosUsados[i]; } else { ultimo = penultimo; penultimo = cromossomosUsados[i]; } } } } else { int maior = 0; for (int i = 0; i < cromossomosUsados.Count; i++) { if (cromossomosUsados[i].FuncaoAvaliacao() >= maior) { maior = cromossomosUsados[i].FuncaoAvaliacao(); if (i == 0) { penultimo = cromossomosUsados[i]; ultimo = cromossomosUsados[i]; } else { ultimo = penultimo; penultimo = cromossomosUsados[i]; } } } } cromossomosUsados[penultimo.id].cromossomo = primeiro.cromossomo; cromossomosUsados[ultimo.id].cromossomo = segundo.cromossomo; arquivoGame.cromossomos = cromossomosUsados; SaveControl.AtualizarArquivoJogo(arquivoGame); }
void Selecao() { Cromossomo primeiro = new Cromossomo(); Cromossomo segundo = new Cromossomo(); if (SaveControl.RetornarEvolutionState()) { int maior = 0; for (int i = 0; i < cromossomosUsados.Count; i++) { if (cromossomosUsados[i].FuncaoAvaliacao() >= maior) { maior = cromossomosUsados[i].FuncaoAvaliacao(); if (i == 0) { primeiro = cromossomosUsados[i]; segundo = cromossomosUsados[i]; } else { segundo = primeiro; primeiro = cromossomosUsados[i]; } } } } else { int menor = 10; for (int i = 0; i < cromossomosUsados.Count; i++) { if (cromossomosUsados[i].FuncaoAvaliacao() <= menor) { menor = cromossomosUsados[i].FuncaoAvaliacao(); if (i == 0) { primeiro = cromossomosUsados[i]; segundo = cromossomosUsados[i]; } else { segundo = primeiro; primeiro = cromossomosUsados[i]; } } } } Crossover(primeiro, segundo); }
private void RetornaStringFormatadaEvolutionState() { if (SaveControl.RetornarEvolutionState() == true) { evolveState.text = "Dificultando"; } else { evolveState.text = "Facilitando"; } }