Noel quine!


10

Seçtiğiniz dilde, kendisini aynı şekilde basan bir Noel ağacı şeklinde düzenlenmiş bir program yazın.

Neye izin verilmiyor:

  • Kaynak dosyayı yazdırma
  • Kod, bir yorumlayıcı tarafından değişmez olmaları nedeniyle yankılanan ifadelerden başka bir şey değildir (örneğin, yalnızca pitonda ağaç şeklinde bir liste kulesi kullanarak)

"Kaynak dosyanın yazdırılmasına " izin verilmiyor, ancak kaynak kodunun (dosyadan değil) okunmasına ve yazdırılmasına izin veriliyor mu? Değilse, bu Befunge ile neredeyse imkansızdır. : /
Justin

Yanıtlar:


16

JavaScript

'Yıldız' ağaç için biraz fazla büyük olabilir ...

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

Sıfırlar baubles ve editörde en iyi görünüyor:

Sözdizimi vurgulaması için Yaşasın!

Chrome Geliştirici araçlarında çıktı


3
Baubles ile güzel hile!
Manishearth

2
"Size mutlu Noeller diliyoruz!"
Iszi

11

Yakut

Hiç ağ erişimini kullanamayacağımızı söylemedin ...: D

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

Kendini kelimesi kelimesine çıktılar.

Evet, bir URL kısaltıcı kullanmış olabilirdim, ama bu daha az belirgin ve eğlenceli olurdu: P Ayrıca yer kaplamak için bir şeye ihtiyacım vardı ; aksi halde ağaç küçük olur.

Bunun gibi yürütün:

ruby -ropen-uri christmasquine.rb

5
Bence hile yaptın, ama kurallar konusunda haklısın. Bir kapı tokmağı tarafından geride bırakıldı. Her neyse, işte beni güldürdüğün için oyun :)
Manishearth

1
@Manishearth Evet, kuralları burada çok eğiyoruz ! Eğlencenin bir parçası. : P (Örn. 0 karakter quines, vb.)
Kapı tokmağı

@Manishearth Evet, Doorknob'un söyledikleri. Bir kuralın bükülmesini istemiyorsanız, bu kuralın bükülmesine karşı bir kural eklemeniz gerekir. Bu nedenle, en son "ters kine" ve "ayna kine" zorluklarının palindromlara ve 2 karakterden kısa kinelere karşı kuralları vardı.
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

4

İşte GolfScript'te küçük bir tane :

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

Yukarıdaki kodun, ikinci satırın sonunda üstten iki boşluk karakteri içerdiğini unutmayın; bu alanlar doğru çalışma için gereklidir. Ayrıca, kod LFWindows stili CR+ değil, Unix stili ( ) satır beslemeleri kullanılarak kaydedilmelidir LF.


İşte şenlikli bir mesaj da dahil olmak üzere biraz daha büyük (ve daha az boşluk duyarlı):

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

Bir hafif ilginç özelliği kelimeler olmasıdır MERRYve CHRISTMASonlar her ne kadar, dize hazır değildir vardır no-op ve onları çevreleyen kod bloğu ile birlikte çıkışa kopyalanır.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.