변화 지향적 인 프로그래밍


41

문자열은 문자열 에서 각 문자 의 바이트 값 을 가져 와서 계산 하고 결과를 문자로 다시 변환하여 숫자 만큼 이동할 수 있습니다 .nc(c + n) mod 256

예를 들어, "ABC123"1만큼 이동 하면 "BCD234", 10 "KLM;<="만큼 이동하고 255 인치 이동합니다 "@AB012".

작업

당신이 감히 많은 숫자 n를 선택하고 0 < n < 256입력으로 문자열을 취하는 프로그램이나 함수를 작성하십시오.

  • 소스 코드가 변경되지 않은 경우 변경되지 않은 문자열을 반환하지만
  • n소스 코드가에 의해 시프트 될 때 쉬프트 된 문자열을 리턴합니다 n.

규칙

  • 제출 한 점수는 지원되는 n점수이며 점수가 높을수록 좋습니다. 최대 점수는 255입니다.
  • 제출물은 최소한 한 번의 교대조를 지원해야하므로 최소 점수는 1입니다.
  • 동점 일 경우 더 짧은 프로그램이 승리합니다.
  • 이동 된 모든 프로그램은 동일한 언어로되어 있어야합니다.



ANSI 이스케이프 시퀀스를 통해 지워지거나 또는를 통해 숨겨지는 원하는 출력보다 먼저 출력하는 것이 허용 \r됩니까?
Dom Hastings

4
@DomHastings 0x0D와 0x1B는 잠재적으로 실제 문자열 출력의 일부이므로 그렇게 생각하지 않습니다.
Martin Ender

답변:


24

Brainfuck, 점수 : 31 (2208 바이트)

Base64 인코딩 프로그램 :

