Beispiel #1
0
 private void AddRoll(RollTemplate roll)
 {
     if (roll.SpotStart == roll.SpotEnd)
     {
         throw new Exception("Chain not correct. Cannot create a roll with the same point for start and end");
     }
     if (!_rolls.ContainsKey(roll.MoveCount))
     {
         _rolls.Add(roll.MoveCount, new List <RollTemplate>());
     }
     _rolls[roll.MoveCount].Add(roll);
     if (!_seenBefore.ContainsKey(roll.SpotStart))
     {
         _seenBefore.Add(roll.SpotStart, new Dictionary <int, HashSet <int> >());
     }
     if (!_seenBefore[roll.SpotStart].ContainsKey(roll.SpotEnd))
     {
         _seenBefore[roll.SpotStart].Add(roll.SpotEnd, new HashSet <int>());
     }
     _seenBefore[roll.SpotStart][roll.SpotEnd].Add(roll.MoveCount);
     _rollRef.AddRoll(
         startSpot: roll.SpotStart,
         dieNum: roll.MoveCount,
         endSpot: roll.SpotEnd,
         overshootTurnCount: roll.OvershootTurnCount,
         overshootCount: roll.OvershootCount,
         direction: roll.Direction,
         doesCrossFinish: roll.DoesCrossFinish);
 }
Beispiel #2
0
        public IActionResult Post([FromBody] RollTemplate rollTemplate)
        {
            Roll roll = new Roll();

            // set the dice roll values to the values passed in through the body
            roll.setDiceNumbers(rollTemplate.diceNumbers);
            roll.calculateScore();

            // create json array to return json format to user
            JArray diceNumsJson = new JArray(roll.getDiceNumbers());

            // create json object to return json format to user
            var jsonRollObj = new JObject();

            jsonRollObj.Add("Score", roll.getScore());
            jsonRollObj.Add("DiceNumbers", diceNumsJson);

            return(Content(jsonRollObj.ToString(), "application/json"));
        }