in Sudoku/Board.cs [52:59]
public Board TryNextNumber()
{
GetCellToTry(out var activeRow, out var activeCol);
var number = Cell(activeRow, activeCol).PopNextNumber();
return number != NumberEx.Unknown
? new Board(CopyCells(), activeRow, activeCol, number, _emptyCellsCount - 1)
: null; // we tried all numbers and all branches finished by dead end
}