Мак-Тьюрмит 1.0b

Тьюрмит -- это существо, вылезшее из разбитой машины Тьюринга после того, как Грег Тэрк уронил ее со своего стола. С тех пор тьюрмиты распространились довольно широко, однако по-прежнему остаются мало исследованными созданиями.

Тьюрмит живет на бесконечной плоскости, разделенной на квадратные клетки. Чем он питается, неизвестно. Живой тьюрмит постоянно движется по плоскости, он не может оставаться в покое.

Тьюрмит всегда находится в некотором СОСТОЯНИИ. В состояниях тьюрмита нет ничего магического, их можно обозначать, например, буквами, цифрами или другими символами. Кроме того, тьюрмит всегда знает, в какой цвет окрашена клетка плоскости, на которой он находится в данный момент. Именно пара "состояние-цвет" и определяет поведение тьюрмита в каждый момент времени.

Мозгом тьюрмиту служит таблица, которая ставит в соответствие пары "состояние-цвет" действиям, которые нужно выполнить. Таких действий всего три: цвет, в который следует окрасить текущую клетку, изменение направления движения (на 90 градусов по часовой стрелке, против и вообще не менять) и состояние, в которое следует перейти.

Таблица, заменяющая тьюрмиту мозг, может состоять из произвольного количества строк, описанных выше. Жизнь этого странного создания довольно однообразна. Оно ищет в "мозгу" строку, соответствующую текущему состоянию и цвету клетки, на которой оно стоит, перекрашивает клетку в новый цвет, взятый из таблицы, выполняет указанный поворот, переходит в указанное состояние и, наконец, делает шаг вперед (на соседнюю клетку). Там весь цикл повторяется снова. Если на каком-то этапе найти подходящую строку для текущего состояния-цвета не удается, тьюрмит в недоумении останавливается и немедленно погибает.

Биологов ожидает масса интересных находок при исследовании этого странного животного. Нас же больше будут интересовать следы оставляемые тьюрмитами на плоскости. Для изучения этих следов была написана программа Мак-Тьюрмит. (К автору оригинальной программы THURMIT - под MS-DOS - можно обратиться по адресу gene@ks.botik.ru).

Единственным параметром программы является имя исследуемого тьюрмита (вернее, его "мозга", записанного в текстовый файл). Для совместимости с DOS-версией файлы должны иметь имя не длиннее 8 символов и расширение TRM, хотя это и не обязательно. Программа корректно работает при использовании любых символов для перевода строки (Mac/DOS/Unix).

Структура файла-мозга

Файл состоит из строк - элементов мозга и строк комментариев. Пустые строки допускаются ТОЛЬКО в конце файла.

Строки - комметарии начинаются с символа ";". Точка с запятой обязана быть первым символом в строке в том смысле, что перед ней допускаются только пробелы и символы табуляции.

Возможна еще одна служебная строка, она начинается с символа "#" (как и прежде, перед этим символом допускаются пробелы и табуляции). После символа "#" должно следовать число, отделенное от "#" некоторым (включая и нулевое) количеством символов табуляции и/или пробелов. Это число задает максимальное количество шагов, которые может сделать тьюрмит. Если такая строка отсутствует, тьюрмит будет путешествовать по плоскости бесконечно (см. ниже о случаях его остановки).

Строка - элемент мозга состоит из пяти полей.

<состояние> <цвет> <новый цвет> <поворот> <новое состояние>

Между полями (и перед первым полем) допускается произвольное количество пробелов и/или символов табуляции. Хотя бы один пробел/табуляция обязан присутствовать между полями для их разделения. После последнего поля могут следовать комментарии отделенные от поля хотя-бы одним пробелом и/или символом табуляции.

Правила записи полей:

состояние - любой печатаемый символ ASCII кроме ";" и "#"
цвет - число от 0 до 15, 0-черный, ... 15-белый
поворот - число -1, 0 или 1:
-1 - против часовой стрелки;
1 - по часовой стрелке;
0 - не поворачивать;

В "начале времен" вся плоскость черная. Новорожденный тьюрмит всегда находится в состоянии 'A' (заглавная латинская A) и "смотрит" на восток (не знаю, почему на восток, вряд-ли у тьюрмитов есть религия).

Тьюрмит останавливается в следующих случаях:

В левом верхнем углу окна показано количество пройденных тьюрмитом шагов.

Вы имеете возможность приостановить движение тьюрмита, запустить его "с чистого листа", а также сохранить результаты в файле формата PICT (просмотреть его потом можно, например, ПростоТекстом).

Программа должна работать на любом Макинтоше с процессором не хуже 68020, MacOS 7.* и не менее чем 16 цветами. (Испытана на Mac LC475/MacOS 8.1, Quadra 650/MacOS 7.5.)


Вопросы о тьюрмитах можно присылать по адресу: gene@ks.botik.ru

Вопросы, предложения и замечания по данной реализации - по адресу: krekin@krekin.mccme.ru