LFsuLF0oVycnJycqKFkkUyMjIyMjIyMjJiRVIE8fHx8fHx8fHx8fHx8iIFEMOwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLDgw9CDcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcKCDkEMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMGBDUAL8O / W7 / Dv8O / W7 / Dv8O / W7 / Dv8O / W7 / Dv8O / W7 / Dv8O / W7 / Dv8O / W7 / Dv8O / W7 / Dv8O / W7 / Dv8O / W7 / Dv8O / W7 / Dv8O / W7 / Dv8O / W7 / Dv8O / W7 / Dv8O / w78CADHDrBvDq8Orw6vDq8Orw6vDq8Orw6vDq8Orw6vDq8Orw6vDq8Orw6vDq8Orw6vDq8Orw6vDq8Orw6vDq8Orw6vDq8Orw6vDq8Orw6vDq8Orw6vDq8Orw6vDq8Orw6vDq8Orw6vDq8Orw6vDq8Orw6vDq8Orw6vDq8Orw6vDq8Orw6vDq8Ouw6wdw6gXw6fDp8Onw6fDp8Onw6fDp8Onw6fDp8Onw6fDp8Onw6fDp8Onw6fDp8Onw6fDp8Onw6fDp8Onw6fDp8Onw6fDp8Onw6fDp8Onw6fDp8Onw6fDp8Onw6fDp8Onw6fDp8Onw6fDp8Onw6fDp8Onw6fDp8Onw6fDp8Onw6fDp8Onw6fDp8Onw6fDp8Oqw6gZw6QTw6PDo8Ojw6PDo8Ojw6PDo8Ojw6PDo8Ojw6PDo8Ojw6PDo8Ojw6PDo8Ojw6PDo8Ojw6PDo8Ojw6PDo8Ojw6PDo8Ojw6PDo8Ojw6PDo8Ojw6PDo8Ojw6PDo8Ojw6PDo8Ojw6PDo8Ojw6PDo8Ojw6PDo8Ojw6PDo8Ojw6PDo8Ojw6PDo8Ojw6PDo8Ojw6PDo8Ojw6bDpBXDoA / Dn8Ofw5 / Dn8Ofw5 / Dn8Ofw5 / Dn8Ofw5 / Dn8Ofw5 / Dn8Ofw5 / Dn8Ofw5 / Dn8Ofw5 / Dn8Ofw5 / Dn8Ofw5 / Dn8Ofw5 / Dn8Ofw5 / Dn8Ofw5 / Dn8Ofw5 / Dn8Ofw5 / Dn8Ofw5 / Dn8Ofw5 / Dn8Ofw5 / Dn8Ofw5 / Dn8Ofw5 / Dn8Ofw5 / Dn8Ofw5 / Dn8Ofw5 / Dn8Ofw5 / Dn8Ofw5 /w4PDg8ODw4PDg8ODw4PDg8ODw4PDg8ODw4PDg8ODw4PDg8ODw4PDg8ODw4PDg8ODw4PDg8ODw4PDg8ODw4PDg8ODw4PDg8ODw4PDg8ODw4PDg8ODw4PDg8ODw4PDg8ODw4PDg8ODw4PDg8ODw4PDg8ODw4PDg8ODw4PDg8ODw4PDg8ODw4PDg8ODw4PDg8ODw4PDg8ODw4PDg8ODw4PDg8ODw4PDg8ODw4PDg8ODw4PDg8ODw4PDg8ODw4bDhMO1w4DDr8K / WR / Cv8K / WR / Cv8K / WR / Cv8K / WR / Cv8K / WR / Cv8K / WR / Cv8K / WR / Cv8K / WR / Cv8K / WR / Cv8K / WR / Cv8K / WR / Cv8K / WR / Cv8K / wr / Cv8K / wr / Cv8K / wr / Cv8K / wr / Cv8K / wr / Cv8K / wr / Cv8K / wr / Cv8K / wr / Cv8K / wr / Cv8K / wr / Cv8K / wr / Cv8K / wr / Cv8K / wr / Cv8K / WR / Cv8K / WR / Cv8K / WR / Cv8K / WR / Cv8K / WR / Cv8K / WR / Cv8K / WR / Cv8K / WR / Cv8K / WR / Cv8K / WR / Cv8K / WR / Cv8OCw4DDscKsw5vCq8KrwqvCq8KrwqvCq8KrwqvCq8KrwqvCq8KrwqvCq8KrwqvCq8KrwqvCq8KrwqvCq8KrwqvCq8KrwqvCq8KrwqvCq8KrwqvCq8KrwqvCq8KrwqvCq8KrwqvCq8KrwqvCq8KrwqvCq8KrwqvCq8KrwqvCq8KrwqvCq8KrwqvCq8KrwqvCq8KrwqvCq8KrwqvCq8KrwqvCq8KrwqvCq8KrwqvCq8KrwqvCq8KrwqvCq8KrwqvCq8KrwqvCq8KrwqvCq8KrwqvCq8KrwqvCq8KrwqvCq8KrwqvCq8KrwqvC/ CocKhwqHCocKhwqHCocKhwqHCocKhwqHCocKhwqHCocKhwqHCocKhwqHCocKhwqHCocKhwqHCocKhwqHCocKhwqHCocKhwqHCocKhwqHCocKhwqHCocKhwqHCocKhwqHCocKhwqHCocKhwqHCocKhwqHCocKhwqHCocKhwqHCocKhwqHCocKhwqHCocKhwqHCocKhwqHCocKhwqHCocKhwqHCocKhwqHCocKhwqHCocKhwqHCocKhwqHCocKhwqHCocKhwqHCocKhwqHCocKhwqHCocKhwqHCocKhwqHCocKhwqHCocKhwqLCoMORwozCu8KNwo3CjcKNwo3CjcKNwo3CjcKNwo3CjcKNwo3CjcKNwo3CjcKNwo3CjcKNwo3CjcKNwo3CjcKNwo3CjcKNwo3CjcKNwo3CjcKNwo3CjcKNwo3CjcKNwo3CjcKNwo3CjcKNwo3CjcKNwo3CjcKNwo3CjcKNwo3CjcKNwo3CjcKNwo3CjcKNwo3CjcKNwo3CjcKNwo3CjcKNwo3CjcKNwo3CjcKNwo3CjcKNwo3CjcKNwo3CjcKNwo3CjcKNwo3CjcKOwozCvcKIwrfCicKJwonCicKJwonCicKJwonCicKJwonCicKJwonCicKJwonCicKJwonCicKJwonCicKJwonCicKJwonCicKJwonCicKJwonCicKJwonCicKJwonCicKJwonCicKJwonCicKJwonCicKJwonCicKJwonCicKJwonCicKJwonCicKJwonCicKJwonCicKJwonCicKJwonCicKJwonCicKJwonCicKJwonCicKJwonCicKJwonCicKJworCiMK5woTCs8KFwoXChcKFwoXChcKFwoXChcKFwoXChcKFwoXChcKFwoXChcKFwoXChcKFwoXChcKFwoXChcKFwoXChcKFwoXChcKFwoXChcKFwoXChcKFwoXChcKFwoXChcKFwoXChcKFwoXC==

