对于这个名为 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)
当 a
是 AntCritter
时,将为 true
。因此 if
语句中的其余条件将永远不会被评估。
了解short-circuit评估以获取更多信息。
关于java - 网格世界中的变形小动物?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10113716/