コード例 #1
0
ファイル: Program.cs プロジェクト: saisandy537/BowlingGame
        // all the pins are processed in the functions. Roll(int pins)
        public int Roll(int Pins)
        {
            if (Pins > 10)
            {
                return -1;
            }
            if (Pins < 0)
            {
                return -1;
            }

            if (tenFrames.Count == 9)
            {
                TenRoll(Pins);
                return 0;
            }
            if (tenFrames.Count == 10)
            {
                Program.frames++;
                return 0;
            }
            _roll++;
            if (_roll % 2 != 0)
            {
                _currentFrame = new frame();
                _currentFrame.firstRoll = Pins;
                if (_previousFrame != null)
                {
                    if (_previousFrame.CheckSpare())
                    {
                        _previousFrame.setSpare(_currentFrame.firstRoll);
                    }
                }
                if (_currentFrame.CheckStrike())
                {
                    _roll += 1;
                    _previousFrame = _currentFrame;
                    tenFrames.Add(_currentFrame);

                }

            }
            else
            {
                _currentFrame.secondRoll = Pins;
                if (_previousFrame != null)
                {
                    if (_previousFrame.CheckStrike())
                    {
                        _previousFrame.setStrike(_currentFrame.firstRoll + _currentFrame.secondRoll);
                    }
                }
                _previousFrame = _currentFrame;
                tenFrames.Add(_currentFrame);

            }
            Program.frames = tenFrames.Count;

            return 0;
        }
コード例 #2
0
ファイル: Program.cs プロジェクト: saisandy537/BowlingGame
        //function works when the frame is in 10
        void TenRoll(int Pins)
        {
            _roll++;

            if (_roll % 3 == 1)
            {
                _currentFrame = new tenframe();
                _currentFrame.firstRoll = Pins;
                if (_previousFrame != null)
                {
                    if (_previousFrame.CheckSpare())
                    {
                        _previousFrame.setSpare(_currentFrame.firstRoll);
                    }
                }

                if (_currentFrame.CheckStrike())
                {
                    _roll += 1;
                }

            }
            if (_roll % 3 == 2)
            {

                _currentFrame.secondRoll = Pins;
                if (_previousFrame != null)
                {
                    if (_previousFrame.CheckStrike())
                    {
                        _previousFrame.setStrike(_currentFrame.firstRoll + _currentFrame.secondRoll);
                    }
                }
                if (!(_currentFrame.CheckSpare() || _currentFrame.CheckStrike()))
                {
                    tenFrames.Add(_currentFrame);
                    Program.frames = tenFrames.Count;
                }

            }
            if (_roll % 3 == 0)
            {
                if (_currentFrame.CheckSpare() || _currentFrame.CheckStrike())
                {
                    _currentFrame.thirdRoll = Pins;
                    _previousFrame = _currentFrame;
                    tenFrames.Add(_currentFrame);
                    Program.frames = tenFrames.Count;
                }

            }
        }