[Перевод] Задачки по программированию на BASIC для ZX Spectrum
Недавно я участвовал в нескольких соревнованиях, которые проводились в Facebook-группе, посвящённой BASIC-программированию для ZX Spectrum. Там попадаются задачки разной сложности, но большинство из них можно решить, минут за 30 написав соответствующий код. Если вы хотите проверить или улучшить свои навыки программирования на BASIC — вам, возможно, будет интересно взглянуть на эти задачки.
Японские узоры
Уве Гейкен предложил воссоздать замысловатый японский узор. Я, взяв за основу фигуру из четырёх линий, напоминающую карамельную трость, отражая, вращая и повторяя её, смог уложить решение этой задачи в 156 байтов:
Орбиты Земли и Венеры
Дэвид Сапфье дал нам задачку на написание самого быстрого кода на BASIC, выводящего траектории орбит Земли и Венеры. Во мне живёт немного бунтарского духа, поэтому я решил написать самый короткий код. Я далеко не сразу добрался до приведённой здесь рабочей версии программы:
Гренландский флаг
Мэттью Лог предложил посоревноваться в написании программы для вывода точной копии флага Гренландии. Этот флаг устроен довольно просто, его описание можно свести к такой формуле: x²+y² 0:
Треугольники
Уве Гейкен показал узор, состоящий из треугольников, и предложил написать самый короткий код, воспроизводящий этот узор. Самая короткая найденная мной реализация этой задачи использует UDG (User-Defined Graphics, графические символы, определяемые пользователем):
Сетка
Мэттью Лог дал нам задачку на воссоздание сетчатого узора с применением кода минимального объёма. Удивительно, но мне удалось такой код написать:
Узор из переплетающихся полос
Уве Гейкен предложил написать программу для рисования узора из переплетающихся полосок. Мне было довольно сложно оптимизировать размер этой программы, но в итоге удалось вместить её в 109 байтов:
Узор в виде флага
Мэттью Лог попросил написать самую короткую программу, выводящую узор размером 31×21, напоминающий флаг. Уве Гейкен решил эту задачу с помощью кода длиной в 67 байтов и легко обошёл мою 74-байтную программу:
Минималистичная шестерёнка
Мэттью Лог снова подготовил интересную задачу. На этот раз она заключалась в рисовании простой цилиндрической шестерёнки с 10 зубьями. Вот что у меня получилось:
Увлекаетесь ли вы ретро-программированием?