В прошлых статьях были довольно мудрёные упражнения, так что в этот раз немного расслабимся.
Представьте что вы находитесь в избушке на курьих ножках. На севере находится дверь наружу, на западе — окно в лес, возле южной стены стоит печка, восток — дверь в другую комнату.
У избушки есть ноги, поэтому она может двигаться вместе с вами. Если избушка пройдёт немного вперёд на север, рядом будет лесная полянка, а если она сделает несколько шагов назад, то в окне будет виден ручей.
В этом и есть первый уровень сегодняшнего упражнения: сделать шагающую избушку. Она может прогуливаться вперёд-назад, разминать ноги. Можно выйти из избушки, но тогда придётся её догонять. Если вам этого мало, дальше будут два сложных дополнения.
Итак, уровень второй. Откуда-то с востока выходит Иван-дурак и кричит, чтобы избушка повернулась к лесу задом. И вся комната начинает поворачиваться. На четверть оборота за ход.
Поворачивающийся дом должен правильно отслеживать, на какие стороны света выходят все двери и окна, а также обновлять описания, если они тоже ссылаются на север-запад-юг-восток.
Уровень третий — это управление избушкой. Избушка управляется голосом. Если вы говорите ей «избушка, север» то она идёт на север. Если ей сказать «избушка, вперёд» — она пойдёт по той стороне света, на которую смотрит. От избушки не требуются какие-то осмысленные действия или целые цепочки команд, для неё будет достаточно простых движений. Если избушке дают два приказа одновременно, она выполняет тот, что громче (приказ изнутри избушки всегда будет громче).
Получилось или было слишком сложно? Можно рассказать об этом в комментариях. А на следующей неделе будет ещё одна Сложная Проблема Парсеров и повод вспомнить классику русской ИЛ.
За идею статей спасибо Дэвиду Вэлбурну
Ссылка:
https://ifhub.club/2021/05/26/exercise-3.html