Программирование на языке Piet для сусликов

    Добрый день.
    Кризис, мало заказов, появилось немного свободного времени? Самое время научиться писать важные и полезные программы на эзотерическом языке Piet, который использует разноцветные изображения в качестве операторов. Я написал вот такую:

    программа на Piet

    С ее помощью суслики(и не только) могут узнать, с какой скоростью им следует размножаться, чтобы удвоить свою численность за X лет. Работать с программой очень просто: вводишь X, получаешь %, на который стоит увеличивать свою популяцию за год.


    А вот как это выглядит в увеличенном варианте:
    увеличенная программа


    Алгоритм работы программы очень прост:
    1. запихнуть в стек число 72 (72 — это красный суслик, запихнуть в стек — маленькая светло-красная штука рядом с его ногой)
    2. ввести число лет X и запихнуть его в стек (синяя загогулина)
    3. поделить (красная штуковина правее синей загогулины)
    4. вывести результат (розовая хреновина, уходящая в гусеницу)
    5. завершить работу (сочетание формы розовой хреновины с черным обрамлением)

    Все остальное я нарисовал просто так.

    Почитать про язык Piet можно тут.
    Скачать интерпретатор — тут
    Простая IDE под Piet (интерпретатор отдельно не нужен) — тут.

    Исходник моей программы — маленькая картинка вверху.
    Точность алгоритма не супер, но вполне приличная для сусликов (и не только), можете проверить.

    Если все это интересно, выложу перевод описания языка (пока готов процентов на 20).
    Метки:
    Поделиться публикацией
    Реклама помогает поддерживать и развивать наши сервисы

    Подробнее
    Реклама
    Комментарии 82
    • +11
      Забавный язык :)
      • –1
        програмить картинками, не ожидал)
        • +3
          Теперь в Фотошопе тоже можно программировать :)
        • +2
          Прям наскальная живопись какая то)
          • +19
            Прочитал как «паскальная» :)
        • +3
          хе)) ну хоть не брейнфак, и на том спасибо
          • +1
            нормальный язык для программирования машины Тьюринга =)
          • +6
            Раз захотели эзотерику то вот основные языки и их цели:

            *) INTERCAL — быть не как привычные
            *) brainfuck — машина тьюринга, с простым и красивым синтаксисом
            *) Befunge — n-мерные, piet это ответвление от этого
            *) Chef — пишем программы как рецепты, был еще шекспировкие тексты. Кто-то из русских делал по мотивам пушкина ;)
            *) Var'aq — логика Клингонов из Star Trak
            *) Whenever — раскрашиваем рыбку ;)

            И мой любимый: Malbolge, просто отрыв башки
            • +11
              malbolge, это на котором hello world через пару лет только смогли написать, после длительных исследований?) меня тож позабавило
              • +1
                я кстати написал программу которая пишет программу на этом языке ;)

                Правда одну :(

                А есть один человек который свободно пишет на нем, говорят что даже без программ.
                • +2
                  Да, и он бессмертен. :)
                  • +10
                    Чак Норрис?
                    • +6
                      Анатолий Вассерман.
                      • 0
                        Касчей бесмертный?
                        (но я честно этот язык не знаю!)
                        • +2
                          или Петя Митричев.
                    • 0
                      а подробности где можно узнать? про эту программу
                  • 0
                    Я бы добавил еще Shakespeare — программирование на языке Шекспира. :)
                    • НЛО прилетело и опубликовало эту надпись здесь
                      • +18
                        Нет нет, что вы! Это языки для написания серьезных бизнес-приложений и систем наведения ядерных ракет!!!
                        • +2
                          На bf я написал одну программу. base64 encoder/decoder. Она даже работает. Только вот ее поддержка ;)
                          • +9
                            Бизнес-приложения и систем наведения ядерных ракет в одном программном пакете? Как страшно стало жить!
                            • 0
                              Хех, ну никто и не говорит, что в одном! Но идея определенно интересная :)
                              • +4
                                вы разве не знали, что наведение ракет — это бизнес?
                                Причем, наведение простых ракет — это малый бизнес, ядерных — крупный…
                                • 0
                                  Для запуска ядерных ракет используются два разнесённых в пространстве ключа. А в программе должны быть две кнопки в разных окнах. )
                                  • +2
                                    не путайте наведение и запуск.

                                    Запуск — это ответственность. Наведение — это бизнес
                                    :)))
                                  • НЛО прилетело и опубликовало эту надпись здесь
                                  • +8
                                    Это будет в Nero 10.
                                  • 0
                                    А я бы посмотрел на такую картинку =)
                                    • +2
                                      Ага, 1С((
                                  • +1
                                    Ладно картинки, есть языки, на которых «Hello, World»-то замучаешься писать )
                                    ru.wikipedia.org/wiki/Эзотерические_языки_программирования
                                    • +2
                                      Интересно, понравился бы такой язык детям?
                                      • +5
                                        Понравилось бы или нет незнаю, но крышу бы снесло наверняка
                                        • +2
                                          А потом бы оказалось что ихний каля-маля самый совершенный для управления какой-нибуть атомной станцией.
                                      • +3
                                        А вот «Hello Word» на Piet

                                        © wiki, Piet
                                        • 0
                                          еще вариант:

                                          и еще:

                                          и еще:


                                          все из примеров по ссылке
                                          можно по-разному писать.
                                          • 0
                                            У меня картинки не отображаются. Криво скомпилили?

                                            Эти языки позволят решать достаточно много задач в программировании, которые не существовали бы без этих языков.
                                          • +5
                                            А в английском варианте «Hello World!» выглядит гораздо красивее =)
                                          • +1
                                            А вот — вычисление числа PI:



                                            Чем-то мне этот язык напомнил Форт.
                                            • +5
                                              На сколько масштабируема ваша программа? )))
                                              • +5
                                                )))) да хоть лайтбокс 5х1.6м в метро)

                                                только там цвета уедут и она работать перестанет.
                                                • +1
                                                  следует также учитывать, что с увеличением масштаба может снижаться переносимость.
                                                • –1
                                                  Визуальный brainfuck?
                                                  • НЛО прилетело и опубликовало эту надпись здесь
                                                    • +14
                                                      Стоило ли тогда писать этот комментарий?
                                                      • НЛО прилетело и опубликовало эту надпись здесь
                                                        • +2
                                                          разобраться — минут 30, ну час, там все просто

                                                          а куда и на что мне жизнь свою тратить, я уж разберусь как-нибудь, спасибо за участие)
                                                          • НЛО прилетело и опубликовало эту надпись здесь
                                                            • +3
                                                              Тише, а то придут придут прибудут волшебники и будут кричать про ману
                                                              • 0
                                                                искусство вне времени
                                                                • 0
                                                                  Не обижайтесь, но вы мне пользователя karma напомнили, только вы про время)
                                                                  • НЛО прилетело и опубликовало эту надпись здесь
                                                                  • 0
                                                                    То-то у вас и членство в группе «игры» — крайне полезное занятие
                                                                • 0
                                                                  Действительно стоит!
                                                                  Только скажешь что-то негативное о том, что хабрособщество оценило положительно — и ты изгой!
                                                                  Тот же, кто первым кинул камень — благодетель.
                                                                  • НЛО прилетело и опубликовало эту надпись здесь
                                                                    • 0
                                                                      Согласен. Чуть ниже отписал тупую шутку.
                                                                      Люди начали плюсовать.
                                                              • +1
                                                                Может еще и в игры компьютерные не играть?
                                                              • 0
                                                                Вот если бы придумать язык и реализовать для него интерпретатор, где инструкциями служат аудио-данные. К примеру, амплитуда сигнала или какие-то фигуры/гармоники! А то bf изъезжен вдоль и поперёк, Piet тоже освоен, нужно что-то новенькое. =)
                                                                • 0
                                                                  Лучше уж сразу тогда риалтаймовый язык, где команды надо вводить последовательно за определенный промежуток времени на каждую команду, а в случае ошибки начинать процесс «компиляции» заново.
                                                                  • 0
                                                                    Вот тут-то музыканты и оторвутся! =)
                                                                    • НЛО прилетело и опубликовало эту надпись здесь
                                                                      • +6
                                                                        гитарист играет чудо-соляк, зрители раскрыв рот слушают не в состоянии двинутся с места. через пол минуты он заканчивает соляк, даёт финальный аккорд, и тут включается клубный унц-унц. гитарист уходит со сцены — он только что запрограммировал синтезатор для этой дискотеки. :)
                                                                        • 0
                                                                          Я вот о другом подумал: ведь можно же через этот интерпретатор пропустить сотни и тысячи радиостанций совершенно любых направлений музыки! Наверняка где-нибудь получится что-то осмысленное. =)
                                                                          • +1
                                                                            Ага, а если посадить за клавиатуры 1000 обезъян то они когда нибудь обязательно напишут войну и мир… )
                                                                            • 0
                                                                              но даже с большим распространением компьютеров — пока ничего такого не произошло)
                                                                      • 0
                                                                        Представляю, живое выступление — фестиваль «Metal Compilation 2010» :)
                                                                      • НЛО прилетело и опубликовало эту надпись здесь
                                                                      • 0
                                                                        Optical Storage Method Using Color for very high capacity mass storage — описание технологии кодирования данных в виде цветного изображения. Года два назад читал статью о создании работающего прототипа устройства.
                                                                        А вы говорите «ерунда».
                                                                        • 0
                                                                          хорош наверное сей язык для кросс домоного скриптинга
                                                                          имхо картинкам домены не препоны…
                                                                          только как бы его туда портануть бы в этот ввв…
                                                                          • +5
                                                                            — А что вы делаете?! Порнографию смотрите??
                                                                            — Да нет, что вы. Это скрипт для генерации отчетности. Вот только лифчик в черный покрасим — и готов экспорт в xml!
                                                                            • 0
                                                                              Ждем кода для « Счастливых билетов»
                                                                              • +1
                                                                                Как выглядит программа, выводящая свой код в формате bmp?
                                                                                • –1
                                                                                  > эзотерическом
                                                                                  эК…
                                                                                  • НЛО прилетело и опубликовало эту надпись здесь
                                                                                    • 0
                                                                                      отличная весчь
                                                                                      • 0
                                                                                        На этом языке надо писать программы расчётов для Большого Адронного Коллайдера. Тогда мир может вздохнуть спокойно ближайшие лет 500.
                                                                                        • 0
                                                                                          Whitespace всё равно круче, его исходник особенно хорошо распечатывать.
                                                                                          • 0
                                                                                            А кто видел программирующего суслика?
                                                                                            • 0
                                                                                              Как прочитал вашу статью, сразу же сделал перевод описания языка (теперь он — достояние всего мира, вот только написать об этом забыл
                                                                                              • 0
                                                                                                Почему то я не смог сразу сделать ссылку, вот: ru.wikipedia.org/wiki/Piet
                                                                                                • 0
                                                                                                  а мое начинание
                                                                                                  translated.by/you/piet/
                                                                                                  остановилось на 93% из-за недостатка энтузиазма по поводу

                                                                                                  полезное дело, спасибо

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