public void BreakItUp(int[] results) { Results.DisplayResults(results); Console.WriteLine("{0,5} - {1,5}", "value", "total"); var outval = from rolls in results //orderby rolls descending group rolls by rolls into rollGroup select new { rollGroup, rollCount = rollGroup.Count() }; foreach (var item in outval) { Console.WriteLine("{0,3} - {1,3}", item.rollGroup.Key, item.rollCount); } int resultsSum = results.Sum(); double resultsAverage = results.Average(); Console.WriteLine("Sum: {0}", results.Sum()); Console.WriteLine("Average: {0}", results.Average()); Console.WriteLine("Type 'y' to order results"); string orderReq = Console.ReadLine(); if (orderReq == "y") { Console.WriteLine("{0,5} - {1,5}", "value", "total"); var outvalRolls = results.OrderByDescending(n => n).GroupBy(n => n);//lambdas are supposed to be more clear? foreach (var number in outvalRolls) { Console.WriteLine("{0,3} - {1,3}", number.Key, number.Count()); } } else { //not sure what I'm putting here } }
static void Main(string[] args) { bool endProg = false; while (!endProg) //this can end when the user hits the x, not before. muahaha { UserInput user1 = new UserInput(); int size = user1.GetSize(); int times = user1.GetNumberOfRolls(); int[] results = new int[times]; int numberOfModifiers = user1.GetNumberofModifiers(); if (numberOfModifiers > 1) { int[] modifierArray = user1.GetModifiers(numberOfModifiers); //int[] results = Dice.RollDice(size, times, mod); results = Dice.RollDice(size, times); int[][] splitResults = user1.SplitByModifierNumber(results, numberOfModifiers); Console.WriteLine("SplitResults ="); Results.DisplayResults(splitResults); //int[] moddedResults = user1.ApplyModifierArray(splitResults, modifierArray, numberOfModifiers); //List<object> moddedResultsList = moddedResults.Cast<Object>().ToList(); int[] moddedResults = user1.ApplyModifierArray(splitResults, modifierArray[0], modifierArray[1]); if (modifierArray.Length > 4) { moddedResults = user1.ApplyModifierArray(splitResults, modifierArray[0], modifierArray[1], modifierArray[2], modifierArray[3], modifierArray[4]); } else if (modifierArray.Length > 3) { moddedResults = user1.ApplyModifierArray(splitResults, modifierArray[0], modifierArray[1], modifierArray[2], modifierArray[3]); } else if (modifierArray.Length > 2) { moddedResults = user1.ApplyModifierArray(splitResults, modifierArray[0], modifierArray[1], modifierArray[2]); } //if (numberOfModifiers == 2) //{ // int ModifierA = modifierArray[0]; // int ModifierB = modifierArray[1]; // int[] moddedResults = new int[2]; // moddedResults = user1.Apply2ModifierArray(splitResults, ModifierA, ModifierB); //} //int[] modNum = user1.GetModifierNum(results); Console.WriteLine("adding modifiers to results"); Results.DisplayResults(moddedResults); results = moddedResults; } else if (numberOfModifiers == 1) { int mod = user1.GetModifiers(); results = Dice.RollDice(size, mod, times); } else { results = Dice.RollDice(size, times); } user1.BreakItUp(results); Console.WriteLine("Type 'y' to divide your sum evenly between targets"); string outputType = Console.ReadLine(); if (outputType == "y") { int targetResults = user1.DivideSum(results); Console.WriteLine(targetResults); } else { user1.BreakItUp(results); } Console.ReadLine(); } }