Crane-Flak , Score 3 (252 octets)
%&'()%&%X'Z&xx\()'()z%xz|%&'()%&'()%&'()9;=&'()9;=%XZ\&'z|%&'(9;=(9;=%&'XZ\(|xz|9;=%&'%&(%X'Z&\('()xxz%xz|9;=&'()9;=%XZ\&'z|9;=(9;=%&'XZ\(|9;=)))))))%&Y[]'()yy{}%&y{}%&'()%&'():<>'():<>%&Y[]'(){}y{}:<>%&Y[]'()yy{}::<><>:<>%&y{}:<>'():<>%&Y[]'(){}::<><>
Essayez-le en ligne!
(Cela ne fonctionne pas vraiment dans Brain-Hack parce que seulement les mods Crane-Flak par 256)
Décalé de 1
&'()*&'&Y(['yy])*()*{&y{}&'()*&'()*&'()*:<>'()*:<>&Y[]'({}&'():<>):<>&'(Y[])}y{}:<>&'(&')&Y(['])()*yy{&y{}:<>'()*:<>&Y[]'({}:<>):<>&'(Y[])}:<>*******&'Z\^()*zz|~&'z|~&'()*&'()*;=?()*;=?&'Z\^()*|~z|~;=?&'Z\^()*zz|~;;=?=?;=?&'z|~;=?()*;=?&'Z\^()*|~;;=?=?
Essayez-le en ligne!
Décalé de 2
'()*+'('Z)\(zz^*+)*+|'z|~'()*+'()*+'()*+;=?()*+;=?'Z\^()|~'()*;=?*;=?'()Z\^*~z|~;=?'()'(*'Z)\(^*)*+zz|'z|~;=?()*+;=?'Z\^()|~;=?*;=?'()Z\^*~;=?+++++++'([]_)*+{{}'({}'()*+'()*+<>@)*+<>@'([]_)*+}{}<>@'([]_)*+{{}<<>@>@<>@'({}<>@)*+<>@'([]_)*+}<<>@>@
Essayez-le en ligne!
Décalé de 3
()*+,()([*]){{_+,*+,}({}()*+,()*+,()*+,<>@)*+,<>@([]_)*}()*+<>@+<>@()*[]_+{}<>@()*()+([*])_+*+,{{}({}<>@)*+,<>@([]_)*}<>@+<>@()*[]_+<>@,,,,,,,()\^`*+,||~€()|~€()*+,()*+,=?A*+,=?A()\^`*+,~€|~€=?A()\^`*+,||~€==?A?A=?A()|~€=?A*+,=?A()\^`*+,~€==?A?A
Essayez-le en ligne!
Explication
Le code principal au travail ici est
([]){{}({}n<>)<>([])}{}<>([]){{}({}<>)<>([])}<>
où n
est un nombre arbitraire. Cela déplace tous les éléments hors pile en ajoutant n
à chaque élément (le modulo 256 est implicite à la sortie), puis les déplace tous vers l'arrière.
Cependant, pour le premier programme (c'est-à-dire décalé de 0), nous n'avons pas besoin de faire cela, car le décalage est le programme cat. Nous commençons donc avec ce code:
([]){{}({}()<>)<>([])}{}<>([]){{}({}<>)<>([])}<>
et décaler par 1
'Z\(zz|'z|m;=(;='Z\(|z|;='Z\(zz|'z|;=(;='Z\(|;=
Ceci est déséquilibré, nous devons donc le réparer. Il y a un certain nombre de façons de le faire par ma méthode de choix (pour des raisons qui deviendront évidentes):
'Z\(zz|'z|m;=(;='Z\(|z|;='Z\(zz|'z|;=(;='Z\(|;=)))))){}{}{}{}{}
En changeant cela de 2, nous obtenons
)\^*||~)|~o=?*=?)\^*~|~=?)\^*||~)|~=?*=?)\^*~=?++++++}}}}}
Comme il ()
est plus facile de traiter que d’ {}
utiliser le }
s pour mener à bien le programme souhaité. Cela signifie que le )
peut être équilibré avec des moyens assez évidents. Avec quelques manipulations, nous pouvons transformer cela en:
()\^*||~()|~()*=?*=?()\^*~|~=?()\^*||~()|~=?*=?()\^*~=?+++++++([]_)*+{{}({}()*+()*+<>@)*+<>@([]_)*+}{}<>@([]_)*+{{}<<>@>@<>@({}<>@)*+<>@([]_)*+}<<>@>@
En reculant, nous obtenons
&'Z\(zz|&'z|&'(;=(;=&'Z\(|z|;=&'Z\(zz|&'z|;=(;=&'Z\(|;=)))))))&Y[]'()yy{}&y{}&'()&'():<>'():<>&Y[]'(){}y{}:<>&Y[]'()yy{}::<><>:<>&y{}:<>'():<>&Y[]'(){}::<><>
Le passage à 3 est si complexe que je ne le comprends plus vraiment. J'ai utilisé la même technique et je l'ai manipulée jusqu'à ce que je puisse enfin les faire fonctionner tous les 4 en même temps. La technique est à peu près la même, il y a juste beaucoup plus de violon.