0

AntCritter と呼ばれるこの新しいクリッターについては、processActors メソッドを上書きし、色を変更する必要があるときに周囲の他の antcritter を削除するようにしました。私はたくさんのことを試しましたが、コードでは、アクターがアントクリッターである場合、アクターを削除しないように直接指示しているため、理解できません。移動方法は基本的にバグと同じです。

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();
        }
    }
}
4

1 に答える 1

1

私は GridWorld にまったく詳しくありませんが、この最初の条件は次のとおりです。

!(a instanceof Flower)

はいつになりますtrueか。したがって、ステートメントの残りの条件は評価されません。aAntCritterif

詳細については、短絡評価についてお読みください。

于 2012-04-11T20:59:28.467 に答える