Crane-Flak , счет 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, потому что только 256 модов 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) нам не нужно ничего делать, потому что смещение на ноль - это программа cat. Итак, начнем с этого кода:
([]){{}({}()<>)<>([])}{}<>([]){{}({}<>)<>([])}<>
и сдвинуть его вниз на 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 работать одновременно. Техника почти такая же, просто намного больше возни.