java - 网格世界中的变形小动物?

标签 java debugging gridworld

对于这个名为 AntCritter 的新生物,我重写了 processActors 方法,现在当它应该改变它们及其颜色时,它会删除它周围的其他 Ant 生物。我已经尝试了一大堆东西,但我无法弄清楚,因为在代码中它直接说如果 Actor 是 Ant ,就不要删除它。移动方法与bug基本相同。

public void processActors(ArrayList<Actor> actors)
{
    for(Actor a: actors)
    {
        if(!(a instanceof AntCritter)||!(a instanceof Flower)||!(a instanceof KingCrab))
            a.removeSelfFromGrid();
        if(a instanceof AntCritter)
        {
            setColor(Color.BLUE);
            a.setColor(Color.PINK);
            ((AntCritter) a).move();
        }
    }
}

最佳答案

我对 GridWorld 一点也不熟悉,但是第一个条件:

!(a instanceof Flower)
aAntCritter 时,

将为 true。因此 if 语句中的其余条件将永远不会被评估。

了解short-circuit评估以获取更多信息。

关于java - 网格世界中的变形小动物?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10113716/

相关文章:

Java - 单击按钮后绘制圆圈

Java Midi 音序器在几次后停止发出声音。我该如何调试/解决?

java - 累积/刷新消息的设计模式

debugging - Cassandra sstable2json 不起作用

java - Gridworld 在列表中查找最近的位置

java - 一个应用程序中的两个单例 - 都具有不同的 @Scheduled 方法 - 一个类方法等待另一个?

android - 错误 :Unable to obtain debug bridge in android studio

c++ - 如何从启用优化( Release模式)构建的二进制文件中分析故障转储?

java - 如何使数组成为最终数组?

java - GridWorld中的俄罗斯方 block 无法编译