Японские узоры
Уве Гейкен предложил воссоздать замысловатый японский узор. Я, взяв за основу фигуру из четырёх линий, напоминающую карамельную трость, отражая, вращая и повторяя её, смог уложить решение этой задачи в 156 байтов:
![Задачки по программированию на BASIC для ZX Spectrum - 2 Задачки по программированию на BASIC для ZX Spectrum - 2](https://www.pvsm.ru/images/2021/11/04/zadachki-po-programmirovaniyu-na-BASIC-dlya-ZX-Spectrum-2.png)
![Задачки по программированию на BASIC для ZX Spectrum - 3 Задачки по программированию на BASIC для ZX Spectrum - 3](https://www.pvsm.ru/images/2021/11/04/zadachki-po-programmirovaniyu-na-BASIC-dlya-ZX-Spectrum-3.png)
Орбиты Земли и Венеры
Дэвид Сапфье дал нам задачку на написание самого быстрого кода на BASIC, выводящего траектории орбит Земли и Венеры. Во мне живёт немного бунтарского духа, поэтому я решил написать самый короткий код. Я далеко не сразу добрался до приведённой здесь рабочей версии программы:
![Задачки по программированию на BASIC для ZX Spectrum - 4 Задачки по программированию на BASIC для ZX Spectrum - 4](https://www.pvsm.ru/images/2021/11/04/zadachki-po-programmirovaniyu-na-BASIC-dlya-ZX-Spectrum-4.png)
![Задачки по программированию на BASIC для ZX Spectrum - 5 Задачки по программированию на BASIC для ZX Spectrum - 5](https://www.pvsm.ru/images/2021/11/04/zadachki-po-programmirovaniyu-na-BASIC-dlya-ZX-Spectrum-5.png)
Гренландский флаг
Мэттью Лог предложил посоревноваться в написании программы для вывода точной копии флага Гренландии. Этот флаг устроен довольно просто, его описание можно свести к такой формуле: x²+y² < 54² ⊻ y > 0:
![Задачки по программированию на BASIC для ZX Spectrum - 6 Задачки по программированию на BASIC для ZX Spectrum - 6](https://www.pvsm.ru/images/2021/11/04/zadachki-po-programmirovaniyu-na-BASIC-dlya-ZX-Spectrum-6.png)
![Задачки по программированию на BASIC для ZX Spectrum - 7 Задачки по программированию на BASIC для ZX Spectrum - 7](https://www.pvsm.ru/images/2021/11/04/zadachki-po-programmirovaniyu-na-BASIC-dlya-ZX-Spectrum-7.png)
Треугольники
Уве Гейкен показал узор, состоящий из треугольников, и предложил написать самый короткий код, воспроизводящий этот узор. Самая короткая найденная мной реализация этой задачи использует UDG (User-Defined Graphics, графические символы, определяемые пользователем):
![Задачки по программированию на BASIC для ZX Spectrum - 8 Задачки по программированию на BASIC для ZX Spectrum - 8](https://www.pvsm.ru/images/2021/11/04/zadachki-po-programmirovaniyu-na-BASIC-dlya-ZX-Spectrum-8.png)
![Задачки по программированию на BASIC для ZX Spectrum - 9 Задачки по программированию на BASIC для ZX Spectrum - 9](https://www.pvsm.ru/images/2021/11/04/zadachki-po-programmirovaniyu-na-BASIC-dlya-ZX-Spectrum-9.png)
Сетка
Мэттью Лог дал нам задачку на воссоздание сетчатого узора с применением кода минимального объёма. Удивительно, но мне удалось такой код написать:
![Задачки по программированию на BASIC для ZX Spectrum - 10 Задачки по программированию на BASIC для ZX Spectrum - 10](https://www.pvsm.ru/images/2021/11/04/zadachki-po-programmirovaniyu-na-BASIC-dlya-ZX-Spectrum-10.png)
![Задачки по программированию на BASIC для ZX Spectrum - 11 Задачки по программированию на BASIC для ZX Spectrum - 11](https://www.pvsm.ru/images/2021/11/04/zadachki-po-programmirovaniyu-na-BASIC-dlya-ZX-Spectrum-11.png)
Узор из переплетающихся полос
Уве Гейкен предложил написать программу для рисования узора из переплетающихся полосок. Мне было довольно сложно оптимизировать размер этой программы, но в итоге удалось вместить её в 109 байтов:
![Задачки по программированию на BASIC для ZX Spectrum - 12 Задачки по программированию на BASIC для ZX Spectrum - 12](https://www.pvsm.ru/images/2021/11/04/zadachki-po-programmirovaniyu-na-BASIC-dlya-ZX-Spectrum-12.png)
![Задачки по программированию на BASIC для ZX Spectrum - 13 Задачки по программированию на BASIC для ZX Spectrum - 13](https://www.pvsm.ru/images/2021/11/04/zadachki-po-programmirovaniyu-na-BASIC-dlya-ZX-Spectrum-13.png)
Узор в виде флага
Мэттью Лог попросил написать самую короткую программу, выводящую узор размером 31x21, напоминающий флаг. Уве Гейкен решил эту задачу с помощью кода длиной в 67 байтов и легко обошёл мою 74-байтную программу:
![Задачки по программированию на BASIC для ZX Spectrum - 14 Задачки по программированию на BASIC для ZX Spectrum - 14](https://www.pvsm.ru/images/2021/11/04/zadachki-po-programmirovaniyu-na-BASIC-dlya-ZX-Spectrum-14.png)
![Задачки по программированию на BASIC для ZX Spectrum - 15 Задачки по программированию на BASIC для ZX Spectrum - 15](https://www.pvsm.ru/images/2021/11/04/zadachki-po-programmirovaniyu-na-BASIC-dlya-ZX-Spectrum-15.png)
Минималистичная шестерёнка
Мэттью Лог снова подготовил интересную задачу. На этот раз она заключалась в рисовании простой цилиндрической шестерёнки с 10 зубьями. Вот что у меня получилось:
![Задачки по программированию на BASIC для ZX Spectrum - 16 Задачки по программированию на BASIC для ZX Spectrum - 16](https://www.pvsm.ru/images/2021/11/04/zadachki-po-programmirovaniyu-na-BASIC-dlya-ZX-Spectrum-16.png)
![Задачки по программированию на BASIC для ZX Spectrum - 17 Задачки по программированию на BASIC для ZX Spectrum - 17](https://www.pvsm.ru/images/2021/11/04/zadachki-po-programmirovaniyu-na-BASIC-dlya-ZX-Spectrum-17.png)
Увлекаетесь ли вы ретро-программированием?
Автор:
ru_vds