Вот, какой есть https://pastebin.com/LuDivLth
Больше игр нет
nzeemin(24.04.2021)
Предположим, рюкзак полон и тут мы встречаем призрака... Пипец рюкзаку...Код:'@': begin {L17200} WRITE('Призрак.'); VAR22:=RUKSEEK('.','.'); if VAR22 < 7 then VAR30:=VAR30+1; RUKSAK[VAR22]:='@'; end;
- - - Добавлено - - -
И? Внешний цикл будет рад смерти звери и запорченной переменной.
А как в Паскале оригинала работает процедура EXIT? Потому что во всех, что мне до сих пор попадались, EXIT выходит из процедуры, или завершает программу, если это main(). Смущает наличие EXIT, выполняющей по смыслу BREAK в районе поиска лестницы
Больше игр нет
С любовью к вам, Yandex.Direct
Размещение рекламы на форуме способствует его дальнейшему развитию
Выход из объемлющего цикла.
svofski(25.04.2021)
Ну да, Exit в этом Паскале работает как Break для циклов. Break() же здесь это процедура, которая по смыслу работает как Flush, скидывает несохранённый буфер в файл.
Есть ли нормальный Exit/Return - не знаю, я не нашёл, поэтому сделал ассемблерной вставкой.
Не исключаю что Return всё-таки есть и просто мы не знаем его синтаксис.
https://ia800500.us.archive.org/4/it..._1.2_RT-11.pdf - я тут смотрю описание на этот Паскаль.
Есть ещё книга от ДВК, но это просто перевод.
В документации не описаны labels и Goto, но на них удалось подобрать работающий синтаксис.
svofski(25.04.2021)
Еще у меня сложилось впечатление, что во всем огромном массиве флагов, который так щедро зарезервирован 16-битными целыми, используются только биты 0,1,2,6,10 (три младших бита для особенностей предметов, 0100 флаг увиденного и 02000 для заклятья). Есть какие-то догадки о том, чем объясняется такая расточительность?
Больше игр нет
nzeemin(25.04.2021)
Думаю что ничем особенным, может быть запас на будущее.
Автор явно был отличный сценарист, но в то какой получается на выходе код он не заглядывал - иначе бы оптимизировал многие вещи, там есть моменты когда много раз одни и те же вычисления буквально в нескольких строчках. Утилиту "улучшения кода" IMP от этого Паскаля он тоже не применял. При компиляции Паскаль пишет количество свободных слов - там остаётся ещё значительный запас, т.е. автор не был ограничен по объёму, смог выразить всё что захотел.
А, ещё такой момент мог повлиять, что этот Паскаль не имеет втроенного типа под байт.
Последний раз редактировалось nzeemin; 25.04.2021 в 01:19.
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)