Японские узоры
Уве Гейкен предложил воссоздать замысловатый японский узор. Я, взяв за основу фигуру из четырёх линий, напоминающую карамельную трость, отражая, вращая и повторяя её, смог уложить решение этой задачи в 156 байтов:
Орбиты Земли и Венеры
Дэвид Сапфье дал нам задачку на написание самого быстрого кода на BASIC, выводящего траектории орбит Земли и Венеры. Во мне живёт немного бунтарского духа, поэтому я решил написать самый короткий код. Я далеко не сразу добрался до приведённой здесь рабочей версии программы:
Гренландский флаг
Мэттью Лог предложил посоревноваться в написании программы для вывода точной копии флага Гренландии. Этот флаг устроен довольно просто, его описание можно свести к такой формуле: x²+y² < 54² ⊻ y > 0:
Треугольники
Уве Гейкен показал узор, состоящий из треугольников, и предложил написать самый короткий код, воспроизводящий этот узор. Самая короткая найденная мной реализация этой задачи использует UDG (User-Defined Graphics, графические символы, определяемые пользователем):
Сетка
Мэттью Лог дал нам задачку на воссоздание сетчатого узора с применением кода минимального объёма. Удивительно, но мне удалось такой код написать:
Узор из переплетающихся полос
Уве Гейкен предложил написать программу для рисования узора из переплетающихся полосок. Мне было довольно сложно оптимизировать размер этой программы, но в итоге удалось вместить её в 109 байтов:
Узор в виде флага
Мэттью Лог попросил написать самую короткую программу, выводящую узор размером 31x21, напоминающий флаг. Уве Гейкен решил эту задачу с помощью кода длиной в 67 байтов и легко обошёл мою 74-байтную программу:
Минималистичная шестерёнка
Мэттью Лог снова подготовил интересную задачу. На этот раз она заключалась в рисовании простой цилиндрической шестерёнки с 10 зубьями. Вот что у меня получилось:
Увлекаетесь ли вы ретро-программированием?
Комментарии (19)
DimPal
04.11.2021 17:05+8Побайтно каждая числовая константа хранится в строковом виде плюс 5 байт в бинарном формате. Например A=0 побайтно выглядит как то так: 65,61,48,0,0,0,0,0. Итого вышло 6 байт на одноразрядную константу. Кстати был трюк когда строковое и бинарное значение могли не совпадать. Про DEF FN я вообще молчу, там в бинарное представление засовывали машинный код (загрузчик ArtStudio вроде так делал). Если такую строку попытаться изменить через редактор ZX-Basic то бинарное представление синхронизируется по строковому представлению.
DrGluck07
07.11.2021 17:37Да это была вполне стандартная практика с бинарным кодом внутри строки бейсика
forthuser
04.11.2021 21:51+1Решение 212 задач на ZX Spectrum Basic на rosettacode.org
P.S. Можно пополнять разными решениями.
MichaelBorisov
04.11.2021 22:19+5Следующий этап — изучение ассемблера и написание анимационных демо-программ!
vvbob
05.11.2021 11:34+9Чем, конечно, были хороши те компьютеры, так это тем что начать программировать на них можно было очень быстро и просто. Не надо устанавливать стопятьсот фреймворков, разбираться со всякими IDE, с кучей сложных для новичка понятий.. Просто открываешь довольно простой редактор, и пишешь код, который имеет доступ ко всем ресурсам машины.
У меня, помню, была книжечка "Программирование на ZX-Basic" довольно толково описывающее встроенный язык, с примерами и задачками, очень было интересно все это изучать и пробовать прямо не отходя от компьютера.
L24RUS
11.11.2021 11:27+2Моей первой настольной книжкой по программированию стала "Как написать игру для ZX-Spectrum" после нее игрушки были заброшены )
vvbob
11.11.2021 11:31+1Еще у меня был журнал, ZX-Review, кажется, если название не путаю. Толстенная такая книжица, напечатанная убористым шрифтом, на дешевой бумаге. Изучал его от корки до корки, за отсутствием интернета это был один из самых годных источников информации. Правда как раз к моменту когда он попал ко мне в руки, мой клон Спектрума сломался, а потом меня в армию загребли и стало не до развлечений. Потом уже пошли другие компьютеры.
Masurao
03.12.2021 11:38Понимаю, что сейчас, возможно, закидают помидорами, но хочу сказать, что и сейчас есть такой софт, который можно поставить и сделать много чего интересного. Например, горячо нелюбимый школьниками PascalABS. Главное ХОТЕТЬ, главное чтобы было ИНТЕРЕСНО. А вот с этим сейчас у людей все больше проблем...
dBakharov
06.11.2021 00:34+1Спасибо за статью, довольно интересно. Мне отдельно понравилось, как автор удивляется мол, вау, получилось, а у меня это вышло, а тут я вот так написал, эх, а тут меня об
шошли. Забавно
Hasan81
08.11.2021 10:00+5В старых компьютерах было что-то завораживающее и вдохновляющее, все новое казалось каким-то космическим, поэтому и стал программистом, а про современное железо и программирование почему-то даже читать иногда не хочется. То ли подача материала такая у современных технологий, то ли старость приближается. Вот любые научные новости читаю до сих пор с удовольствием, а компьютерные обзоры все менее интересны и читабельны. Не стало искры какой-то в этой теме.
Вот сейчас прочитал и какое-то удовольствие получил от прочтения на волне ностальгии.
Zalechi
09.11.2021 14:41+3То же самое наблюдаю и в киноиндустрии. Все эти Звездные Войны, Чужие, Матрица, Терминаторы и Влстелин Колец - были чем-то прорывным, поэтому наше поколение с трепитом относится к эволюции киноиндустрии 70х-90х и начала нулевых. Современое поколение не имеет того переходного опыта и часто нас не понимает и наш восторг от "убогих" лазеров в Звездных Войнах и побитового движения киборга убийцы в первой части терминатора, когда он в последних сценах на заводе тщетно пытается завершить свою программу - убить Сару, но оказывается придавлен прессом и убогие на вид молнии знаменуют его кончину))
Я тоже рисовал кружки в бейсике, но прогером не стал)))
novos3000
12.11.2021 11:25одна из первых компьютерных игр (для меня) была на космическую тему. Непомню как называлась игра, но раса инопланетян - клинги. "Играли" мы в институте на ДВК-З. По окончании учебы я распечатал листинг на матричном принтере и увез с собой. Потом я собрал Радио-86рк. Было несколько месяцев мучительного набора строк Бейсика на пленочной клавиатуре. После - несколько месяцев отладки. Какой же был кайф...
shiru8bit
Традиционные техники сокращения размера Sinclair BASIC программ, типа NOT PI и VAL "2", были запрещены? Не очень понятно, зачем считать байты, если очевидно, что в байтах ту же самую программу можно сделать короче.