Noël quine!


10

Dans la langue de votre choix, écrivez un programme qui est disposé sous la forme d'un arbre de Noël qui s'imprime dans la même forme.

Ce qui n'est pas autorisé:

  • Impression du fichier source
  • Code qui n'est rien d'autre que des déclarations qui sont répercutées par un interprète en raison de leur caractère littéral (par exemple en utilisant simplement une tour de listes en forme d'arbre en python)

"Imprimer le fichier source" n'est pas autorisé, mais la lecture du code source (pas à partir du fichier) et l'impression sont-elles autorisées? Si ce n'est pas le cas, cela est pratiquement impossible avec Befunge. : /
Justin

Réponses:


16

Javascript

L'étoile pourrait être un peu trop grande pour l'arbre ...

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

Les zéros sont des babioles et ont fière allure dans l'éditeur:

Hourra pour la coloration syntaxique!

Sortie dans les outils de développement Chrome


3
Belle astuce avec les boules!
Manishearth

2
J'adore l'inclusion de "Nous vous souhaitons un joyeux Noël!"
Iszi

11

Rubis

Vous n'avez jamais dit que nous ne pouvions pas utiliser l'accès au réseau ...: D

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

S'affiche textuellement.

Oui, j'aurais pu utiliser un raccourcisseur d'URL, mais cela l'aurait rendu moins évident et amusant: P De plus, j'avais besoin de quelque chose pour prendre de la place; sinon l'arbre serait minuscule.

Exécutez comme ceci:

ruby -ropen-uri christmasquine.rb

5
Dans mon esprit, vous avez triché, mais vous avez raison sur les règles. Déjoué par une poignée de porte. Quoi qu'il en soit, voici votre vote positif, pour m'avoir fait sourire :)
Manishearth

1
@Manishearth Yep, nous plions beaucoup les règles ici! Une partie du plaisir. : P (Ex. 0 caractère quines, etc.)
Poignée de porte

@Manishearth Oui, ce que Doorknob a dit. Si vous ne voulez pas qu'une règle soit pliée, vous devez inclure une règle interdisant de plier cette règle. C'est pourquoi les derniers défis "reverse quine" et "mirror quine" avaient des règles contre les palindromes et les quines de moins de 2 caractères.
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

En voici un tout petit dans GolfScript :

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

Notez que le code ci-dessus comprend deux caractères d'espace à la fin de la deuxième ligne à partir du haut; ces espaces sont essentiels pour un fonctionnement correct. En outre, le code doit être enregistré à l'aide de LFsauts de ligne de style Unix ( ), pas de style Windows CR+ LF.


En voici un légèrement plus grand (et moins sensible aux espaces blancs), y compris un message festif:

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

Une caractéristique légèrement intéressante est que les mots MERRYet CHRISTMASne sont pas des littéraux de chaîne, bien qu'ils ne soient pas des opérations, et qu'ils soient copiés dans la sortie avec le bloc de code qui les entoure.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.