//Caso não tenha um desempenho bom, refazer método para gerar população inicial de forma mais inteligente
        public override void GerarPopulacaoInicial()
        {
            /*Random rnd = new Random();
            for (int individuo = 0; individuo < TamanhoPopulacao; individuo++)
            {
                IIndividuo ind = new Sudoku(TamanhoIndividuo);
                for (int cromossomo = 0; cromossomo < TamanhoIndividuo; cromossomo++)
                {
                    int p;
                    do
                    {
                        p = rnd.Next(10);
                    } while (p == 0);
                    ind.Cromossomos[cromossomo] = p;
                }
                Populacao.Add(ind);
            }*/

            Random rnd = new Random();
            for (int individuo = 0; individuo < TamanhoPopulacao; individuo++)
            {
                IIndividuo ind = new Sudoku(TamanhoIndividuo);
                for (int cromossomo = 0; cromossomo < TamanhoIndividuo; cromossomo++)
                {
                    int p;
                    do
                    {
                        do
                        {
                            p = rnd.Next(10);
                        } while (p == 0);
                    } while (verificaRepetidoLinha(p, cromossomo, ind));
                    ind.Cromossomos[cromossomo] = p;
                }
                Populacao.Add(ind);
            }
        }
        public override IIndividuo RealizarCruzamento(IIndividuo a, IIndividuo b)
        {
            IIndividuo novo = new Sudoku(TamanhoIndividuo);
            int modulo = TamanhoIndividuo % 2;
            int metade = (TamanhoIndividuo - modulo) / 2;

            for (int indice = 0; indice < metade; indice++)
                novo.Cromossomos[indice] = a.Cromossomos[indice];

            for (int indice = metade; indice < TamanhoIndividuo; indice++)
                novo.Cromossomos[indice] = b.Cromossomos[indice];

            return novo;
        }
 public GeraSudoku(int tamanhoInd)
 {
     Solucao = new Sudoku(tamanhoInd);
     Solucao.Fitness = -30;
 }