Esempio n. 1
0
        private List <Frame> CalculateFrames()
        {
            var frames      = new List <Frame>();
            var rollCounter = new RollCounter(2, 0);

            for (int i = 0; i < NumberOfFrames; i++)
            {
                if (IsStrike(rollCounter))
                {
                    frames.Add(new Strike(rollCounter.Index, _rolls));
                }
                else if (IsSpare(rollCounter))
                {
                    frames.Add(new Spare(rollCounter.Index, _rolls));
                }
                else
                {
                    frames.Add(new Frame(rollCounter.Index, _rolls));
                }

                rollCounter = rollCounter.IncreaseRollIndex(IsStrike(rollCounter));
            }
            return(frames);
        }
Esempio n. 2
0
 private bool IsStrike(RollCounter rollCounter)
 {
     return(_rolls[rollCounter.Index] == NumberOfPins);
 }
Esempio n. 3
0
 private bool IsSpare(RollCounter rollIndex)
 {
     return(_rolls[rollIndex.Index] + _rolls[rollIndex.Index + 1] == NumberOfPins);
 }