Пример #1
0
        public DieString Add(int mod)
        {
            DieString ret = new DieString(String);

            mod += Modifier;
            while (mod > 3)
            {
                ret.NumberOfDice += 1;
                mod -= 3;
            }

            ret.Modifier = mod;
            ret.String   = $"{ret.NumberOfDice}d{mod:+0;-#}";
            return(ret);
        }
Пример #2
0
        public static bool Test()
        {
            Dictionary <string, Tuple <int, int, int> > pairs = new Dictionary <string, Tuple <int, int, int> >();

            for (int i = 0; i < strs.Length; i++)
            {
                pairs.Add(strs[i], values[i]);
            }
            foreach (string str in strs)
            {
                try
                {
                    var  die     = new DieString(str);
                    int  roll    = die.Roll();
                    bool success = die.NumberOfDice == pairs[str].Item1 &&
                                   die.DieSides == pairs[str].Item2 &&
                                   die.Modifier == pairs[str].Item3 && roll > die.NumberOfDice &&
                                   roll <= die.NumberOfDice * die.DieSides + die.Modifier;
                    if (!success)
                    {
                        Debug.WriteLine(
                            $"DieString '{str}' failed. Results = {PrintStats(die)}\r\nExpectation = {PrintStats(pairs[str])} ");
                        return(false);
                    }
                    else
                    {
                        Debug.WriteLine(
                            $"DieString '{str}' Passed. Results = {PrintStats(die)}\r\nExpectation = {PrintStats(pairs[str])} ");
                    }
                }
                catch (ArgumentException)
                {
                    Debug.WriteLine(
                        $"dieString {str} failed.  This is {(pairs[str].Item1 == 0 ? "" : "not")} a good thing.");
                }
                catch (Exception)
                {
                    Debug.WriteLine($"Another error occurred.  DieStr = {str}");
                    return(false);
                }
            }
            DieString d  = new DieString("3d+4");
            DieString d2 = d.Add(4);

            return(d2.NumberOfDice == 5 && d2.Modifier == 2);
        }
Пример #3
0
 private static string PrintStats(DieString die)
 {
     return
         ($"Number of dice = {die.NumberOfDice}, sides per die = {die.DieSides}, modifier = {die.Modifier:+0;-#}");
 }