Votre tâche consiste à créer un programme où, si un caractère est supprimé, il détectera le caractère supprimé, puis réinsérera le caractère supprimé dans son propre fichier source.
Par exemple, si votre programme l'est RadiationHardened
et qu'il est modifié en RadiaionHardened
, alors votre programme doit sortir que le 5ème octet (indexé 0) a été modifié et alors la source du programme doit être RadiationHardened
immédiatement après l'exécution.
Notes et règles
- Vous pouvez supposer qu'exactement un caractère a été supprimé dans le code source avant l'exécution. Le comportement du programme non modifié n'est pas défini.
- Vous pouvez supposer que l'octet modifié sera supprimé, non transposé, inséré ou remplacé.
- Dans le cas d'une exécution de plusieurs du même caractère, vous pouvez signaler le premier ou le dernier index de l'exécution, mais être cohérent sur ce que vous utilisez. Par exemple,
baaad
être supprimé debaad
peut signaler 1 ou 3 (indexé zéro), mais doit être le même tout au long du programme. - Vous n'avez pas besoin d'écrire la source entière dans son propre fichier. Il vous suffit de réinsérer l'octet supprimé.
- Contrairement aux règles typiques pour les quines durcies aux radiations, détecter l'octet modifié à partir de la lecture du code source du programme est un jeu équitable.
- Vous pouvez sortir l'index d'octets modifié à travers n'importe quel format raisonnable. Soyez cohérent quant à savoir s'il est indexé 0 ou indexé 1 ou toute autre notation. Vous pouvez même sortir un nombre dans une chaîne de modèle.
C'est le code-golf, donc le programme le plus court l'emporte.
Bonne chance!
EDIT1: modification de l'exigence de remplacement à suppression
EDIT2: règle ajoutée pour les exécutions de doublons
*
commande tue toutes les IP. Le cardinal ne peut pas le faire non plus, à cause de@
.code-challenge
où chaque programme est autorisé à déclarer une liste d'octets qui sont protégés contre les radiations (mais pas plus - disons - 50% de la taille totale). Un système de notation simple pourrait être de compter chaque octet protégé contre les radiations comme 10 octets, ou quelque chose comme ça.Réponses:
Befunge-98 (FBBI) ,
344 296248 octetsEssayez-le en ligne!
Vérification!
Befunge-98 est le premier langage ésotérique que j'ai pu trouver qui était à la fois 2D et avait une sortie de fichier. Il s'agit d'une solution complète (avec une nouvelle ligne de fin) stockée dans un fichier nommé en tant que caractère de tabulation. Il sort en tant qu'index 0 et sort le premier index d'une série de caractères (bien qu'il n'y ait que des paires).
Il y a quelques golfs à faire, d'
autant plus qu'il y a 15 no-ops dans le code, maintenant juste un no-op! Je vais travailler sur ce raccourcissement, dans le but d'atteindre ou en dessous de 200 octets.la source
Unefunge-98 (PyFunge) , 118 octets
Essayez-le en ligne!
Vérification!
En jouant à ma réponse Befunge-98, j'ai réalisé que je pouvais économiser quelques octets en la portant sur Unefunge, car je n'aurais qu'à me soucier d'une dimension plutôt que des deux. Cela a également ouvert de nombreux raccourcis et golfs possibles, ce qui a rendu la nouvelle solution beaucoup plus petite.
Explication (dédoublonnée):
la source