Değişim Odaklı Programlama


41

Bir dize, karakterdeki her karakterin bayt değerini alarak , sonucu hesaplayarak ve bir karaktere geri dönüştürerek sayı olarak değiştirilebilir .nc(c + n) mod 256

Örnek olarak "ABC123"1 ile "BCD234"kaydırma, 10 inç "KLM;<="kaydırma ve 255 inç kaydırma ile sonuçlanır "@AB012".

Görev

Birçok numaraları olarak seçin nile 0 < n < 256cesaret ve girdi olarak bir dize alan bir program veya işlevi yazıp olarak

  • kaynak kodu değişmediğinde dizeyi değişmeden döndürür, ancak
  • nKaynak kod tarafından kaydırıldığında kaydırılan dizgiyi döndürür n.

kurallar

  • Gönderiminizin puanı, desteklenen npuan sayısıdır ve daha yüksek puan daha iyidir. Böylece maksimum puan 255'tir.
  • Gönderiminiz en az bir vardiyayı desteklemelidir, bu nedenle minimum puan 1'dir.
  • Beraberlik durumunda daha kısa program kazanır.
  • Değiştirilen tüm programların aynı dilde olması gerekir.



İstenilen çıktıdan önce ANSI kaçış dizileri ile silinen ya da gizlenerek çıktının alınması kabul edilebilir \rmi?
Dom Hastings

4
@DomHastings 0x0D ve 0x1B potansiyel olarak asıl string çıktısının bir parçası olduğundan, sanmıyorum.
Martin Ender

Yanıtlar:


24

Brainfuck, skor: 31 (2208 bayt)

Base64 kodlu program:

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 vardiyalarında çalışır. , 192, 196, 200, 204, 224, 228, 232 ve 236.

0 ile 255 arasındaki her değer için, tam olarak bu karakteri geçerli bir beyin fırtınası talimatına gönderen vardiyalardan biri vardır.

Program, 8-bit hücrelere taşma ile sarma ile dayanır. Vites değiştirme sadece tekrarlanan +veya -(hangisi daha kısa ise) olduğundan , bu durum muhtemelen biraz golf oynayabilir .

Bunu oluşturmak için kullanılan Python kodu:

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)

Kodlanmış ve vardiyaya dayanıklı olan gerçek çalışma kodlarından bazılarını gösterebilir misiniz? (yani +[>,.<]?)
Stan Strum

@StanStrum Sadece sürümlerini kaymış oluyor ,[+.,]nereye +miktarıdır +s veya -s
Jo Kral

20

lHaskell, Puan 255 (27,026 bayt)

Program çalışıyor ancak panoya koymak onu yok ediyor gibi görünüyor, işte programımı çıkaran kod burada.

Doğrulama

Bir şeyleri bir panoya kopyalamak onu bozarsa, çalışmasını nasıl doğrularım?

Bunu burada kullanabilirsiniz . Kendiniz Nve Big ol' eggçalıştığını görmek için (şu anda ) dizesini ayarlayabilirsiniz .

Bu , tüm N'leri art arda tek bir girişte test edecek, ancak zaman aşımı eğilimi gösterecektir.

açıklama

Bu okur-yazar Haskell'in yorumuna suistimal ediyor. Okuryazar Haskell ile başlamayan herhangi bir satır >bir yorumdur. Böylece kodumuzu çalıştırabilmek için programın her birini değiştiren 255 kopya nalıyoruz ve sonra her bir kopyayı da değiştiriyoruz -n.



7

05AB1E , Puan: 3 (24 bayt)

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

Çevrimiçi deneyin!

açıklama

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

Bir kez değiştirildi:

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

Çevrimiçi deneyin!

açıklama

·Å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

İki kez kaydırıldı:

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

Çevrimiçi deneyin!

açıklama

Æ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

Değişmiş üç kez:

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

Çevrimiçi deneyin!

açıklama

¹Ç        # 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

Javascript, puan: 1 4 ( 94 346 bytes)

Oldukça düz, döndürüldüğünde farklı bölümler çıkarılmış, zor bit kullanılabilir değişken isimleri ve Javascript sözdizimini bozmayan yorum bölümleri bulmaktı.

unrotated:

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 tarafından döndürülmüş:

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 tarafından döndürülmüş:

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 döndürülmüş: burada işler ilginçleşti, Javascript tipi sistemi kötüye kullandı.

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 döndürülmüş:

