ZIL: различия между версиями
Перейти к навигации
Перейти к поиску
Nikita (обсуждение | вклад) (Пока в глоссарий, но вообще надо куда-то оттуда выносить вместе с Python, URQL и пр.) |
Nikita (обсуждение | вклад) |
||
Строка 1: | Строка 1: | ||
Lisp-подобный язык программирования, ''сокр. англ.'' [[Zork]] Implementation Language. | Lisp-подобный язык программирования, ''сокр. англ.'' [[Zork]] Implementation Language. | ||
− | Именно на нём писались все игры Infocom для Z-машины. Язык [[Inform]], на котором пишется большинство игр сейчас, появился только в | + | Именно на нём писались все игры [[Infocom]] для [[Z-машина|Z-машины]]. Язык [[Inform]], на котором пишется большинство игр сейчас, появился только в 1994-м. |
=== Пример кода на ZIL === | === Пример кода на ZIL === |
Версия 16:25, 8 июля 2018
Lisp-подобный язык программирования, сокр. англ. Zork Implementation Language.
Именно на нём писались все игры Infocom для Z-машины. Язык Inform, на котором пишется большинство игр сейчас, появился только в 1994-м.
Пример кода на ZIL
Отрывок. Полный пример см. на Bitbucket.
<ROUTINE GO () <CRLF> <CRLF> <TELL "Hurrying through the rainswept November night, you're glad to see the bright lights of the Opera House. It's surprising that there aren't more people about but, hey, what do you expect in a cheap demo game...?" CR CR> <INIT-STATUS-LINE> <V-VERSION> <CRLF> <SETG HERE ,FOYER> <MOVE ,PLAYER ,HERE> <V-LOOK> <MAIN-LOOP>>
<INSERT-FILE "parser">
<ROOM CLOAKROOM (DESC "Cloakroom") (IN ROOMS) (LDESC "The walls of this small room were clearly once lined with hooks, though now only one remains. The exit is a door to the east.") (EAST TO FOYER) (FLAGS LIGHTBIT)>
<OBJECT HOOK (DESC "small brass hook") (IN CLOAKROOM) (SYNONYM HOOK PEG) (ADJECTIVE SMALL BRASS) (FDESC "A small brass hook is on the wall.") (FLAGS CONTBIT SURFACEBIT)>
Необходимые инструменты
В настоящее время (2018 год) самый активный набор инструментов для работы с ZIL - это ZILF от Jesse McGrew. Он состоит из:
- Компилятора ZILF, который компилирует код ZIL в ассемблерный код ZAP
- Ассемблера ZAPF, который собирает код ZAP в бинарный формат Z-машины
- Дезасссемблера DeZapf
- Собственно библиотеки для текстовых приключений на английском, которая включает в себя парсер и базовую модель мира
- Примеров, тестов и документации