Example #1
0
    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);
    }
Example #2
0
    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);
    }
Example #3
0
 private void RetornaStringFormatadaEvolutionState()
 {
     if (SaveControl.RetornarEvolutionState() == true)
     {
         evolveState.text = "Dificultando";
     }
     else
     {
         evolveState.text = "Facilitando";
     }
 }