Итак, будем считать, что с моделированием огибания препятствий мы уже разобрались, и теперь попробуем заняться моделированием следования вдаль стен. Эти две проблемы достаточно похожи, поэтому большая часть подготовительной работы, уже проделанной нами при моделировании огибания препятствий, с успехом может быть применена и к моделированию следования вдоль стен. В частности, окружающая среда игрового мира, а также практически все технические требования и спецификации интерфейсов остаются столь же сложными, как и в уже рассмотренном случае.
Отличаются лишь причины поведенческих реакций. В этой связи нам нужен новый пример проявления моделируемого поведения. Естественно, анимат должен сначала как-то установить, что находящееся перед ним препятствие является стеной, а затем следовать к ее наружному или внутреннему углу.
1. Если стены нет и анимат уже не следует вдоль нее, направление движения выбирается произвольно.
2. Если стена находится перед аниматом, он должен развернуться, независимо от наличия или отсутствия стен сбоку от анимата.
3. Если стена находится сбоку от анимата, он должен следовать вдоль нее.
4. Если перед аниматом нет стены и он не следовал вдоль нее, анимат должен повернуть в ту сторону, где последний раз была стена.
С концептуальной точки зрения, основное отличие моделирования следования вдоль стен от моделирования огибания препятствий состоит в необходимости вьшолнения операций, зависящих от контекста. Действительно, при следовании вдоль стены отсутствие препятствия может прижгигп, к выполнению двух разных операций, в зависимости от того, следовал ли ранее анимат вдоль стены или нет (ситуации 1 и 4). Поэтому получение соітгвстствия между показаниями сенсоров и вьтолняемыми операциями в данном случае — неоднозначная задача. Если мы попробуем применить для ее решения систему, основанную на реакциях, она всегда будет выбирать одно и то же правило, независимо от контекста. И здесь мы сгшкивасмся с проблемой: если это правило будет предписывать анимату всегда выполнять операцию turn, он будет отворачиваться от участков свободного пространства; если же правило будет требовать от него выполнения операции inoveForwards, он будет уходить от стены, которая поворачивает влево или вправо.
Однако недетерминированность не представляет проблемы для RBS-систем, поскольку при их использовании мы можем легко ввести дополнительный внутренний символ, который будет выполнять задачу распознавания контекста. Этот символ, означающий "всегда следовать вдоль стены", позволит системе узнать, какое поведение от нее требуется.