Задачки по программированию на BASIC для ZX Spectrum

в 13:00, , рубрики: ruvds_перевод, zx spectrum, Блог компании RUVDS.com, Занимательные задачки, Программирование, разработка, старое железо
Недавно я участвовал в нескольких соревнованиях, которые проводились в Facebook-группе, посвящённой BASIC-программированию для ZX Spectrum. Там попадаются задачки разной сложности, но большинство из них можно решить, минут за 30 написав соответствующий код. Если вы хотите проверить или улучшить свои навыки программирования на BASIC — вам, возможно, будет интересно взглянуть на эти задачки.

Задачки по программированию на BASIC для ZX Spectrum - 1

Японские узоры

Уве Гейкен предложил воссоздать замысловатый японский узор. Я, взяв за основу фигуру из четырёх линий, напоминающую карамельную трость, отражая, вращая и повторяя её, смог уложить решение этой задачи в 156 байтов:

Задачки по программированию на BASIC для ZX Spectrum - 2

Задачки по программированию на BASIC для ZX Spectrum - 3

Орбиты Земли и Венеры

Дэвид Сапфье дал нам задачку на написание самого быстрого кода на BASIC, выводящего траектории орбит Земли и Венеры. Во мне живёт немного бунтарского духа, поэтому я решил написать самый короткий код. Я далеко не сразу добрался до приведённой здесь рабочей версии программы:

Задачки по программированию на BASIC для ZX Spectrum - 4

Задачки по программированию на BASIC для ZX Spectrum - 5

Гренландский флаг

Мэттью Лог предложил посоревноваться в написании программы для вывода точной копии флага Гренландии. Этот флаг устроен довольно просто, его описание можно свести к такой формуле: x²+y² < 54² ⊻ y > 0:

Задачки по программированию на BASIC для ZX Spectrum - 6

Задачки по программированию на BASIC для ZX Spectrum - 7

Треугольники

Уве Гейкен показал узор, состоящий из треугольников, и предложил написать самый короткий код, воспроизводящий этот узор. Самая короткая найденная мной реализация этой задачи использует UDG (User-Defined Graphics, графические символы, определяемые пользователем):

Задачки по программированию на BASIC для ZX Spectrum - 8

Задачки по программированию на BASIC для ZX Spectrum - 9

Сетка

Мэттью Лог дал нам задачку на воссоздание сетчатого узора с применением кода минимального объёма. Удивительно, но мне удалось такой код написать:

Задачки по программированию на BASIC для ZX Spectrum - 10

Задачки по программированию на BASIC для ZX Spectrum - 11

Узор из переплетающихся полос

Уве Гейкен предложил написать программу для рисования узора из переплетающихся полосок. Мне было довольно сложно оптимизировать размер этой программы, но в итоге удалось вместить её в 109 байтов:

Задачки по программированию на BASIC для ZX Spectrum - 12

Задачки по программированию на BASIC для ZX Spectrum - 13

Узор в виде флага

Мэттью Лог попросил написать самую короткую программу, выводящую узор размером 31x21, напоминающий флаг. Уве Гейкен решил эту задачу с помощью кода длиной в 67 байтов и легко обошёл мою 74-байтную программу:

Задачки по программированию на BASIC для ZX Spectrum - 14

Задачки по программированию на BASIC для ZX Spectrum - 15

Минималистичная шестерёнка

Мэттью Лог снова подготовил интересную задачу. На этот раз она заключалась в рисовании простой цилиндрической шестерёнки с 10 зубьями. Вот что у меня получилось:

Задачки по программированию на BASIC для ZX Spectrum - 16

Задачки по программированию на BASIC для ZX Spectrum - 17

Увлекаетесь ли вы ретро-программированием?

Автор:
ru_vds

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js