private bool CheckMoveMade(int row, int column, int number, SudokuPattern pattern)
        {
            if (this.Moves.Count == 0)
            {
                return(false);
            }

            int count = 0;

            foreach (SudokuMove move in this)
            {
                count++;
                int nextCount = 0;

                foreach (SudokuMove nextMove in this)
                {
                    nextCount++;
                    if (Object.ReferenceEquals(move, nextMove))
                    {
                        continue;
                    }

                    if (SudokuSolver.Compare(move.Rows, nextMove.Rows) && SudokuSolver.Compare(move.Columns, nextMove.Columns) && SudokuSolver.Compare(move.Numbers, nextMove.Numbers) && move.Pattern == nextMove.Pattern)
                    {
                        return(true);
                    }
                }
            }

            foreach (SudokuMove move in this)
            {
                if (move.Pattern == pattern && move.Rows.Contains(row) && move.Columns.Contains(column) && move.Numbers.Contains(number))
                {
                    return(true);
                }
            }

            return(false);
        }