Mar. 30th, 2015

nsg21: (Default)
После почти двадцатилетнего перерыва написал игрушку в три строки на MSX BASIC.
Условное название "Into the Woods"





Игрушка генерирует односвязный лабиринт бесконечной высоты, по которому нужно идти вперёд. Сначала написал как попало, получилось не так чтобы много, но и не так чтобы мало, строчек 50. На вид в три строки ну никак не умещалось. Но решил попробовать всё равно. Выкинул всё к делу не относящееся, типа заставку и экран game over. Посклеивал строки, повыкидывал пробелы. Всё равно много. Переписал один кусок, потом другой, потом что-то куда-то передвинул. В какой-то момент всё стало почти помещаться на одном экране. Строк было ещё многовато (6 что ли), но уже стало видно что может и получиться. Как именно дошло до этой стадии, я так и не понял, но после этого уже было дело техники.

Алгоритм генерации не то чтобы особо сложный, но и не совсем тривиальный. Отдельно генерируются вертикальные и горизонтальные стенки, отслеживается связность клеток текущего ряда в двунаправленных списках, эти списки постоянно сливаются/разделяются. Плюс аватарчик бегает параллельно всему этому, и его нужно задвигать вниз когда стенка на него опускается, опять же, конец игры надо определять. В общем, как это всё в три строки влезло, самому не до конца понятно.

Вспомнил ощущения -- достаточно дзенские ощущения.

С удивлением обнаружил что прекрасно помню многие тонкости и хитрости. А что подзабыл -- очень легко вспоминается, нужен только совсем небольшой хинт. Сравниваю с тем что учил 10/5/1 год назад -- как-то нашёл программу, явно мою, с моими комментариями, так я даже языка не опознал на котором она была написана. Дата -- 2008 г.

Вот так-то, детишки, учите вещи в молодости, потом -- это просто перевод продукта.

Profile

nsg21: (Default)
nsg21

April 2024

S M T W T F S
 123456
7 8910111213
14151617181920
21222324252627
282930    

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Sep. 4th, 2025 11:48 pm
Powered by Dreamwidth Studios