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





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

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

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

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

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

Date: 2015-03-31 06:43 pm (UTC)
From: [identity profile] blk-104.livejournal.com
Да-а, круто. А текст можно, чтоб с картинки руками не набирать?

PS А в первом скрине вид не лучше, чтоб символы не обрезались?
Edited Date: 2015-03-31 07:03 pm (UTC)

Date: 2015-03-31 09:30 pm (UTC)
From: [identity profile] nsg21.livejournal.com
С текстом не так просто. Он внутри .dsk, а я что-то не могу найти свою программку которая вынимает оттуда отдельные файлы. Как только, так сразу запощу на сайт.

Насчёт символов, я хотел использовать пику или трефу потому что они похожи на дерево, а раз так, то и аватар нужен из не-ascii

Date: 2015-04-01 07:53 am (UTC)
From: [identity profile] blk-104.livejournal.com
Я хотел спросить, не лучше ли использовать SCREEN 1. Тогда ширина будет 32 символа вместо 40, но зато трефа и мордочка будут нормально выводиться.

Date: 2015-04-02 08:12 am (UTC)
From: [identity profile] nsg21.livejournal.com
Может и лучше. Но мне screen 0 нравится больше.
Можное ещё попробовать заменить на Y и @.

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 May. 2nd, 2026 04:39 am
Powered by Dreamwidth Studios