private void Btn_Solve_Click(object sender, RoutedEventArgs e) { //generate the sudoku from the textboxes var cells = new ICell[size, size]; textBoxes.ForEach((TextBox textbox, RowColumnPointer pointer) => { cells[pointer.Row, pointer.Column] = new Cell(textbox.Text.Equals("") ? 0 : uint.Parse(textbox.Text)); }); var sudoku = new Sudoku(cells); //solves the sudoku var solver = new SmartBruteForceSolver(sudoku); solver.Solve(); //set the textboxes to the solved values textBoxes.ForEach((TextBox textbox, RowColumnPointer pointer) => { textbox.Text = solver.Sudoku.Cells[pointer.Row, pointer.Column].Value.ToString(); }); }