Pull to refresh

Поздравление С Новым годом в стиле Brainfuck

Reading time2 min
Views8.4K
Хочется поздравить читателей блога с Новым годом. Но не просто так, а написав поздравление на Brainfuck.

Первое поздравление выводит сообщение в виде ASCII-Art.

image


Т.к. для вывода текста использовался ограниченный словарь из 5 символов, включая перенос строки, то в начале программы формируется этот самый словарь, а потом перемещаем указатель памяти по словарю и выводим символы. Таким образом удалось достаточно сильно сократить размер программы. Осталось только оформить текст самой программы в виде новогоднего поздравления.
Текст получившейся программы можно посмотреть здесь.


Аппетит, как говорится, приходит во время еды. Потратив на первое поздравление минут сорок, а понял, что мне этого будет мало, тем более, что реализация поздравления оказалась до банального проста. Поэтому я с принялся за второе поздравление. Захотелось сделать анимированную открытку. Для реализации задумки воспользуемся ESC-последовательностями, которые позволяют превратить текстовый экран почти в графическую станцию.

На видео видно результат работы программы.



Если при просмотре включить ютубовские снежинки, то демонстрация станет еще более эффектной.

Здесь также в начале формируется словарь символов, из которых выводится изображение елочки. Потом в центре экрана «рисуется» елочка.

Далее займемся переливающейся гирляндой. Положение «лампочек» статично, поэтому будем просто выводить их разным цветом. Всего используется 7 цветов. В escape-кодах их номера идут по порядку. Поэтому каждый новый символ будем выводить цветом, следующим по порядку. При достижении старшего номера, начинаем нумерацию с начала. Если начинать вывод «лампочек» гирлянды сдвинув номер цвета на 1 от предыдущего цикла, то получим эффект бегающих огоньков.

Текст программы достаточно документирован, чтобы не останавливаться здесь на подробном описании программы. Посмотреть код программы можно здесь.

PS. Для тех, у кого нет терминала с поддержкой ESC-последовательностей, рекомендую скачать эмулятор DosBox и запустить там заранее скомпилированную программу. В архиве также присутствует компилятор для Brainfuck.


Upd. Подумалось, а не организовать ли мини конкурс в рамках блога «ненормальное программирование» на самое невероятное поздравление с Новым годом? Условие только одно — поздравление должно соответствовать тематике блога. Победитель определяется количеством голосов, отданных за то или иное решение. Никаких призов кроме всеобщего почета и уважения пока нет.
Tags:
Hubs:
Total votes 52: ↑37 and ↓15+22
Comments8

Articles