Sudoku.Board.GenerateMoves C# (CSharp) Method

GenerateMoves() private method

private GenerateMoves ( ) : IEnumerable
return IEnumerable
        private IEnumerable<Move> GenerateMoves()
        {
            for (int i = 0; i < 9; i++)
                for (int j = 0; j < 9; j++)
                {
                    Rows row = (Rows)i;
                    Columns column = (Columns)j;

                    if (GetCellValue(column, row) != Values.None) continue;

                    var options = GetValueOptions(column, row).ToArray();

                    foreach (Values option in options)
                    {
                        var score = options.Count() * 100
                            + NumberOfSquaresInColumnCouldUseValue(column, option)
                            + NumberOfSquaresInRowCouldUseValue(row, option)
                            + NumberOfSquaresInRegionCouldUseValue(column, row, option);

                        yield return new Move(
                            column,
                            row,
                            option,
                            score
                            );
                    }
                }
        }