교대 0, 4, 8, 12, 32, 36, 40, 44, 64, 68, 72, 76, 96, 100, 104, 108, 128, 132, 136, 140, 160, 164, 168, 172에서 작동 , 192, 196, 200, 204, 224, 228, 232 및 236.

0에서 255 사이의 모든 값에 대해 해당 문자를 유효한 brainfuck 명령으로 보내는 이동 중 정확히 하나가 있습니다.

이 프로그램은 오버플로를 줄 바꿈하여 8 비트 셀을 사용합니다. 쉬프트는 단지 반복적 +이거나 -더 짧은 것으로 구성되어 있기 때문에 아마도 약간의 골프가 될 수 있습니다 .

이것을 생성하는 데 사용되는 파이썬 코드 :

l = [0, 4, 8, 12, 32, 36, 40, 44, 64, 68, 72, 76, 96, 100, 104, 108, 128, 132, 136, 140, 160, 164, 168, 172, 192, 196, 200, 204, 224, 228, 232, 236]
shift = lambda s,n:"".join(chr((ord(i)+n)%256) for i in s)
code = ""
for i in l:
    code += shift(",[{}.,]".format(i*"+" if i<=128 else (256-i)*"-"),-i)

인코딩 및 시프트 방지 된 실제 작업 코드 중 일부를 보여줄 수 있습니까? (예 : +[>,.<]?)
Stan Strum

@StanStrum 그것은 단지 s 또는 s 의 양이 ,[+.,]어디 버전의 변화++-
Jo King

20

l 하스켈, 점수 255 (27,026 바이트)

프로그램이 작동하지만 클립 보드에 넣으면 프로그램이 손상되는 것처럼 보이므로 여기에 내 프로그램을 출력하는 코드가 있습니다.

확인

따라서 클립 보드에 내용을 복사하면 문제가 해결되는지 어떻게 확인할 수 있습니까?

여기서 사용할 수 있습니다 . N문자열을 조정 하여 현재 Big ol' egg작동하는지 확인할 수 있습니다.

이것은 단일 입력에서 모든 N을 연속적으로 테스트하지만 시간이 초과되는 경향이 있습니다.

설명

이것은 글을 쓰는 하스켈의 주석 표기를 남용합니다. 글을 읽고 Haskell에서 시작하지 않는 행 >은 주석입니다. 따라서 코드를 작동시키기 위해 각각 255 개의 프로그램 사본을 만들고 각 사본을 씩 이동 n합니다 -n.



7

05AB1E , 점수 : 3 (24 바이트)

¶Ä0(ä.g){n·Å0)åH*oHÆ0*æI

온라인으로 사용해보십시오!

설명

¶Ä0(ä.g){n·Å0)åH*oHÆ0*æ  # Doesn't matter
                       I # Push the original input to the stack, implicit display

한 번 이동 :

·Å1)å/h*|o¸Æ1*æI+pIÇ1+çJ

온라인으로 사용해보십시오!

설명

·Å1)å/h*|o¸Æ1*æI+p       # Doesn't matter    
                  IÇ     # Push the ASCII values of the input 
                    1+   # Increment by 1
                      çJ # Push the chars of the ASCII values, join, implicit display

두 번 이동 :

¸Æ2*æ0i+}p¹Ç2+çJ,qJÈ2,èK

온라인으로 사용해보십시오!

설명

Æ2*æ0i+}p         # Doesn't matter    
         ¹Ç       # Push the ASCII values of the input 
           2+     # Increment by 2
             çJ   # Push the chars of the ASCII values, join
               ,q # Print and terminate

세 번 이동 :

¹Ç3+ç1j,~qºÈ3,èK-rKÉ3-éL

온라인으로 사용해보십시오!

설명

¹Ç        # Push the ASCII values of the input 
  3+      # Increment by 3
    ç1j   # Push the chars of the ASCII values, join
       ,q # Print and terminate

6

자바 스크립트, 점수 : 1 4 ( 94 346 바이트)