/*öñìçæñì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``

Çözümleri bulmak için, değişken miktarlarda döndürdüğümde bana farklı snippet'leri göstermek için küçük bir araç yaptım, sonra yararlı yapı taşları olarak kullanabileceğim bazı desenler buldum.

Bunun asıl amacı a/**/=>a, yorum bölümünde ters döndürülmüş bir işlevi yerleştirmenize izin veren geçerli bir işlev tanımıdır. Buradan itibaren, doğru şekilde yapılırsa birkaç kez tekrarlanabilir.

Yorum bölümlerinin çoğu iç içe olduğundan, başka bir sonuç bulmak mümkün olabilir, ancak çarpışmalar ve kontrol karakterleri nedeniyle her eklenen yanıtla çalışmasını zorlaştırır.


Tüm kullanımlarını değiştirilmesi charCodeAt(0)ile charCodeAt``tüm çözümle kapalı 4 bayt tıraş, ancak sıfırdan yapmak çok fazla iş var olacaktır.


Aynı yaklaşımı farklı bir başlangıç ​​ayarıyla denedim, ancak 4 noktada da kapatıldı, bu yaklaşımın daha yüksek bir puan vermemesi muhtemel görünüyor.
Nit

En azından charCodeAt()2 byte tasarruf etmek için kullanabilir misiniz?
Neil

5

PHP ile -d output_buffering=on -d short_open_tag=onpuan: 255 (25,731 bayt)

<?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 çözümüne benzer şekilde, bu sonları kopyalayıp yapıştırarak, bu yüzden bu Perl komut dosyasını kullanarak oluşturdum .

Doğrulama 1, 16, 32 ve 255 kez kaydırıldı.

açıklama

PHP'nin kullanma <?sınırlayıcı oldukça kolay bu yapılan, ama ben bitebileceğini herhangi dizeleri önlemek zorunda <?bu temelde araçları başka yerde kodunda 03, 14, 25, 36, 47, 58ve 69. Bunlarla uğraşmak aritmetik kullanımı oldukça kolaydı. Orijinal programdaki bayt sayısını da azaltmak mümkün olabilir.


4

Crane-Flak , Puan 3 (252 bayt)

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

Çevrimiçi deneyin!

(Brain-Hack'te pek çalışmaz, çünkü sadece Crane-Flak 256'ya geçer)

1 ile değiştirildi

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

Çevrimiçi deneyin!

2 ile değiştirildi

'()*+'('Z)\(zz^*+)*+|'z|~'()*+'()*+'()*+;=?()*+;=?'Z\^()|~'()*;=?*;=?'()Z\^*~z|~;=?'()'(*'Z)\(^*)*+zz|'z|~;=?()*+;=?'Z\^()|~;=?*;=?'()Z\^*~;=?+++++++'([]_)*+{{}'({}'()*+'()*+<>@)*+<>@'([]_)*+}{}<>@'([]_)*+{{}<<>@>@<>@'({}<>@)*+<>@'([]_)*+}<<>@>@

Çevrimiçi deneyin!

3 ile değiştirildi

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

Çevrimiçi deneyin!

açıklama

Burada iş başında ana kod

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

burada nisteğe bağlı bir sayıdır. Bu n, her bir maddeye eklenen her şeyi offstack'a taşır (modulo 256, çıktının üstüne çıkar) ve sonra hepsini geri taşır.

Bununla birlikte, ilk program için (yani 0 ile değiştirilir), bunların hiçbirini yapmamıza gerek yoktur, çünkü sıfıra kaydırma, cat programıdır. Yani bu kodla başlayalım:

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

ve 1 ile aşağı kaydırın

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

Bu dengesiz olduğu için düzeltmemiz gerekiyor. Seçim yöntemimle bunu yapabileceğimiz birkaç yol var (görünecek sebeplerden dolayı):

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

Bunu 2'ye yükselterek alırız

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

Yana ()baş etmekten daha kolaydır {}biz kullanacağız }arzuladığımız programı tamamlamak için s. Bu ), oldukça belirgin araçlarla dengelenebilecek anlamına gelir. Bazı kemanlarla bunu şuna çevirebiliriz:

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

Geri aşağı kaydırırken anlıyoruz

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

3'e kadar olan adım o kadar karmaşık ki artık anlamıyorum. Aynı tekniği kullandım ve sonunda 4'ünün hepsinin aynı anda çalışmasını sağlayana kadar kustum. Tekniği hemen hemen aynı, sadece çok daha fazla işe yaramaz.


3

Python 3, Puan 1, 76 bayt

Vardiya 0: değişiklik yok

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

Vardiya 1:

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

2. vardiyada çalışmaya başladı, ancak "" $$ oldu ve bununla bir satır başlatamazsın.

Bir dosyaya kaydettiğinizde, yeni bir satırla bitmediğinden emin olun. (vim -b file.py + noeol ayarla)


Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.