Crane-Flak , Pontuação 3 (252 bytes)
%&'()%&%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[]'(){}::<><>
Experimente online!
(Não funciona muito bem no Brain-Hack porque apenas os mods Crane-Flak são 256)
Deslocado por 1
&'()*&'&Y(['yy])*()*{&y{}&'()*&'()*&'()*:<>'()*:<>&Y[]'({}&'():<>):<>&'(Y[])}y{}:<>&'(&')&Y(['])()*yy{&y{}:<>'()*:<>&Y[]'({}:<>):<>&'(Y[])}:<>*******&'Z\^()*zz|~&'z|~&'()*&'()*;=?()*;=?&'Z\^()*|~z|~;=?&'Z\^()*zz|~;;=?=?;=?&'z|~;=?()*;=?&'Z\^()*|~;;=?=?
Experimente online!
Deslocado por 2
'()*+'('Z)\(zz^*+)*+|'z|~'()*+'()*+'()*+;=?()*+;=?'Z\^()|~'()*;=?*;=?'()Z\^*~z|~;=?'()'(*'Z)\(^*)*+zz|'z|~;=?()*+;=?'Z\^()|~;=?*;=?'()Z\^*~;=?+++++++'([]_)*+{{}'({}'()*+'()*+<>@)*+<>@'([]_)*+}{}<>@'([]_)*+{{}<<>@>@<>@'({}<>@)*+<>@'([]_)*+}<<>@>@
Experimente online!
Deslocado por 3
()*+,()([*]){{_+,*+,}({}()*+,()*+,()*+,<>@)*+,<>@([]_)*}()*+<>@+<>@()*[]_+{}<>@()*()+([*])_+*+,{{}({}<>@)*+,<>@([]_)*}<>@+<>@()*[]_+<>@,,,,,,,()\^`*+,||~€()|~€()*+,()*+,=?A*+,=?A()\^`*+,~€|~€=?A()\^`*+,||~€==?A?A=?A()|~€=?A*+,=?A()\^`*+,~€==?A?A
Experimente online!
Explicação
O código principal em ação aqui é
([]){{}({}n<>)<>([])}{}<>([]){{}({}<>)<>([])}<>
onde n
é um número arbitrário. Isso move tudo para o offstack, acrescentando n
a cada item (o módulo 256 está implícito na saída) e depois move todos eles de volta.
No entanto, para o primeiro programa (ou seja, deslocado por 0), não precisamos fazer nada disso, porque mudar para zero é o programa gato. Então começamos com este código:
([]){{}({}()<>)<>([])}{}<>([]){{}({}<>)<>([])}<>
e desloque-o para baixo em 1
'Z\(zz|'z|m;=(;='Z\(|z|;='Z\(zz|'z|;=(;='Z\(|;=
Isso está desequilibrado, então temos que corrigi-lo. Existem várias maneiras pelas quais podemos fazer isso usando meu método de escolha (por razões que se tornarão aparentes) é o seguinte:
'Z\(zz|'z|m;=(;='Z\(|z|;='Z\(zz|'z|;=(;='Z\(|;=)))))){}{}{}{}{}
Mudando isso em 2, obtemos
)\^*||~)|~o=?*=?)\^*~|~=?)\^*||~)|~=?*=?)\^*~=?++++++}}}}}
Como ()
é mais fácil lidar do {}
que usaremos os }
s para concluir o programa que desejamos. Isso significa que o )
pode ser equilibrado com meios bastante óbvios. Com algumas brincadeiras, podemos transformar isso em:
()\^*||~()|~()*=?*=?()\^*~|~=?()\^*||~()|~=?*=?()\^*~=?+++++++([]_)*+{{}({}()*+()*+<>@)*+<>@([]_)*+}{}<>@([]_)*+{{}<<>@>@<>@({}<>@)*+<>@([]_)*+}<<>@>@
Mudando isso de volta, temos
&'Z\(zz|&'z|&'(;=(;=&'Z\(|z|;=&'Z\(zz|&'z|;=(;=&'Z\(|;=)))))))&Y[]'()yy{}&y{}&'()&'():<>'():<>&Y[]'(){}y{}:<>&Y[]'()yy{}::<><>:<>&y{}:<>'():<>&Y[]'(){}::<><>
O passo 3 é tão complexo que eu realmente não o entendo mais. Usei a mesma técnica e brinquei com ela até que finalmente consegui todas as quatro para trabalhar de uma só vez. A técnica é praticamente a mesma, há muito mais mexida.