매우 간단하고 회전 할 때 다른 섹션이 주석 처리되었지만 어려운 비트는 사용 가능한 변수 이름과 Javascript 구문을 위반하지 않는 주석 섹션을 찾는 것입니다.

회전하지 않은 :

hc/*% *%nnS/0S eb^[fRR _SbS/0Efd[`Y Xda_5ZSd5aVWS UZSd5aVW3f"#&$'( \a[`RR!! %34hc/*$ifb_jVV$cWfW34Ijh_d]$\hec9^Wh9eZ[W$Y^Wh9eZ[7j&!'&(+,$`e_dVV%%%*89hc/)nkgdo[[)h\k#\89Nomdib)amjh>c\m>j_`###\)^c\m>j_`<o#+$&0$ -01$$$)ejdi[[***/=>/*ch*/hc//chhcchvw*/g¬©¥¢­g¦©avw­«¢§ g«¨¦|¡«|¨aaag¡«|¨z­aibdjrrb^knobbbg£¨¢§

5 회전 :

mh4/*%$/*ssX45X%jgc`kWW%dXgX45Jki`e^%]ifd:_Xi:f[\X%Z_Xi:f[\8k' "(+ ),-   %af`eWW &&%*89mh4/)nkgdo[[)h\k#\89Nomdib)amjh>c\m>j_`###\)^c\m>j_`<o#+$&,+$ -01$$$)ejdi[[***/=>mh4.split``.map(a=>String.fromCharCode(((a.charCodeAt(0)+5)%256))).join``///4BC4/hm/4mh44hmmhhm{|/4l±®ª§²l«®f{|²°§¬¥l¤°­«¦°­¢£fffl¡¦°­¢£²fngiowwgcpstgggl¨­§¬

10까지 회전 :

rm94/*)4/xx$]9:]*olhep\\*i]l$]9:Opnejc*bnki?d]n?k`a$$$]*_d]n?k`a=p$,%'-0%!.12%%%*fkej\\%++*/=>rm94.split``.map(a=>String.fromCharCode(((a.charCodeAt(0)+10)%256))).join``///4BCrm93xuqnyee3rfu-fBCXywnsl3kwtrHmfwHtij---f3hmfwHtijFy-5.0:.*7:;...3otnsee4449GH94mr49rm99mrrmmr49q¶³¯¬·££q°¤³k¤·µ¬±ªq©µ²°«¤µ²§¨kkk¤q¦«¤µ²§¨·kslnt||lhuxylllq­²¬±££

14로 회전 : 마침내 여기서 흥미로운 일이 발생하고 Javascript 유형 시스템을 남용했습니다.

vq=83.-83||(a=>a.split``.map(a=>String.fromCharCode(((a.charCodeAt(0)+14)%256))).join``)//.3ABvq=82wtpmxdd2qet,eABWxvmrk2jvsqGlevGshi,,,e2glevGshiEx,4-/54-)69:---2nsmrdd3338FGvq=7|yur}ii7vjy1jFG\}{rwp7o{xvLqj{Lxmn111j7lqj{LxmnJ}1924>2.;>?2227sxrwii888=KL=8qv8=vq==qvvqqv8=uº·³°»§§u´¨·o¨»¹°µ®u­¹¶´¯¨¹¶«¬ooo¨uª¯¨¹¶«¬»owprxply|}pppu±¶°µ§§

199 년까지 회전 :

/*öñìçæñì55áö÷ç,)%"-ç&)áö÷-+"' ç+(&ü!+ü(áááç!+ü(ú-áéâäêíâÞëîïâââç#("'âèèçìúû/*öñë0-)&1ë*-åúû1/&+$ë#/,*%/,!"åååë %/,!"þ1åíæèîíæâïòóæææë',&+ìììñÿ/*öð52.+6""ð/#2ê#ÿ64+0)ð(41/*#41&'êêê#ð%*#41&'6êòëí÷ëçô÷øëëëð,1+0""ñññööñ*/ñö/*öö*//**/=>ñö.split``.map(a=>String.fromCharCode(((a.charCodeAt(0)+199)%256))).join``

솔루션을 찾기 위해 가변 량으로 회전 할 때 다른 스 니펫을 보여주는 작은 도구 를 만든 다음 유용한 빌딩 블록으로 사용할 수있는 특정 패턴을 찾았습니다.

