По мотивам статьи на хабре "Реверс-инжиниринг 128-битного дракона".
Программа рисует кривую дракона, вид фрактальной кривой.
Конкретный данный вариант алгоритма известен тем, что энтузиаст смог уместить его в исполнимый файл под MS-DOS размером всего 16 байт.
Перем Цвета, X, Y, counter, flag, МасштабВывода;
Процедура ПриОткрытии(Отказ)
Цвета.Добавить(Новый Цвет(0, 0, 0));
Цвета.Добавить(Новый Цвет(0, 0, 128));
Цвета.Добавить(Новый Цвет(0, 128, 0));
Цвета.Добавить(Новый Цвет(0, 128, 128));
Цвета.Добавить(Новый Цвет(128, 0, 0));
Цвета.Добавить(Новый Цвет(128, 0, 128));
Цвета.Добавить(Новый Цвет(128, 128, 0));
Цвета.Добавить(Новый Цвет(192, 192, 192));
Цвета.Добавить(Новый Цвет(128, 128, 128));
Цвета.Добавить(Новый Цвет(0, 0, 255));
Цвета.Добавить(Новый Цвет(0, 255, 0));
Цвета.Добавить(Новый Цвет(0, 255, 255));
Цвета.Добавить(Новый Цвет(255, 0, 0));
Цвета.Добавить(Новый Цвет(255, 0, 255));
Цвета.Добавить(Новый Цвет(255, 255, 0));
Цвета.Добавить(Новый Цвет(255, 255, 255));
Холст.Область(, 1,, ШиринаХолста*МасштабВывода).ШиринаКолонки = 0.5;
Холст.Область(1,, ВысотаХолста*МасштабВывода).ВысотаСтроки = 2.75;
Холст.Область(1, 1, ВысотаХолста*МасштабВывода, ШиринаХолста*МасштабВывода).ЦветФона = Новый Цвет(0, 0, 0);
Процедура ШагРисованияДракона()
if (X < 0 and Y < 0) then
elsif (X >= 0 and Y >= 0) then
flag = Макс(X, Y) >= АБС(Мин(X, Y));
ПодключитьОбработчикОжидания("ШагРисованияДракона", 0.5, Истина);
&НаКлиентеНаСервереБезКонтекста
Функция putPixel(x, y, colorIndex)
Цвет = Цвета[colorIndex % 15];
Холст.Область((y+351)*МасштабВывода, (x+201)*МасштабВывода).ЦветФона = Цвет;
Процедура НарисоватьДракона(Команда)
Процедура Останов(Команда)
ОтключитьОбработчикОжидания("ШагРисованияДракона");