Різдвяна квітка!


10

Мовою, яку ви вибрали, напишіть програму, влаштовану у формі ялинки, яка друкує себе в тій же формі.

Що не дозволено:

  • Друк вихідного файлу
  • Код - це не що інше, як висловлювання, що отримують перегук інтерпретатора через те, що вони є буквальними (наприклад, просто використовуючи деревовидну башту списків у python)

"Друк вихідного файлу" не дозволений, але читання вихідного коду (не з файлу) та друк дозволено? Якщо це не так, то це практично неможливо з Befunge. : /
Джастін

Відповіді:


16

JavaScript

"Зірка" може бути трохи занадто великою для дерева ...

        (function _()
     {return('        (')
      +(''+''+''+''+'')
             +_+
            ')()'
           ;'We w'
          +'wis'+0+
         'h you a '
        +0+'merry Ch'
       +'ristmas, '+0+
      +'we '+0+'wish y'
     +0+'ou a merry Chr'
    +'istmas, we w'+0+'i'
   +0+'sh you '+0+'a merr'
  +'y Christmas and a h'+0+
 +'appy'+0+'new year! Ho ho'
+0+' ho! Merry '+0+'Christma'
            +'s!'
            })()

Нулі є дрібницями і найкраще виглядають у редакторі:

Ураг для виділення синтаксису!

Вихід у інструментах для розробників Chrome


3
Гарний трюк з дрібничками!
Manishearth

2
Я люблю включення "Ми бажаємо вам щасливого Різдва!"
Іссі

11

Рубін

Ви ніколи не казали, що ми не можемо використовувати доступ до мережі ...: D

        #
       s="
      open(
     'http:/
    /pastebin
   .com/raw.ph
  p?i=mGzbahp5'
 ).read";s=eval(
s.gsub! /\s/,'');
      puts(
      s+'')

Виводить себе дослівно.

Так, я міг би використовувати скорочувач URL-адрес, але це зробило б його менш очевидним та кумедним: P Також мені було потрібно щось, щоб зайняти місце; інакше дерево було б крихітним.

Виконайте так:

ruby -ropen-uri christmasquine.rb

5
На мою думку ви обдурили, але ви маєте рацію щодо правил. Захищена дверною ручкою. У будь-якому випадку, ось ваш підсумок, змусивши мене посміхнутися :)
Manishearth

1
@Manishearth Так, тут ми багато дотримуємось правил ! Частина веселощів. : P (напр., 0 символів королеви тощо)
Дверна ручка

@Manishearth Так, що сказав Дорноб. Якщо ви не хочете, щоб правило було зігнутим, вам потрібно включити правило проти вигину цього правила. Отже, в останніх викликах "зворотна квінка" та "дзеркальна квітка" були правила щодо паліндром та лайків коротше двох символів.
Іссі

4

перл

#!/usr/bin/perl
$_=<<'the source';eval $_;

          #
         #*#
        print
       "#!/u".
      "sr/bin".
     "/perl \n".
    "\$_=<<'the".
   " source';eva".
  "l \$_;\n${_}th".
 "e source\n";# Mery 
#Christmas to all !!!
         ###
         ###
         #*#

the source

4

Ось крихітний у GolfScript :

   {
  ".~  
 "2/~\
+@@2$*}.
   ~

Зауважте, що вищевказаний код містить два символи пробілу в кінці другого рядка зверху; ці простори необхідні для правильної роботи. Також код слід зберігати за допомогою LFлінійних стрічок у стилі Unix ( ), а не в стилі Windows CR+ LF.


Ось дещо більший (і менш чутливий пробіл), включаючи святкове повідомлення:

     {
    " "
   MERRY
  5*n\+\n
 CHRISTMAS
".~"+2$*1>}
     .
     ~

М'яко Цікавою особливістю є те, що слова MERRYі CHRISTMASне є рядкові літерали, хоча вони не є НЕ-OPS, і копіюються в вихідний разом з блоком коду навколо них.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.