La tâche est un défi quine assez simple avec une torsion, vous devez sortir votre code source sous la forme d'une pyramide. La forme d'une pyramide est définie ci-dessous:
1
234
56789
ABCDEFG
HIJKLMNOP
QRSTUVWXYZa
bcdefghijklmn
......etc......
La principale limitation de ce défi est que votre quine doit contenir exactement suffisamment d'octets pour ne pas obstruer le motif de la pyramide. Par exemple, les longueurs de programme suivantes fonctionneraient:
1-byter: 1st layer of the pyramid (not allowed by definition of a quine).
4-byter: 1st and 2nd layers of the pyramid.
9-byter: 1st, 2nd and 3rd layers of the pyramid.
etc...
Donc, si votre programme était:
QWERTY
Ce ne serait pas valable, car cela s'arrangerait comme:
Q
WER
TY
Cependant, si votre programme était QWERTYUIO, ce serait bien:
Q
WER
TYUIO
Règles
- Les failles standard sont évidemment interdites, pas de lecture de votre propre source.
- La pyramide doit être centrée, les caractères de fin sont autorisés, mais pas obligatoires.
- De plus, n'importe quel caractère peut être utilisé pour centrer la pyramide, ce n'est pas obligatoire
(char)32
.
- De plus, n'importe quel caractère peut être utilisé pour centrer la pyramide, ce n'est pas obligatoire
- Votre quine doit pouvoir prendre la forme d'une pyramide.
- Il doit conserver la commande d'origine de votre code source.
- Votre code source ne doit PAS contenir le caractère utilisé pour formater la pyramide.
- EG si votre code source contient un espace, vous aurez besoin d'un autre caractère pour le format.
- Vous pouvez utiliser des commentaires dans votre quine pour "pad" à la bonne taille.
- Évidemment, ceux-ci doivent être sortis dans le cadre du quine.
- Si le programme contient des sauts de ligne / tabulations, ils ne font pas partie du quine et doivent être omis dans la sortie.
- La forme est comptée en caractères, pas en octets; si la forme est mal formée, vous ne le faites pas correctement.
Le score le plus bas possible ici devrait être de 4.
code-golf
ascii-art
restricted-source
quine
Urne de poulpe magique
la source
la source
Réponses:
05AB1E , 36 octets
Essayez-le en ligne!
Si
trailing characters are allowed
signifie également à la fin de la sortie,0"D34çýā·<£.c"D34çýā·<£.c
est une couche plus courte à 25 octets.la source
34ç
est la base de toutes les quines 05AB1E, n'est-ce pas haha? De plus, je ne sais pas ce que je pense de la quantité aléatoire de nouvelles lignes de fin ... Je préférerais que quelqu'un d'autre fasse cet appel (quelle est la norme, 1 fin / précédant autorisé?) Qui semble super à la limite.ā·<
je l'ai utilisé9ÅÉ
(dans le 25 octets, je n'ai pas pensé à la nouvelle ligne de fin ..)Java 11,
324256227 octets-29 octets grâce à @JoKing .
Sorties avec espaces de tête pour créer le triangle. (Notez que les espaces entre
var s
etint i
sont des tabulations, pas des espaces.)Essayez-le en ligne.
Explication:
quine -part:
var s
contient la chaîne de code source non formatée%s
est utilisé pour mettre cette chaîne en elle-même avecs.format(...)
%c
,%1$c
Et34
sont utilisés pour formater les guillemets doubles ("
)%%
est utilisé pour formater le%
s.format(s,34,s)
met tout cela ensemblePartie défi:
Ce qui s'arrête avec une
java.lang.StringIndexOutOfBoundsException: begin 225, end 256, length 226
erreur pour laString#substring(int,int)
méthode, l'itération après avoir imprimé le résultat ( ce qui est bien selon la méta ).la source
s=s.format
séparer lorsque vous pouvez avoir le format dans la boucle à la place%%
dans la chaîne et un seul%
dans le code réel, mais cela signifie que les commentaires sont obligatoires///
dans la chaîne afin que la chaîne soit suffisamment longue pour qu'elle passe à l'itération attendue pour tout imprimer, avant de s'arrêter avec leStringIndexOutOfBoundsException
pour le.substring
. Et avec seulement deux fin//
à la fin du programme réel, car il n'imprime également que deux fin//
. :)Python 2 , 81 octets
Essayez-le en ligne!
Un quine eval qui utilise des espaces comme caractère de remplissage.
la source
;)
Perl 6 , 67 octets
Essayez-le en ligne!
J'ai utilisé quelques caractères Unicode afin d'extraire cette couche supplémentaire. Sorties utilisant des espaces:
Explication:
la source
Python 2 , 169 octets
Utilise
0
pour formater la pyramide.Essayez-le en ligne!
Python 2 , 147 octets
Cela utilise la règle Si le programme contient des sauts de ligne / tabulations, ils ne font pas partie du quine et doivent être omis dans la sortie.
Essayez-le en ligne!
la source
Gol> <> , 36 octets
Essayez-le en ligne!
une version encore plus jeune, 36 octets
Je me sens tellement proche de le raccourcir d'une ligne, grrrr ....
Essayez-le en ligne!
version encore plus jeune, 36 octets
Le code de celui-ci est plus petit, mais il revient toujours au même niveau malheureusement, le commentaire occupe le reste de l'espace.
Essayez-le en ligne!
version légèrement plus récente, 36 octets
Wowza! Hé, je viens de l'utiliser pour remplir de l'espace, mais le programme fonctionne, pour jouer au golf, j'ai utilisé quelques valeurs pré-poussées plutôt que d'utiliser des variables!
Essayez-le en ligne!
Version plus ancienne, 42 octets
Cela a une nouvelle ligne et a plus de caractères que je ne le voudrais ...
Je vais jouer au golf sévèrement ...
Essayez-le en ligne!
la source
Nettoyer , 256 octets
Essayez-le en ligne!
À peu près le quine standard, idéalement aussi un quine de modèle, avec la fonction de formatage ajoutée.
la source
R ,
169144 octetsEssayez-le en ligne!
A réussi à le raccourcir en passant à une chaîne qui est analysée plutôt qu'à une expression qui est partie. J'ai dû utiliser une redéfinition d'un opérateur unaire pour l'obtenir sous le 144.
la source
C # (Visual C # Interactive Compiler) , 225 octets
Utilise un
STX
comme rembourrage. Je ne savais pas que Kevin Cruijssen avait déjà soumis une copie exacte en java avant de poster jusqu'à ce que j'aie fini, mais j'ai décidé de poster quand même.Essayez-le en ligne!
la source