Objectif:
Codez deux programmes où chacun des programmes sort les deux codes source entrelacés par caractère comme une fermeture éclair, un quine à double fente. La sortie d'un quine à double fente commence par le premier caractère du code source du premier programme. Si le code source de l'un des programmes est plus court que l'autre, le reste de la sortie doit être rempli avec le reste du code source plus long.
Règles:
- Vous pouvez utiliser n'importe quel langage de programmation pour les deux programmes, pas nécessairement le même langage de programmation pour les deux.
- Vos programmes ne doivent prendre aucune entrée d'un fichier, nom de fichier, réseau, l'autre programme ou quoi que ce soit d'autre.
Critères obligatoires:
- Il y a un hic, quelque part dans la sortie, le mot
QUINE
en majuscules doit exister, sans interruption. - Vous devez indiquer les deux langages de programmation que vous utilisez. Si vous utilisez le même langage de programmation pour les deux, il vous suffit d'indiquer un seul langage de programmation.
- Les deux programmes doivent pouvoir s'exécuter ou être interprétés, respectivement indépendamment de l'autre programme.
Exemple:
Avoir cet exemple de code source du programme un :
"QIE"
Avoir cet exemple de code source du programme deux :
"UN"
Ensuite, la sortie Quine à double fente valide des deux programmes doit être:
""QUINE""
C'est le code-golf, le moins d'octets lorsque l'on additionne la longueur des deux codes source, et évidemment aussi la longueur de chaque sortie de programme, gagne!
A
etXYZ
serait entrelacé?AXYZ
?.+
ouz
fonctionneRéponses:
CJam,
4947 octetset
les deux imprimés
Essayez-le en ligne: programme 1 , programme 2 , preuve de validité
Comment ils travaillent
Le programme 1 se termine ici et a une représentation sous forme de chaîne de tout son code source (que chaque caractère a répété deux fois) ainsi que la chaîne e # QUINE sur la pile.
Le programme 2 analyse également
e#QUINE
, ce qui est un commentaire.Dans les deux cas, CJam imprime automatiquement les deux chaînes, ce qui entraîne la sortie susmentionnée.
la source
Sérieusement,
465642 octetsVidage hexadécimal:
Le deuxième programme est ce programme exact inversé. Il contient un caractère invisible, mais le nombre d'octets est correct. Les deux programmes produisent cette chaîne palindromique:
(Pour une raison quelconque, il affiche le caractère invisible lorsqu'il le produit dans mon terminal. Je ne comprends pas vraiment cet octet 7F.)
Comment ça fonctionne:
Le reste du programme n'est pas exécuté.
Puis l'autre sens:
À ce stade, nous exécutons maintenant le premier programme ci-dessus, donc l'exécution continue comme décrit ici.
J'exploite beaucoup le fait que plusieurs commandes ne font rien pour les chaînes ou les piles vides ici. J'exploite également le comportement inattendu
t
lorsqu'il n'y a qu'un seul élément sur la pile. Ne vous attendez pas à ce que ce programme fonctionne dans les futures versions de Ser sérieux.Étant donné que la version en ligne de l'interpréteur Ser sérieux continue d'être interrompue, vous devrez télécharger l'interprète et l'exécuter sur votre propre machine pour le tester.
la source
GolfScript, 46 octets
et
les deux imprimés
Essayez-le en ligne: programme 1 , programme 2 , preuve de validité
Comment ça fonctionne
Le code source du programme 2 analyse également
QUINE\n
, qui sont deux jetons non définis.la source
Perl, 61 + 60 = 121 octets
Programme 1:
Programme 2:
Je pensais que j'allais essayer ça dans une langue non golfique. Il s'agit essentiellement d'un constructeur de quine universel en Perl modifié pour doubler chaque caractère avant de l'imprimer et l'ajouter
QUINE
à la fin. Ensuite, il suffit de coller un commentaire à la fin du code pour compenser le texte ajouté.(J'ai écrit ceci sans vraiment regarder les autres réponses. Il s'avère qu'il serait possible d'enregistrer un octet en mettant le commentaire entier dans un programme, mais je ne sais pas si je devrais simplement copier de manière flagrante des algorithmes comme ça.)
la source