그것의 주요 요지 a/**/=>a는 여전히 유효한 함수 정의이므로 주석 섹션에 역 회전 함수를 포함시킬 수 있습니다. 거기에서 올바르게 수행하면 몇 번 반복 할 수 있습니다.

대부분의 주석 섹션은 중첩되어 있으므로 다른 결과를 찾을 수 있지만 충돌 및 제어 문자로 인해 추가 된 각 답변에서 작업이 점점 어려워집니다.


모든 용도 교체 charCodeAt(0)로하는 charCodeAt``전체 솔루션 오프 4 바이트 면도 있지만 처음부터 너무 많은 작업입니다 것입니다.


다른 시작 설정으로 동일한 접근 방식을 시도했지만 4 점으로 제한되었습니다.이 접근 방식은 더 높은 점수를 얻지 못할 것 같습니다.
Nit

적어도 charCodeAt()2 바이트를 절약하기 위해 사용할 수 있습니까 ?
Neil

5

PHP 와 함께 -d output_buffering=on -d short_open_tag=on, 점수 : 255 (25,731 바이트)

<?die($argv[1]);?>
=@pc`dmfbo)*<ejf)qsfh`sfqmbdf`dbmmcbdl)#0/0#-gvodujpo)%n*|sfuvso!dis)pSe)%n\1^*.2*<~-%bshw\2^**<@?>Aqdaengcp*+=fkg*rtgiatgrncegaecnndcem*$101$.hwpevkqp*&o+}tgvwtp"ejt*qTf*&o]2_+/4+=.&ctix]3_++=A@?Brebfohdq+,>glh+suhjbuhsodfhbfdooedfn+%212%/ixqfwlrq+'p,~uhwxuq#fku+rUg+'p^3`,06,>?/'dujy^4`,,>BA
@Csfcgpier,-?hmi,tvikcvitpegicgeppfego,&323&0jyrgxmsr,(q-vixyvr$glv,sVh,(q_4a-18-??0(evkz_5a--?CBADtgdhqjfs-.@inj-uwjldwjuqfhjdhfqqgfhp-'434'1kzshynts-)r.?wjyzws%hmw-tWi-)r`5b.2:.@?1)fwl{`6b..@DCBEuheirkgt./Ajok.vxkmexkvrgikeigrrhgiq.(545(2l{tizout.*s/?xkz{xt&inx.uXj.*sa6c/3</A?2*gxm|a7c//AEDCFvifjslhu/0Bkpl/wylnfylwshjlfjhssihjr/)656)3m|uj{pvu/+t0?yl{|yu'joy/vYk/+tb7d04>0B?3+hyn}b8d00BFEDGwjgktmiv01Clqm0xzmogzmxtikmgkittjiks0*767*4n}vk|qwv0,u1?zm|}zv(kpz0wZl0,uc8e15@1C?4,izo~c9e11CGFEHxkhlunjw12Dmrn1y{nph{nyujlnhljuukjlt1+878+5o~wl}rxw1-v2?{n}~{w)lq{1x[m1-vd9f26B2D?5-j{pd:f22DHGFIylimvokx23Enso2z|oqi|ozvkmoimkvvlkmu2,989,6pxm~syx2.w3?|o~|x*mr|2y\n2.we:g37;:3E?6.k|q?e;g33EIHGJzmjnwply34Fotp3{}prj}p{wlnpjnlwwmlnv3-:9:-7q?yntzy3/x4?}p?}y+ns}3z]o3/xf;h48<<4F?7/l}r?f<h44FJIHK{nkoxqmz45Gpuq4|~qsk~q|xmoqkomxxnmow4.;:;.8r?zo?u{z40y5?~q??~z,ot~4{^p40yg<i59=>5G?80m~s?g=i55GKJIL|olpyrn{56Hqvr5}rtlr}ynprlpnyyonpx5/<;</9s?{p?v|{51z6?r??{-pu5|_q51zh=j6:>@6H?91nt?h>j66HLKJM}pmqzso|67Irws6~?sum?s~zoqsmqozzpoqy60=<=0:t?|q?w}|62{7??s???|.qv?6}`r62{i>k7;?A;?7I?:2o?u?i?k77IMLKN~qnr{tp}78Jsxt7?tvn?t{prtnrp{{qprz71>=>1;u?}r?x~}73|8??t???}/rw?7~as73|j?l8<@D8J?;3p?v?j@l88JNMLOros|uq~89Ktyu8??uwo?u?|qsuosq||rqs{82?>?2<v?~s?y~84}9??u???~0sx?8bt84}k@m9=AF9K?<4q?w?kAm99KONMP?spt}vr9:Luzv9??vxp?v?}rtvptr}}srt|93@?@3=w?t?z?95~:??v???1ty?9?cu95~lAn:>BH:L?=5r?x?lBn::LPO
...

Haskell 솔루션과 유사하게 복사하여 붙여 넣으면 이 Perl 스크립트를 사용하여 생성했습니다 .

1, 16, 32 및 255 번 이동했는지 확인합니다.

설명

PHP의 사용 <?구분은 매우 쉽게이했다,하지만 난으로 끝날 수있는 문자열 않도록했다 <?,이 기본적 수단을 다른 곳에 코드를 03, 14, 25, 36, 47, 5869. 이 문제를 해결하는 것은 산술을 사용하여 매우 쉬웠습니다. 원래 프로그램에서도 바이트 수를 줄이는 것이 가능할 수도 있습니다.


4

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[]'(){}::<><>

온라인으로 사용해보십시오!

(크레인 해크에서는 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으로 이동)의 경우 0으로 이동하는 것이 고양이 프로그램이므로이 작업을 수행 할 필요가 없습니다. 그래서 우리는이 코드로 시작합니다 :

([]){{}({}()<>)<>([])}{}<>([]){{}({}<>)<>([])}<>

1만큼 아래로 이동

'Z\(zz|'z|m;=(;='Z\(|z|;='Z\(zz|'z|;=(;='Z\(|;=

균형이 맞지 않아서 수정해야합니다. 내가 선택한 방법에 의해 우리가 이것을 할 수있는 방법은 여러 가지가 있습니다 (명백해질 이유가 있습니다) :

'Z\(zz|'z|m;=(;='Z\(|z|;='Z\(zz|'z|;=(;='Z\(|;=)))))){}{}{}{}{}

이것을 2 씩 올리면

)\^*||~)|~o=?*=?)\^*~|~=?)\^*||~)|~=?*=?)\^*~=?++++++}}}}}

