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"); }