Joe est votre développeur BF moyen. Il est sur le point de vérifier ses modifications de code dans leur référentiel lorsqu'il reçoit un appel de son patron. "Joe! La machine du nouveau client est cassée! L'interpréteur brainfuck définit toutes les cellules sur des valeurs aléatoires avant l'exécution du programme. Pas le temps de le réparer, votre code devra y faire face." Joe n'y pense pas beaucoup et est sur le point d'écrire un programme pour remettre à zéro le premier million de cellules, quand son patron l'interrompt à nouveau - "... et ne pense pas à utiliser la force brute, le code doit être aussi petit que possible. " Maintenant, vous devez aider le pauvre Joe!
Caractéristiques
- Vous obtiendrez un code de brainfuck valide en entrée
- Votre programme va alors modifier le code pour qu'il fonctionne sur un interpréteur randomfuck randomisé
- Cela signifie qu'avant l'exécution du programme, les cellules peuvent être définies sur n'importe quelle valeur.
- Le nouveau programme doit avoir exactement le même comportement quelles que soient les conditions initiales.
- L'interpréteur aura une valeur de cellule maximale de 255 avec habillage et une bande de longueur infinie.
Notation
Votre score est 10 fois la taille du compilateur en octets plus la somme des tailles de cas de test . Le score le plus bas l'emporte évidemment.Pour atténuer l'optimisation des cas de test, je me réserve le droit de changer les cas de test si je soupçonne quelque chose, et je le ferai probablement avant de choisir un gagnant.
Cas de test
(Je les ai obtenues sur la page esolangs et sur cette page Web: http://www.hevanet.com/cristofd/brainfuck/ ). Merci également à @Sparr pour le dernier cas de test.
- Bonjour le monde:
++++++++[>++++[>++>+++>+++>+<<<<-]>+>+>->>+[<]<-]>>.>---.+++++++..+++.>>.<-.<.+++.------.--------.>>+.>++.
- Entrée inversée:
>,[>,]<[.<]
- Pouvoirs de deux (flux infini):
>++++++++++>>+<+[[+++++[>++++++++<-]>.<++++++[>--------<-]+<<]>.>[->[ <++>-[<++>-[<++>-[<++>-[<-------->>[-]++<-[<++>-]]]]]]<[>+<-]+>>]<<]
- Carrés de moins de 10000:
++++[>+++++<-]>[<+++++>-]+<+[>[>+>+<<-]++>>[<<+>>-]>>>[-]++>[-]+>>>+[[-]++++++>>>]<<<[[<++++++++<++>>-]+<.<[>----<-]<]<<[>>>>>[>>>[-]+++++++++<[>-<-]+++++++++>[-[<->-]+[<<<]]<[>+<-]>]<<-]<<-]
- Flux de Fibonacci:
>++++++++++>+>+[[+++++[>++++++++<-]>.<++++++[>--------<-]+<<<]>.>>[[-]<[>+<-]>>[<<+>+>-]<[>+<-[>+<-[>+<-[>+<-[>+<-[>+<-[>+<-[>+<-[>+<-[>[-]>+>+<<<-[>+<-]]]]]]]]]]]+>>>]<<<]
- Séquence ASCII jusqu'à l'entrée:
,[.[>+<-]>-]
(celle-ci nécessite un nombre de cellules variable en fonction de l'entrée)