Baskı artan ASCII, Soyguncular


13

Bu soyguncuların iş parçacığı. Polislerin konusu burada .

Polisler iş parçacığında görev, yazdırılabilir ASCII karakterlerini artan sırada çıkaran bir program oluşturmaktı. Soyguncuların görevi, bu çıktıyı üretmek için kullanılan polislerin kodunu çözmek.

Kırık kod, aynı uzunluğa sahip olduğu ve ortaya çıkan karakterler doğru konumlarda olduğu sürece aynı olmak zorunda değildir. Dil de aynı olmalıdır (sürüm numaraları farklı olabilir). Çıktı elbette aynı olmalıdır. Polisler yorumları kodlarında kullanamazlar, ancak soyguncular bunları kullanmakta özgürdür.

Soyguncular iş parçacığının galibi 7 Ocak 2016'ya kadar en çok başvuruda bulunan kullanıcı olacaktır. Beraberlik olursa en uzun kombine kod ile başvuruda bulunan kullanıcı kazanacaktır.

Gönderme şu şekilde biçimlendirilmelidir:

Dil, nn karakterleri (yanıtlama bağlantısı dahil), Polisin kullanıcı adı

Kod:

alphaprinter

Çıktı

abcdefghijklmnopqrstuvwxyz

İsteğe bağlı açıklama ve yorumlar.

Liderler Sıralaması:

Adnan'ın ezici bir zaferi !

Adnan: 7
Pietu1998: 3
Mitch Schwartz: 2
Quintopia: 2
Martin Büttner: 2
cat: 1
Dennis: 1
insertusernamehere: 1
isaacg: 1
jimmy23013: 1
MegaTom: 1
plannapus: 1
user81655: 1

Yanıtlar:


7

Python 2, 76 karakter, wnnmaw

Aşağıda gizlenmiş sürümü olan kod:

print "BKT]f"#__h______________________v_____________,___)_________)_______)
print __________h______________________v_____________,___)_________)_______)

Bu çıktı BKT]f. Amaçlanan sürüm değil, bu kesinlikle haha.

Burada test edildi


1
Sneaky comments :)
wnnmaw

1
Bu, printkarakterleri tam olarak dizenin oturması gereken yerlerde göstermedikçe, çıktısı programın uzunluğundan daha kısa olan bir program göndermenizi öğretecektir .
quintopia

7

Brainfuck, 48 bayt, Adnan

++++[>++++[>++++<-]<-]+++[>++++++++<-]>++[>+.<-]

Oldukça basit, 64 ve sonra 26 üretiliyor.

++++[>++++[>++++<-]<-]>>+

65 elde etmenin bir yolu, bu yüzden böyle bir şey yapmaya çalışabilirsiniz

++++[>++++[>++++<-]<-]>>+[>+++++>++<<-----]>>[<.+>-]

bunun çıkmaz bir nokta olduğunu fark etmeden.


Ahhh, aferin :)
Adnan




4

JavaScript (ES6), 17 karakter, Neil

OP bir fonksiyon gönderdiğinde, burada bir fonksiyon kullanan bir çözüm var:

()=>xxx=11000+233
__=____=_________

Anonim işlev aşağıdaki gibi çağrılabilir:

(()=>xxx=11000+233)();

İlk başta aldığım daha saçma bir çözüm:

xx=yyyy=z=11230+3
__=____=_________

Konsolda çalıştırıldığında, numarayı yazdıracaktır 11233.


2
Ninja beni. Ben aldımfx=asdf=> "11233"
Conor O'Brien

@ CᴏɴᴏʀO'Bʀɪᴇɴ Düşünce, bu konuda hızlı olmalıydım. : D
insertusernameburada

1
Batının en hızlı silahında sana şudos. +1
Conor O'Brien

Dizeler için -1: P
ev3commander

1
@ CᴏɴᴏʀO'Bʀɪᴇɴ sürümü, bir dize döndüren işlev olan tek sürüm gibi görünüyor.
Neil

4

PHP, 28 karakter, Niet the Dark Absol

Bu görev için birkaç sürüm buldum:

Orijinal versiyon:

<?=@implode(range('a','z'));

Benim versiyonum:

<?=join('',range('a', 'z'));

23 karakterli versiyon:

<?=join('',range(a,z));

26 karakterli versiyon:

