예제 #1
0
        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
            }
        }
예제 #2
0
        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();
            }
        }