Crane-Flak , Punteggio 3 (252 byte)
%&'()%&%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[]'(){}::<><>
Provalo online!
(Non funziona abbastanza in Brain-Hack perché solo le mod di Crane-Flak da 256)
Spostato di 1
&'()*&'&Y(['yy])*()*{&y{}&'()*&'()*&'()*:<>'()*:<>&Y[]'({}&'():<>):<>&'(Y[])}y{}:<>&'(&')&Y(['])()*yy{&y{}:<>'()*:<>&Y[]'({}:<>):<>&'(Y[])}:<>*******&'Z\^()*zz|~&'z|~&'()*&'()*;=?()*;=?&'Z\^()*|~z|~;=?&'Z\^()*zz|~;;=?=?;=?&'z|~;=?()*;=?&'Z\^()*|~;;=?=?
Provalo online!
Spostato da 2
'()*+'('Z)\(zz^*+)*+|'z|~'()*+'()*+'()*+;=?()*+;=?'Z\^()|~'()*;=?*;=?'()Z\^*~z|~;=?'()'(*'Z)\(^*)*+zz|'z|~;=?()*+;=?'Z\^()|~;=?*;=?'()Z\^*~;=?+++++++'([]_)*+{{}'({}'()*+'()*+<>@)*+<>@'([]_)*+}{}<>@'([]_)*+{{}<<>@>@<>@'({}<>@)*+<>@'([]_)*+}<<>@>@
Provalo online!
Spostato di 3
()*+,()([*]){{_+,*+,}({}()*+,()*+,()*+,<>@)*+,<>@([]_)*}()*+<>@+<>@()*[]_+{}<>@()*()+([*])_+*+,{{}({}<>@)*+,<>@([]_)*}<>@+<>@()*[]_+<>@,,,,,,,()\^`*+,||~€()|~€()*+,()*+,=?A*+,=?A()\^`*+,~€|~€=?A()\^`*+,||~€==?A?A=?A()|~€=?A*+,=?A()\^`*+,~€==?A?A
Provalo online!
Spiegazione
Il codice principale al lavoro qui è
([]){{}({}n<>)<>([])}{}<>([]){{}({}<>)<>([])}<>
dove n
è un numero arbitrario. Questo sposta tutto nello offstack aggiungendolo n
a ciascun elemento (il modulo 256 è implicito nell'output), e quindi li sposta tutti indietro.
Tuttavia, per il primo programma (ovvero spostato di 0) non è necessario eseguire alcuna operazione perché lo spostamento di zero è il programma cat. Quindi iniziamo con questo codice:
([]){{}({}()<>)<>([])}{}<>([]){{}({}<>)<>([])}<>
e spostalo verso il basso di 1
'Z\(zz|'z|m;=(;='Z\(|z|;='Z\(zz|'z|;=(;='Z\(|;=
Questo è sbilanciato, quindi dobbiamo risolverlo. Esistono diversi modi in cui possiamo farlo con il mio metodo di scelta (per motivi che risulteranno evidenti) è il seguente:
'Z\(zz|'z|m;=(;='Z\(|z|;='Z\(zz|'z|;=(;='Z\(|;=)))))){}{}{}{}{}
Spostando questo in su di 2 otteniamo
)\^*||~)|~o=?*=?)\^*~|~=?)\^*||~)|~=?*=?)\^*~=?++++++}}}}}
Poiché ()
è più facile da gestire di quanto {}
useremo le }
s per completare il programma che desideriamo. Ciò significa che )
può essere bilanciato con mezzi abbastanza ovvi. Con un po 'di confusione possiamo trasformarlo in:
()\^*||~()|~()*=?*=?()\^*~|~=?()\^*||~()|~=?*=?()\^*~=?+++++++([]_)*+{{}({}()*+()*+<>@)*+<>@([]_)*+}{}<>@([]_)*+{{}<<>@>@<>@({}<>@)*+<>@([]_)*+}<<>@>@
Spostando indietro, otteniamo
&'Z\(zz|&'z|&'(;=(;=&'Z\(|z|;=&'Z\(zz|&'z|;=(;=&'Z\(|;=)))))))&Y[]'()yy{}&y{}&'()&'():<>'():<>&Y[]'(){}y{}:<>&Y[]'()yy{}::<><>:<>&y{}:<>'():<>&Y[]'(){}::<><>
Il passaggio al 3 è così complesso che non lo capisco più. Ho usato la stessa tecnica e mi sono solo dato da fare fino a quando non ho finalmente fatto funzionare tutti e 4 contemporaneamente. La tecnica è più o meno la stessa, c'è solo molto più armeggiare.