protected void AddDefaultRules(SimonRuleSet ruleSet) { ruleSet.RuleList.Add("HASVOWEL", new List <SimonColor[]>()); ruleSet.RuleList["HASVOWEL"].Add(new[] { SimonColor.Blue, SimonColor.Red, SimonColor.Yellow, SimonColor.Green }); ruleSet.RuleList["HASVOWEL"].Add(new[] { SimonColor.Yellow, SimonColor.Green, SimonColor.Blue, SimonColor.Red }); ruleSet.RuleList["HASVOWEL"].Add(new[] { SimonColor.Green, SimonColor.Red, SimonColor.Yellow, SimonColor.Blue }); ruleSet.RuleList.Add("OTHERWISE", new List <SimonColor[]>()); ruleSet.RuleList["OTHERWISE"].Add(new[] { SimonColor.Blue, SimonColor.Yellow, SimonColor.Green, SimonColor.Red }); ruleSet.RuleList["OTHERWISE"].Add(new[] { SimonColor.Red, SimonColor.Blue, SimonColor.Yellow, SimonColor.Green }); ruleSet.RuleList["OTHERWISE"].Add(new[] { SimonColor.Yellow, SimonColor.Green, SimonColor.Blue, SimonColor.Red }); }
protected override AbstractRuleSet CreateRules(bool useDefault) { var simonRuleSet = new SimonRuleSet { RuleList = new Dictionary <string, List <SimonColor[]> >() }; if (useDefault) { AddDefaultRules(simonRuleSet); } else { AddRules(simonRuleSet, "HASVOWEL", MaxStrikes); AddRules(simonRuleSet, "OTHERWISE", MaxStrikes); } return(simonRuleSet); }
protected void AddRules(SimonRuleSet ruleSet, string key, int num) { ruleSet.RuleList.Add(key, new List <SimonColor[]>()); for (var i = 0; i <= num; i++) { var array = new SimonColor[Enum.GetNames(typeof(SimonColor)).Length]; for (var j = 0; j < Enum.GetNames(typeof(SimonColor)).Length; j++) { array[j] = (SimonColor)rand.Next(Enum.GetNames(typeof(SimonColor)).Length); } if (CommonReflectedTypeInfo.IsModdedSeed) { while (array.Distinct().Count() == 1) { array[rand.Next(Enum.GetNames(typeof(SimonColor)).Length)] = (SimonColor)rand.Next(Enum.GetNames(typeof(SimonColor)).Length); } } ruleSet.RuleList[key].Add(array); } }