Défi:
Écrivez un code qui, une fois exécuté, produira le code source d'un deuxième programme qui peut être exécuté dans une autre langue. Le deuxième programme doit sortir le code source d'un troisième programme qui peut être exécuté dans une troisième langue et ainsi de suite. Le dernier programme devrait sortir PPCG
avec un retour à la ligne unique facultatif.
Le gagnant sera la soumission avec le plus de langues. La longueur de code du premier programme sera le bris d'égalité.
Règles importantes:
- Aucun programme ne peut être identique
- Chaque langue ne doit fonctionner qu'avec l'un des codes sources. Il devrait être impossible d'utiliser la même langue à deux endroits de la chaîne sans la casser (voir exemples) .
- Une chaîne raccourcie n'est pas une chaîne cassée. Si vous pouvez utiliser une langue dans un endroit différent de celui prévu et que le résultat final est toujours PPCG, alors il n'est pas valide
- Toutes les versions d'une langue comptent comme langues uniques (mais gardez à l'esprit la règle numéro 2)
Exemples:
Une soumission invalide:
print("""print'disp("PPCG")'""")
- Python 3:
print("""print'disp("PPCG")'""")
impressionsprint'disp("PPCG")'
- Python 2:
print'disp("PPCG")'
impressionsdisp("PPCG")
- Octave:
disp("PPCG")
estampesPPCG
Cela fonctionne correctement, mais: vous pouvez exécuter le premier et le deuxième code en Python 2 sans casser la chaîne, donc cela viole la règle numéro 2.
Une soumission valide avec un score de 3:
print("""print'disp("PPCG")'""")
- Python 3:
print("""print'disp("PPCG")'""")
impressionsprint'disp("PPCG")'
- Perl:
print'disp("PPCG")'
impressionsdisp("PPCG")
- Octave:
disp("PPCG")
estampesPPCG
Il s'agit du même code exact que l'exemple non valide. La différence est que nous avons choisi des langues qui respectent la règle numéro 2: vous ne pouvez pas exécuter le premier code en Perl / Octave, le deuxième code en Python 3 / Octave ni le dernier code en Python 3 / Perl. Ceci est valide même si Python 2 peut exécuter les deux premiers programmes, car nous n'avons pas utilisé Python 2 comme l'un des langages.