예제 #1
0
        public FichaSudoku()
        {
            ConjuntoCuadrado  conjuntoCuadrado  = new ConjuntoCuadrado();
            RestriccionSudoku restriccionSudoku = new RestriccionSudoku();
            Entero            entero            = new Entero();

            conjuntoCuadrado.generarCuadro();
            this.setForma(conjuntoCuadrado);
            entero.llenar(restriccionSudoku, conjuntoCuadrado);
            this.setContenido(entero);
        }
예제 #2
0
        public void llenar(RestriccionSudoku c, ConjuntoCuadrado conjunto)
        {
            Random        r = new Random();
            List <int>    listaAux = new List <int>();
            List <int>    encontrados = new List <int>();
            List <Cuadro> visitados = new List <Cuadro>();
            int           aux, i = 0;

            while (i < conjunto.getTamano())
            {
                Cuadro cuadro = new Cuadro();
                aux = r.Next(9);
                visitados.Clear();
                if (c.condicionContenido(aux, conjunto.getPrincipal().buscarCuadro(i + 1, visitados, cuadro)) && aux != 0)
                {
                    this.contenidoCuadro.Add(i, aux);
                    i++;
                }
                visitados.Clear();
            }
        }
예제 #3
0
        public void llenar(RestriccionSudoku c, ConjuntoCuadrado conjunto)
        {
            Random        r = new Random();
            List <int>    listaAux = new List <int>();
            List <int>    encontrados = new List <int>();
            List <Cuadro> visitados = new List <Cuadro>();
            int           aux, i = 0;
            int           aux2 = 0;
            int           aux3 = 0;

            while (i < conjunto.getTamano())
            {
                Cuadro cuadro = new Cuadro();
                aux2 = conjunto.getPrincipal().buscarCuadro(i, visitados, cuadro).recorrerFila(encontrados, visitados).Count;
                visitados.Clear();
                aux3 = conjunto.getPrincipal().buscarCuadro(i, visitados, cuadro).recorrerColumna(listaAux, visitados).Count;
                if (aux2 < aux3)
                {
                    aux = r.Next(aux2);
                }
                else if (aux2 > aux3)
                {
                    aux = r.Next(aux3);
                }
                else
                {
                    aux = r.Next(aux3);
                }
                aux = r.Next(aux3);
                visitados.Clear();
                if (c.condicionContenido(aux, conjunto.getPrincipal().buscarCuadro(i + 1, visitados, cuadro)) && aux != 0)
                {
                    this.contenidoCuadro.Add(i, aux);
                    i++;
                }
                visitados.Clear();
            }
        }