Example #1
0
        public static IDifficultyCalculator GetCalculator(HashSet <Type> blockTypes)
        {
            bool containsChangeDirection = blockTypes.Contains(typeof(GameBlockChangeDirection));
            bool containsExtraMove       = blockTypes.Contains(typeof(GameBlockExtraMove));
            bool containsMultipleMoves   = blockTypes.Contains(typeof(GameBlockMultipleMoves));

            IDifficultyCalculator calculator;

            if (!containsChangeDirection && !containsExtraMove && !containsMultipleMoves)
            {
                calculator = new NormalOnlyDifficultyCalculator();
            }
            else if (containsChangeDirection && !containsExtraMove && !containsMultipleMoves)
            {
                calculator = new ChangeDirectionDifficultyCalculator();
            }
            else
            {
                calculator = new DefaultDifficultyCalculator();
            }

            return(calculator);
        }
        public static IDifficultyCalculator GetCalculator(HashSet<Type> blockTypes)
        {
            bool containsChangeDirection = blockTypes.Contains(typeof(GameBlockChangeDirection));
            bool containsExtraMove = blockTypes.Contains(typeof(GameBlockExtraMove));
            bool containsMultipleMoves = blockTypes.Contains(typeof(GameBlockMultipleMoves));

            IDifficultyCalculator calculator;

            if (!containsChangeDirection && !containsExtraMove && !containsMultipleMoves)
            {
                calculator = new NormalOnlyDifficultyCalculator();
            }
            else if (containsChangeDirection && !containsExtraMove && !containsMultipleMoves)
            {
                calculator = new ChangeDirectionDifficultyCalculator();
            }
            else
            {
                calculator = new DefaultDifficultyCalculator();
            }

            return calculator;
        }