Exemplo 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);
        }
Exemplo n.º 2
0
 private bool IsStrike(RollCounter rollCounter)
 {
     return(_rolls[rollCounter.Index] == NumberOfPins);
 }
Exemplo n.º 3
0
 private bool IsSpare(RollCounter rollIndex)
 {
     return(_rolls[rollIndex.Index] + _rolls[rollIndex.Index + 1] == NumberOfPins);
 }