Example #1
0
        private void NuevoJuego()
        {
            numHoles = GetNumHolesByDificultad();

            btnResolverPulsado = false;
            SudokuGenerator sg     = new SudokuGenerator();
            bool            solved = false;

            do
            {
                sg.nextBoard(numHoles);
                BoardInitial = sg.Board;
                BoardSolved  = (int[, ])sg.Board.Clone();
                SudokuSolver ssolver = new SudokuSolver(9, BoardSolved);
                solved = ssolver.SolveSudokuMethod(BoardSolved);
            }while (!solved);

            celdas = new List <Celda>();
            for (int i = 0; i < numRows; i++)
            {
                for (int j = 0; j < numColumns; j++)
                {
                    Celda c     = new Celda();
                    int   index = i * NumRows + j;
                    int   value = sg.Board[i, j];
                    if (value != 0)
                    {
                        c.Texto   = value.ToString();
                        c.IsFixed = true;
                    }
                    else
                    {
                        c.Texto   = "";
                        c.IsFixed = false;
                    }
                    c.Index          = index;
                    c.Number         = value;
                    c.Row            = i;
                    c.Column         = j;
                    c.NumberChanged += CellVMNumberChanged;
                    c.UpdateBackground();
                    celdas.Add(c);
                }
            }

            RaisePropertyChanged("Celdas");
        }