%&'()%&%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[]'(){}::<><>
Cobalah online!
(Tidak cukup bekerja di Brain-Hack karena hanya mod Crane-Flak sebesar 256)
Digeser oleh 1
&'()*&'&Y(['yy])*()*{&y{}&'()*&'()*&'()*:<>'()*:<>&Y[]'({}&'():<>):<>&'(Y[])}y{}:<>&'(&')&Y(['])()*yy{&y{}:<>'()*:<>&Y[]'({}:<>):<>&'(Y[])}:<>*******&'Z\^()*zz|~&'z|~&'()*&'()*;=?()*;=?&'Z\^()*|~z|~;=?&'Z\^()*zz|~;;=?=?;=?&'z|~;=?()*;=?&'Z\^()*|~;;=?=?
Cobalah online!
Digeser oleh 2
'()*+'('Z)\(zz^*+)*+|'z|~'()*+'()*+'()*+;=?()*+;=?'Z\^()|~'()*;=?*;=?'()Z\^*~z|~;=?'()'(*'Z)\(^*)*+zz|'z|~;=?()*+;=?'Z\^()|~;=?*;=?'()Z\^*~;=?+++++++'([]_)*+{{}'({}'()*+'()*+<>@)*+<>@'([]_)*+}{}<>@'([]_)*+{{}<<>@>@<>@'({}<>@)*+<>@'([]_)*+}<<>@>@
Cobalah online!
Digeser 3
()*+,()([*]){{_+,*+,}({}()*+,()*+,()*+,<>@)*+,<>@([]_)*}()*+<>@+<>@()*[]_+{}<>@()*()+([*])_+*+,{{}({}<>@)*+,<>@([]_)*}<>@+<>@()*[]_+<>@,,,,,,,()\^`*+,||~€()|~€()*+,()*+,=?A*+,=?A()\^`*+,~€|~€=?A()\^`*+,||~€==?A?A=?A()|~€=?A*+,=?A()\^`*+,~€==?A?A
Cobalah online!
Penjelasan
Kode utama yang bekerja di sini adalah
([]){{}({}n<>)<>([])}{}<>([]){{}({}<>)<>([])}<>
di mana n
nomor sewenang-wenang. Ini memindahkan semuanya ke offstack, menambah n
setiap item (modulo 256 tersirat pada output), dan kemudian memindahkan semuanya kembali.
Namun untuk program pertama (yaitu bergeser 0) kita tidak perlu melakukan ini karena menggeser nol adalah program kucing. Jadi kita mulai dengan kode ini:
([]){{}({}()<>)<>([])}{}<>([]){{}({}<>)<>([])}<>
dan geser ke bawah sebanyak 1
'Z\(zz|'z|m;=(;='Z\(|z|;='Z\(zz|'z|;=(;='Z\(|;=
Ini tidak seimbang sehingga kami harus memperbaikinya. Ada beberapa cara kita bisa melakukan ini dengan metode pilihan saya (untuk alasan yang akan menjadi jelas) adalah sebagai berikut:
'Z\(zz|'z|m;=(;='Z\(|z|;='Z\(zz|'z|;=(;='Z\(|;=)))))){}{}{}{}{}
Menggeser ini sebanyak 2 kita dapatkan
)\^*||~)|~o=?*=?)\^*~|~=?)\^*||~)|~=?*=?)\^*~=?++++++}}}}}
Karena ()
lebih mudah untuk ditangani daripada {}
kita akan menggunakan }
s untuk menyelesaikan program yang kita inginkan. Itu berarti bahwa )
bisa diseimbangkan dengan cara yang cukup jelas. Dengan sedikit mengutak-atik kita dapat mengubahnya menjadi:
()\^*||~()|~()*=?*=?()\^*~|~=?()\^*||~()|~=?*=?()\^*~=?+++++++([]_)*+{{}({}()*+()*+<>@)*+<>@([]_)*+}{}<>@([]_)*+{{}<<>@>@<>@({}<>@)*+<>@([]_)*+}<<>@>@
Menggesernya kembali, kita dapatkan
&'Z\(zz|&'z|&'(;=(;=&'Z\(|z|;=&'Z\(zz|&'z|;=(;=&'Z\(|;=)))))))&Y[]'()yy{}&y{}&'()&'():<>'():<>&Y[]'(){}y{}:<>&Y[]'()yy{}::<><>:<>&y{}:<>'():<>&Y[]'(){}::<><>
Langkah hingga 3 begitu rumit sehingga saya tidak benar-benar memahaminya lagi. Saya menggunakan teknik yang sama dan hanya mengotak-atiknya sampai akhirnya saya berhasil 4 semuanya sekaligus. Tekniknya hampir sama, hanya ada lebih banyak mengutak-atik.