Кран-Флак , оцінка 3 (252 байти)
%&'()%&%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[]'(){}::<><>
Спробуйте в Інтернеті!
(Не дуже працює в Brain-Hack, тому що лише модники Crane-Flak на 256)
Зсунуто на 1
&'()*&'&Y(['yy])*()*{&y{}&'()*&'()*&'()*:<>'()*:<>&Y[]'({}&'():<>):<>&'(Y[])}y{}:<>&'(&')&Y(['])()*yy{&y{}:<>'()*:<>&Y[]'({}:<>):<>&'(Y[])}:<>*******&'Z\^()*zz|~&'z|~&'()*&'()*;=?()*;=?&'Z\^()*|~z|~;=?&'Z\^()*zz|~;;=?=?;=?&'z|~;=?()*;=?&'Z\^()*|~;;=?=?
Спробуйте в Інтернеті!
Зсунуто на 2
'()*+'('Z)\(zz^*+)*+|'z|~'()*+'()*+'()*+;=?()*+;=?'Z\^()|~'()*;=?*;=?'()Z\^*~z|~;=?'()'(*'Z)\(^*)*+zz|'z|~;=?()*+;=?'Z\^()|~;=?*;=?'()Z\^*~;=?+++++++'([]_)*+{{}'({}'()*+'()*+<>@)*+<>@'([]_)*+}{}<>@'([]_)*+{{}<<>@>@<>@'({}<>@)*+<>@'([]_)*+}<<>@>@
Спробуйте в Інтернеті!
Зсунуто на 3
()*+,()([*]){{_+,*+,}({}()*+,()*+,()*+,<>@)*+,<>@([]_)*}()*+<>@+<>@()*[]_+{}<>@()*()+([*])_+*+,{{}({}<>@)*+,<>@([]_)*}<>@+<>@()*[]_+<>@,,,,,,,()\^`*+,||~€()|~€()*+,()*+,=?A*+,=?A()\^`*+,~€|~€=?A()\^`*+,||~€==?A?A=?A()|~€=?A*+,=?A()\^`*+,~€==?A?A
Спробуйте в Інтернеті!
Пояснення
Основний код на роботі тут
([]){{}({}n<>)<>([])}{}<>([]){{}({}<>)<>([])}<>
де n
довільне число. Це переміщує все до офсетного додання, додаючи n
до кожного елемента (модуль 256 невідомий при виході), а потім переміщує їх назад.
Однак для першої програми (тобто зміщеної на 0) нам нічого не потрібно робити, тому що переміщення на нуль - це програма для котів. Отже, ми почнемо з цього коду:
([]){{}({}()<>)<>([])}{}<>([]){{}({}<>)<>([])}<>
і змістіть його на 1
'Z\(zz|'z|m;=(;='Z\(|z|;='Z\(zz|'z|;=(;='Z\(|;=
Це неврівноважено, тому ми мусимо це виправити. Існує декілька способів, як ми могли зробити це методом мого вибору (з причин, які стануть очевидними) наступним:
'Z\(zz|'z|m;=(;='Z\(|z|;='Z\(zz|'z|;=(;='Z\(|;=)))))){}{}{}{}{}
Зсуваючи це на 2, ми отримуємо
)\^*||~)|~o=?*=?)\^*~|~=?)\^*||~)|~=?*=?)\^*~=?++++++}}}}}
Оскільки ()
з {}
нами легше мати справу, ніж ми будемо використовувати }
S, щоб виконати бажану програму. Це означає, що )
можна збалансувати досить очевидними засобами. Ми можемо перетворити це на:
()\^*||~()|~()*=?*=?()\^*~|~=?()\^*||~()|~=?*=?()\^*~=?+++++++([]_)*+{{}({}()*+()*+<>@)*+<>@([]_)*+}{}<>@([]_)*+{{}<<>@>@<>@({}<>@)*+<>@([]_)*+}<<>@>@
Зсуваючи цю спинку вниз ми отримуємо
&'Z\(zz|&'z|&'(;=(;=&'Z\(|z|;=&'Z\(zz|&'z|;=(;=&'Z\(|;=)))))))&Y[]'()yy{}&y{}&'()&'():<>'():<>&Y[]'(){}y{}:<>&Y[]'()yy{}::<><>:<>&y{}:<>'():<>&Y[]'(){}::<><>
Крок до 3 настільки складний, що я його вже не дуже розумію. Я використовував ту саму техніку і просто поспілкувався з нею, поки нарешті не змусив усіх 4-х працювати відразу. Техніка майже однакова, просто набагато більше хитрощів.