Exemplo n.º 1
0
        /// <summary>
        /// Generates a roll of the given type and removes and returns that many pins.
        /// </summary>
        /// <param name="rollType"></param>
        /// <param name="manualValue"></param>
        /// <returns></returns>
        public int Bowl(RollOptions.RollTypes rollType, int manualValue = 0)
        {
            Roll roll = new Roll(PinsStanding, rollType, manualValue);

            ProcessRoll(roll);
            return(roll.RollValue);
        }
Exemplo n.º 2
0
        /// <summary>
        /// Constructor
        /// </summary>
        /// <param name="pinsStanding"></param>
        /// <param name="rollType"></param>
        /// <param name="manualRoll"></param>
        public Roll(int pinsStanding, RollOptions.RollTypes rollType, int manualRoll = 0)
        {
            if (pinsStanding < Roll.MIN_SINGLE_ROLL ||
                pinsStanding > Roll.MAX_SINGLE_ROLL)
            {
                throw new InvalidRollException($"The number of pins standing must be between {MIN_SINGLE_ROLL} and {MAX_SINGLE_ROLL} inclusive.");
            }
            RollType = rollType;
            switch (RollType)
            {
            case RollOptions.RollTypes.MANUAL:
                RollValue = manualRoll;
                break;

            case RollOptions.RollTypes.RANDOM:
            default:
                //this is not a very good random number generator
                Random random = new Random((int)DateTime.UtcNow.TimeOfDay.TotalMilliseconds);
                RollValue = random.Next(0, pinsStanding + 1);
                break;
            }
        }
Exemplo n.º 3
0
 /// <summary>
 /// Have the bowler bowl.
 /// </summary>
 /// <param name="rollType"></param>
 /// <param name="manualRoll">Used if roll type is manual</param>
 /// <returns></returns>
 public int Bowl(RollOptions.RollTypes rollType, int manualRoll = 0)
 {
     return(game.Bowl(rollType, manualRoll));
 }