Crane-Flak , wynik 3 (252 bajtów)
%&'()%&%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[]'(){}::<><>
Wypróbuj online!
(Nie całkiem działa w Brain-Hack, ponieważ tylko mod Crane-Flak o 256)
Przesunięty o 1
&'()*&'&Y(['yy])*()*{&y{}&'()*&'()*&'()*:<>'()*:<>&Y[]'({}&'():<>):<>&'(Y[])}y{}:<>&'(&')&Y(['])()*yy{&y{}:<>'()*:<>&Y[]'({}:<>):<>&'(Y[])}:<>*******&'Z\^()*zz|~&'z|~&'()*&'()*;=?()*;=?&'Z\^()*|~z|~;=?&'Z\^()*zz|~;;=?=?;=?&'z|~;=?()*;=?&'Z\^()*|~;;=?=?
Wypróbuj online!
Przesunięty o 2
'()*+'('Z)\(zz^*+)*+|'z|~'()*+'()*+'()*+;=?()*+;=?'Z\^()|~'()*;=?*;=?'()Z\^*~z|~;=?'()'(*'Z)\(^*)*+zz|'z|~;=?()*+;=?'Z\^()|~;=?*;=?'()Z\^*~;=?+++++++'([]_)*+{{}'({}'()*+'()*+<>@)*+<>@'([]_)*+}{}<>@'([]_)*+{{}<<>@>@<>@'({}<>@)*+<>@'([]_)*+}<<>@>@
Wypróbuj online!
Przesunięty o 3
()*+,()([*]){{_+,*+,}({}()*+,()*+,()*+,<>@)*+,<>@([]_)*}()*+<>@+<>@()*[]_+{}<>@()*()+([*])_+*+,{{}({}<>@)*+,<>@([]_)*}<>@+<>@()*[]_+<>@,,,,,,,()\^`*+,||~€()|~€()*+,()*+,=?A*+,=?A()\^`*+,~€|~€=?A()\^`*+,||~€==?A?A=?A()|~€=?A*+,=?A()\^`*+,~€==?A?A
Wypróbuj online!
Wyjaśnienie
Główny kod działający tutaj to
([]){{}({}n<>)<>([])}{}<>([]){{}({}<>)<>([])}<>
gdzie n
jest dowolną liczbą. To przenosi wszystko do offstacka dodając n
do każdego elementu (modulo 256 jest niejawne przy wyjściu), a następnie przenosi je wszystkie z powrotem.
Jednak w przypadku pierwszego programu (tzn. Przesuniętego o 0) nie musimy tego robić, ponieważ przesunięcie o zero jest programem cat. Zacznijmy od tego kodu:
([]){{}({}()<>)<>([])}{}<>([]){{}({}<>)<>([])}<>
i zmniejsz go o 1
'Z\(zz|'z|m;=(;='Z\(|z|;='Z\(zz|'z|;=(;='Z\(|;=
Jest to niezrównoważone, więc musimy to naprawić. Istnieje kilka sposobów, w jaki możemy to zrobić za pomocą mojej metody wyboru (z powodów, które staną się oczywiste):
'Z\(zz|'z|m;=(;='Z\(|z|;='Z\(zz|'z|;=(;='Z\(|;=)))))){}{}{}{}{}
Zwiększając to o 2, otrzymujemy
)\^*||~)|~o=?*=?)\^*~|~=?)\^*||~)|~=?*=?)\^*~=?++++++}}}}}
Ponieważ ()
łatwiej jest sobie z tym poradzić {}
, będziemy używać }
s do ukończenia pożądanego programu. Oznacza to, że )
można to zrównoważyć całkiem oczywistymi środkami. Przy odrobinie zabawy możemy zmienić to w:
()\^*||~()|~()*=?*=?()\^*~|~=?()\^*||~()|~=?*=?()\^*~=?+++++++([]_)*+{{}({}()*+()*+<>@)*+<>@([]_)*+}{}<>@([]_)*+{{}<<>@>@<>@({}<>@)*+<>@([]_)*+}<<>@>@
Przenosimy to z powrotem w dół
&'Z\(zz|&'z|&'(;=(;=&'Z\(|z|;=&'Z\(zz|&'z|;=(;=&'Z\(|;=)))))))&Y[]'()yy{}&y{}&'()&'():<>'():<>&Y[]'(){}y{}:<>&Y[]'()yy{}::<><>:<>&y{}:<>'():<>&Y[]'(){}::<><>
Krok do 3 jest tak złożony, że tak naprawdę już go nie rozumiem. Użyłem tej samej techniki i po prostu bawiłem się nią, aż w końcu wszystkie 4 z nich pracowały jednocześnie. Technika jest prawie taka sama, jest tylko o wiele więcej majstrowania.