이후는 ()보다 다루기 쉽다 {}우리가 사용하는 }우리가 원하는 프로그램을 완료들. 그것은 )깡통이 꽤 명백한 수단과 균형을 이룰 수 있음을 의미합니다. 약간의 조정으로 우리는 그것을 다음과 같이 바꿀 수 있습니다.

()\^*||~()|~()*=?*=?()\^*~|~=?()\^*||~()|~=?*=?()\^*~=?+++++++([]_)*+{{}({}()*+()*+<>@)*+<>@([]_)*+}{}<>@([]_)*+{{}<<>@>@<>@({}<>@)*+<>@([]_)*+}<<>@>@

다시 아래로 이동하면

&'Z\(zz|&'z|&'(;=(;=&'Z\(|z|;=&'Z\(zz|&'z|;=(;=&'Z\(|;=)))))))&Y[]'()yy{}&y{}&'()&'():<>'():<>&Y[]'(){}y{}:<>&Y[]'()yy{}::<><>:<>&y{}:<>'():<>&Y[]'(){}::<><>

3까지의 단계는 너무 복잡하여 더 이상 이해하지 못합니다. 나는 같은 기술을 사용하고 마침내 4 가지를 모두 한 번에 사용할 수있을 때까지 그 주위를 둘러 보았습니다. 이 기술은 훨씬 더 많은 것들이있는 것과 거의 같습니다.


3

Python 3, 점수 1, 76 바이트

교대 0 : 변화 없음

""!="";print(input());exit()#   oqhms'&&-inhm'bgq'nqc'i(*0(enq'i(hm'hmots'((((

교대 1 :

##">##<qsjou)joqvu)**<fyju)*$
print(''.join(chr(ord(j)+1)for(j)in(input())))

교대 2에서 일을 시작했지만 ""는 $$가되고 그와 함께 줄을 시작할 수 없습니다.

파일로 저장할 때 줄 바꿈으로 끝나지 않아야합니다. (vim -b file.py + set noeol)


당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.