Морфинг Криттер в GridWorld?

Для этого нового объекта под названием 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();
        }
    }
}

1 ответ

Я совсем не знаком с GridWorld, но это первое условие:

!(a instanceof Flower)

будет true когда a это AntCritter, так что остальные условия в вашем if заявление никогда не будет оценено.

Читайте об оценке короткого замыкания для получения дополнительной информации.

Другие вопросы по тегам