<?=implode('',range(a,z));

Tabii ki, 28 karakter işaretine ulaşmak için birkaç beyaz boşluk ekleyebilirsiniz.

Burada test edildi


Dang, beni <?=join(range(a,z));
dövüyorsun

Beni yakaladın - belki bir fonksiyon isminin harflerinden birini ortaya çıkan karakterler olarak koyarak daha kısıtlayıcı yapmalıydım ... Her neyse, kayıt için işte orijinal:<?=@implode(range('a','z'));
Niet the Dark Absol

4

Jolf, 27 karakter, Cᴏɴᴏʀ O'Bʀɪᴇɴ

Birkaç saatlik deneme yanılma sürecinden sonra anladım haha:

on-pl'u'Wa-n"vwxyz"`--'01_2

Gizli kod dahil:

on-pl'u'Wa-n"vwxyz"`--'01_2
________W___________--_____
                         |

Burada deneyin ( adım çalışması uyarıyla çalışan tek kişi gibi görünüyor)


açıklama

Sıkıştığım ilk şey while döngüsünün yerleştirilmesiydi. Doğru yere varmış gibi görünmüyordum haha. Doğru yaptıktan sonra fark ettiğim ikinci şey alt çizginin yerleştirilmesiydi. Alt çizgide (gg Cᴏɴᴏʀ O'Bʀɪᴇɴ) sıkışana kadar neredeyse anladım.

İşte kodun tam açıklaması:

on-pl'u'Wa-n"vwxyz"`--'01_2

o                           # assign
 n                          # n / standard variable
   pl                       # pl = "abcdefghijklmnopqrstuvwxyz"
  -  'u                     # pl - "u" = "abcdefghijklmnopqrstvwxyz"
       'W                   # a string in the middle doing nothing
          -n"vwxyz"         # n - "vwxyz"
         a                  # alert(
                   `        # is an extra semicolon
                     -'01   # "0" - 1
                    -    _2 # ("0" - 1) - negative 2

Sahte kodda:

n = minus("abcdefghijklmnopqrstuvwxyz", "u");
"W";
alert(minus(n,"vwxyz"));
;
minus(minus("0", 1), negative(2));

Asıl çözümün ne olduğunu görmek istiyorum :)


1
Tanrının kutsal annesi istediğim gibi değil ama neyse güzel iş! Cevabım üzerine asıl kodu gönderdim.
Conor O'Brien




4

Python 3, 58 bayt, Mathias Ettinger

import string;print(''.join(sorted(string.printable))[5:])

String modülünün temel kullanımı .


Bunu benden önce kırdığınızı görmedim, kullanmayı denedim stringama kullanmayı düşünmedim sorted(çünkü var olduğunu unutuyorum). Çatlakımı bırakmam gerekip gerekmediğini bilmiyorum, çünkü aynı yönteme yakın bir yerde değil ama işe yarıyor.
kedi

2
@cat Stewie Griffin'in bununla ilgili fikrinin ne olacağını bilmiyorum, ama yine de sana +1 verdim ve cevabımı devam ettirmenin mantıklı olduğunu düşünüyorum çünkü benimkiyle aynı cevap değil.
Mitch Schwartz

4

05AB1E, 13 karakter, Adnan

Kod (ve boş kod):

1TD*<F3<*}bRJ
__D____<_____

Çıktı:

0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001

Açıklama:

1                       Push 1
 TD*<                   Push 99
     F   }              For loop
      3<*               multiply top of stack by 3-1 (e.g. double it)
          b             convert to list of binary digits (note we have just computed 2^99)
           R            reverse it
            J           join it into a string.
                        (top of stack implicitly printed)

Woooww !! İnanılmaz iş :)
Adnan


3

JavaScript (ES6), 60 karakter, insertusernameburaya

Kod:

e=e=>{try{a}catch(e){return[...e.toString()].sort().join``}}
e_e_______a__a____e___e________e__o___________o______o______

Çıktı (Chrome'da):

    :ERacddeeeeeeffiinnnoorrrrst

Bunu hemen biliyordum çünkü aynı şeyi yapmak üzereydim! xD


Güzel bir - karakter karakter. : D
insertusernameburada

1
@insertusernamehere [...e+'']Biraz daha kısa yapmak için yapmış olabilirsiniz . Bu beni başlangıçta fırlattı. ;)
user81655 26:15

