问题:
值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();
}
}
}
}
}