Créez un programme, qui génère une chaîne hello world ("Hello world", "Hello, World" etc.) et le code source. La sortie est écrite sur stdout ou équivalent. La chaîne Hello world est intégrée au code source.
Par exemple, la sortie de pourrait être
(some source code here)hello world(some source code here)
Lorsque la sortie est à nouveau compilée ou interprétée, elle doit créer une sortie similaire, mais la chaîne hello world doit avoir une ponctuation ou une capitalisation différente. Par exemple, l'exemple précédent pourrait créer la sortie suivante
(some source code here)hello, wORld(some source code here)
Chaque "(un code source ici)" dans ces exemples peut changer après chaque exécution, ou il peut être le même.
Votre sortie doit contenir une chaîne hello world valide exactement une fois. Il peut contenir n'importe quelle quantité de chaînes hello world invalides. Le code source peut contenir n'importe quelle quantité de commentaires et la chaîne hello world peut être incorporée dans les commentaires. Le premier programme peut avoir zéro ou une chaîne hello world valide, mais pas plus.
La ponctuation suivante est valide:
hello, world
hello world
helloworld
Toute capitalisation est acceptable. Par exemple, ce sont des chaînes Hello World valides:
Hello, world
hellO WORld
HELLoworlD
Ces chaînes ne sont pas valides:
Hello world
Hello(newline)world
Hello,world
Hello, Steve
Votre programme échoue dès que l'une des conditions suivantes est remplie:
- Il génère une chaîne hello world qui a été générée lors d'une exécution antérieure,
- la sortie n'est plus du code source valide dans la même langue, ou
- la sortie ne contient pas exactement une chaîne hello world valide.
Votre programme n'est valable pour ce concours que si au moins deux premières exécutions ont réussi. Cela signifie que la troisième sortie peut être invalide. La sortie de votre programme peut ne pas être aléatoire. La première exécution doit toujours créer la même deuxième sortie, la deuxième exécution doit toujours créer la même troisième sortie, etc.
Le score est calculé comme la quantité d'octets dans le code source du programme initial. Le score le plus bas l'emporte.
Les bonus suivants s'appliquent (jusqu'à -60%):
- -5% * (N - 2), où N est l'index de l'exécution après quoi votre programme produit une sortie non valide. Ce bonus plafonne à -50%. Si votre programme réussit 12 fois ou plus, vous obtenez le bonus maximum.
- -10%, si vos sorties (y compris le premier code source) incluent les trois alternatives de ponctuation valides.
Votre soumission doit inclure le premier code source et doit également contenir les résultats des exécutions réussies. Si votre programme réussit plus de 12 fois, ajoutez une sortie pour 12 exécutions.
Exemple
La ligne suivante est le premier code source. Lorsque nous l'exécutons, c'est la première exécution.
hello world(some source code here)
La ligne suivante est la sortie du premier code source. C'est la première sortie.
hello, world(some source code here)
La ligne suivante est la sortie de la deuxième exécution. C'est la deuxième sortie.
helloworld(some source code here)
Lorsque nous avons exécuté la première sortie, ce programme est devenu éligible au bonus de -10%. Cela signifie que nous avons deux sorties et un code original, qui ont tous une ponctuation différente. De plus, la deuxième sortie étant valide, ce programme est éligible à ce concours.
La ligne suivante est la sortie de la troisième exécution. C'est la troisième sortie.
Helloworld(some source code here)
La ligne suivante est la sortie de la quatrième exécution. Il s'agit de la quatrième sortie.
hellworld(some source code here)
Cette sortie n'était pas valide. L'indice de la dernière exécution valide était de 4. Ce programme est éligible pour -5% * (4 - 2) bonus et -10% bonus à partir de la ponctuation. Cela fait un total de -20%. La longueur du premier code source ("bonjour le monde (du code source ici)") était de 34 octets, donc le score final est de 27,2.
hello world
?