示例#1
0
文件: Game.cs 项目: dwy/domain-driven
        public int Score()
        {
            int frameIndex = 0;
            var frames = new List<Frame>();
            for (int frame = 0; frame < 10; frame++)
            {
                var currentFrame = new Frame(frameIndex, rolls);
                frames.Add(currentFrame);

                if (currentFrame.IsStrike())
                {
                    frameIndex++;
                }
                else if (currentFrame.IsSpare())
                {
                    frameIndex += 2;
                }
                else
                {
                    frameIndex += 2;
                }
            }

            int score = 0;
            foreach (var currentFrame in frames)
            {
                score += currentFrame.GetScore();
            }
            return score;
        }
示例#2
0
        public int Score()
        {
            int frameIndex = 0;
            var frames     = new List <Frame>();

            for (int frame = 0; frame < 10; frame++)
            {
                var currentFrame = new Frame(frameIndex, rolls);
                frames.Add(currentFrame);

                if (currentFrame.IsStrike())
                {
                    frameIndex++;
                }
                else if (currentFrame.IsSpare())
                {
                    frameIndex += 2;
                }
                else
                {
                    frameIndex += 2;
                }
            }

            int score = 0;

            foreach (var currentFrame in frames)
            {
                score += currentFrame.GetScore();
            }
            return(score);
        }
示例#3
0
        private int CalculateStrikeBonus()
        {
            Frame nextFrame = GetNextFrame();

            if (nextFrame.IsStrike())
            {
                Frame secondNextFrame = nextFrame.GetNextFrame();
                return(nextFrame.GetFirstRoll() +
                       secondNextFrame.GetFirstRoll());
            }
            return(nextFrame.Pins);
        }