return[...e.toString()]Aslında ne yapar ? Ben sadece bir lil JS biliyorum ...
kedi

3
@cat Hata mesajının her harfini bir diziye koyar. Bunu yapmak gerekir, çünkü sortdizelerde değil, sadece dizilerde çalışır.
user81655


3

Malbolge, 254 karakter, frederick

Gizli sürüm:

_____ _____ _____ _____ _____ _____ _____ _____ _____ _____ _____ _____ _____ _____ _____ _____ _____ _____ _____ _____ _____ _____ _____ _____ _____ _____ _____ _____ _____ _____ _____ _____ _____ _____ _____ _____ _____ _____ _____ _____ _____ _____ __

Benim versiyonum:

('&%: ^"!65 4Xzyx w4-Qs rpo'K mlk"' ~Dfdc ba}v< ::8[Z XnVlq }0/mO ,*MbK JH^6# 4`C|0 ?U=Sw uPsaq L4on2 Mjjh, ged)c '<$$p ]!};Y WiVxS eRQ>= ).K]l Ij"Fh gfedc b,=;z L\q%H X3E2C /ng-k N*KJI 8%6#D ~2^Ai >g<<d tUr`6 oJ"!1 /|{CU f)d>b <A_^! \};Yj yUxTS dtsr` ML

Bu çıktı:

`AB\cd`

Burada deneyebilirsiniz .



2

05AB1E, 7 karakter Adnan

Kod ve boş kod:

576T*uH
___T___

Çıktı:

22368

Açıklama:

576       Push this number.
   T      Push ten.
    *     Multiply. (5760)
     u    Convert to string.
      H   Interpret as a hex number and push decimal (22368) (implicit output).

Bunun orijinal program olmadığına neredeyse inanıyorum, ancak Adnan'a bunu mümkün kılan bir bilgi ( ukomut) sağladığı için teşekkürler .


Bence bu orijinal program haha. Aferin :)
Adnan

2

Bu cevap geçersiz ve puanımı hesaba katmamalıyım (zaten kazanmaya yakın bir yerde olduğum için değil) çünkü zaten çatlamış olduğunu görmedim.

Python 3, 58 karakter, Mathias Ettinger

Aşağıdaki orijinal kodla birlikte kod:

x=range(95);  print(''.join((chr(i+32) for i in x  )    ))
______________print(_______(_______________________)_____)

Açıkça, amaçlanan çözüm değildi:

import string;print(''.join(sorted(string.printable))[5:])

Çıktı:

 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~

(Baştaki boşluğa dikkat edin.)

Çatlamak için eğlenceli bir şey: genexprdüzgün çalışması için nasıl anlamaya biraz zaman aldı . :)


1

Pyth, 17 karakter, Luke

Kod (boş kodla birlikte):

S`u]G6*T`t"#X0231
___________#____1

Çıktı:

""''''''''''''''''''''0000000000111111111122222222223333333333XXXXXXXXXX[[[[[[]]]]]]

Çevrimiçi deneyin.

Bu komikti. Ben #filtre operatörü olarak kullanarak birçok kez 18 bayt aldım , ama sonra ben sadece dize atmak anladım. Eğer kaldırırsanız tve# sonucunu sonuç muhtemelen bu çıktı için en kısa Pyth kodu olacaktır.

Temelde:

  • "#X0231 ipi yapar #X0231
  • t"#X0231aşağıdakileri kaldırır #:X0231
  • `t"#X0231 dize temsilini alır: 'X0231'
  • *T`t"#X0231 10 ile çarpar: 'X0231''X0231''X0231'
  • u]G6*T`t"#X0231 6 kez bir diziye sarar
  • `u]G6*T`t"#X0231dize temsilini alır: [[[[[['X0231''X0231']]]]]]
  • S`u]G6*T`t"#X0231 çıktı almak için sıralar

Çok hoş! Ve yaptığımdan oldukça farklı.
Luke



0

Python 2, 62 karakter, RikerW

Gizli sürüm:

______________________________________________________________
         | |   ||                  |  |  ||

Benim versiyonum:

print "ab_c_de___".replace("_","")#___________________________

Bu, tüm alt çizgileri ve çıktıları kaldırır abcde.

Burada denedim

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.