Święta Bożego Narodzenia!

10

W wybranym języku napisz program ułożony w kształcie choinki, która drukuje się w tym samym kształcie.

Co jest niedozwolone:

  • Wydruk pliku źródłowego
  • Kod, który jest niczym innym jak stwierdzeniami, które są tłumaczone przez interpretera, ponieważ są dosłowne (np. Po prostu za pomocą wieżowej listy list w pythonie)
Manishearth
źródło
„Wydruk pliku źródłowego” jest niedozwolony, ale czy odczytywanie kodu źródłowego (nie z pliku) i drukowanie go jest dozwolone? Jeśli tak nie jest, jest to praktycznie niemożliwe z Befunge. : /
Justin,

Odpowiedzi:

16

JavaScript

„Gwiazda” może być nieco za duża dla drzewa ...

        (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!'
            })()

Zera są bombkami i najlepiej wyglądają w edytorze:

Brawo dla podświetlania składni!

Dane wyjściowe w narzędziach Chrome dla programistów

Dom Hastings
źródło
3
Niezła sztuczka z bombkami!
Manishearth,
2
Uwielbiam włączenie „Życzymy wesołych świąt”!
Iszi
11

Rubin

Nigdy nie mówiłeś, że nie możemy korzystać z dostępu do sieci ...: D

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

Wyprowadza się dosłownie.

Tak, mogłem użyć skracacza adresów URL, ale to uczyniłoby to mniej oczywistym i zabawnym: P Potrzebowałem też czegoś, aby zająć miejsce; w przeciwnym razie drzewo byłoby małe.

Wykonaj w ten sposób:

ruby -ropen-uri christmasquine.rb
Klamka
źródło
5
Moim zdaniem oszukiwałeś, ale masz rację co do zasad. Przechytrzony przez klamkę. W każdym razie, oto twoja opinia, za spowodowanie, że się uśmiecham :)
Manishearth,
1
@Manishearth Tak, tutaj dużo naginamy zasady ! Część zabawy. : P (np. Liczba znaków 0, itp.)
Klamka
@Manishearth Tak, co powiedział Doorknob. Jeśli nie chcesz wyginać reguły, musisz dołączyć regułę przeciw wyginaniu tej reguły. Dlatego też najnowsze wyzwania „odwrotnej quiny” i „lustrzanej quiny” miały reguły przeciwko palindromom i quinom krótszym niż 2 znaki.
Iszi
4

perl

#!/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
Hildred
źródło
4

Oto mały w GolfScript :

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

Zauważ, że powyższy kod zawiera dwa znaki spacji na końcu drugiego wiersza od góry; przestrzenie te są niezbędne do prawidłowego działania. Ponadto kod powinien być zapisywany przy użyciu źródeł linii w stylu Unix ( LF), a nie w stylu Windows CR+ LF.


Oto nieco większy (i mniej wrażliwy na spacje), w tym świąteczna wiadomość:

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

Nieco interesującą cechą jest to, że słowa MERRYi CHRISTMASnie są literałami ciągów, chociaż nie operacjami operacyjnymi i są kopiowane na wyjście wraz z otaczającym je blokiem kodu.

Ilmari Karonen
źródło