无法获得正确计算的价值

时间:2013-12-21 06:05:54

标签: c# winforms

问题:

downtime的最终值应为10,但它会出现42。 它的运行时间是否超过10次?或者它只是不按我想要的方式计算turnTime

整个场景:

这只是一个简单的应用程序,我正在设置帮助我计算和平衡我正在进行的游戏的元素。该程序模拟一把枪被射击,直到它没有时间轮到它,或者它没有弹药。如果转弯内有时间,枪将试图重新装弹,然后继续射击。这应该模拟10轮,每轮10转。

downtime变量表示当回合中的剩余时间不足以重新加载或开火时,每回合浪费的时间。

代码:

        public void button1_Click(object sender, EventArgs e)
        {

            currentAmmo = clip;

            for (float r = roundCounter; r < 10; r++)
            {
                turnTime = 10;
                Fire();

           }   
        }

        void Reload()
        {
            currentAmmo = clip;
            reloadCount++;
            turnTime -= reload;
            Fire();
        }

        void Fire()
        {
            if (currentAmmo > 0)
            {
               for (float a = currentAmmo; a > 0; a--)
               {
                   if (turnTime >= speed)
                   {
                       dpt = dpt + damage;
                       bullets++;
                       currentAmmo--;
                       turnTime -= speed ;

                       if (currentAmmo == 0)
                       {
                           if (turnTime < reload)
                           {
                               downTime += turnTime;
                           }
                           if (turnTime >= reload)
                           {
                               Reload();
                           }                               
                       }
                    }
                    if (turnTime < speed)
                    {
                        if (turnTime < reload)
                        {
                            downTime += turnTime;
                        }
                        if (turnTime >= reload)
                        {
                            Reload();
                        }                            
                    }
                }
           }
           if (currentAmmo == 0)
           {
               if (turnTime < reload)
               {
                   downTime += turnTime;
               }
               if (turnTime >= reload)
               {
                   Reload();
               }
        }

        }
    }
}

0 个答案:

没有答案