困惑于一段代码形成一个控制块的速度的俄罗斯方块游戏

时间:2012-08-30 03:00:07

标签: java tetris

        if(loopCount % (20 - loopCount / 100) == 0) {
            if(dropBlock() == false) {
                mode = -1;
                loopCount = 1;
            }
            if(loopCount == 1900)
                loopCount--;
        }
        loopCount++;

java编写的一本俄罗斯方块程序。我只是无法理解为什么使用这样的代码来控制块的下降速度以及它是如何工作的。 谢谢!

loopCount的初始值为1,如果游戏结束,dropBlock将返回false。这件作品包含在主循环中。而且模式不相关。我很抱歉,但我不能在这里看到整个程序。

2 个答案:

答案 0 :(得分:0)

似乎设置为loopcount start为1,并允许使用表来检查if(loopCount % (20 - loopCount / 100) == 0) {的效果

loopCount< 100,loopCount / 100 = 0,所以loopCount%20为20,40,60和80返回true。让我们说loopCount是100 - 199.现在我们检查它是否可被19整除,200-300可被18整除。我不确定他到底想要实现的是什么。然后它会检查它是否无法丢弃块,(dropBlock可能尝试删除块,并返回true表示成功,false表示失败。然后如果失败则将模式设置为-1(可能退出?)。然后一旦loopCount到达1900时,它会阻止它上升(通过在loopCount++;之前减少到1899,这基本上减少然后增加,所以什么都不做(在1900年持有)

答案 1 :(得分:0)

代码是如何不编写好代码的一个很好的例子。它充满了神奇的数字(1900,20,100),因此很难说明你为什么要做你正在做的事情。

但是实现这个并打印出来的值表明loopCount的值从1到1900不断增长,一旦达到1900,它就会停留在那里。

因此,在我看来,逻辑所做的是减少到1899年并且在每次迭代时增加到1900年。

相关问题