In tăng dần ASCII, Cướp


13

Đây là chủ đề của bọn cướp. Chủ đề của cảnh sát ở đây .

Trong luồng cảnh sát, nhiệm vụ là tạo ra một chương trình xuất các ký tự ASCII có thể in theo thứ tự tăng dần. Nhiệm vụ của bọn cướp là xắp xếp lại mã mà cảnh sát sử dụng để tạo đầu ra này.

Mã bị bẻ khóa không nhất thiết phải giống hệt nhau, miễn là nó có cùng độ dài và bất kỳ ký tự được tiết lộ nào đều ở đúng vị trí. Ngôn ngữ cũng phải giống nhau (số phiên bản có thể khác nhau). Đầu ra tất nhiên phải giống hệt nhau. Cảnh sát không thể sử dụng nhận xét trong mã của họ, nhưng những tên cướp được tự do sử dụng chúng.

Người chiến thắng trong chuỗi cướp sẽ là người dùng đã bẻ khóa nhiều lần gửi nhất vào ngày 7 tháng 1 năm 2016. Nếu có sự ràng buộc, người dùng đã bẻ khóa các bài nộp với mã kết hợp dài nhất sẽ giành chiến thắng.

Nội dung gửi phải được định dạng như thế này:

Ngôn ngữ, nn ký tự (bao gồm liên kết để trả lời), tên người dùng của Cop

Mã số:

alphaprinter

Đầu ra

abcdefghijklmnopqrstuvwxyz

Tùy chọn giải thích và ý kiến.

Bảng xếp hạng:

Một chiến thắng nghiền nát của Adnan !

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

Câu trả lời:


7

Python 2, 76 ký tự, wnnmaw

Mã, với phiên bản bị xáo trộn dưới đây:

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

Kết quả này BKT]f. Không phải phiên bản dự định, đó là điều chắc chắn haha.

Đã thử nghiệm ở đây


1
Bình luận lén lút :)
wnnmaw

1
Điều đó sẽ dạy bạn đăng một chương trình có đầu ra ngắn hơn độ dài của chương trình bằng ngôn ngữ printtrừ khi bạn tiết lộ các ký tự ở chính xác các vị trí mà chuỗi sẽ phải ngồi.
quintopia

7

Brainfuck, 48 byte, Adnan

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

Khá đơn giản, tạo ra 64 và sau đó 26. Có thể là một ít cá trích đỏ

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

là một cách để có được 65, vì vậy bạn có thể thử làm một cái gì đó như

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

trước khi nhận ra rằng đó là một ngõ cụt.


Ahhh, làm tốt lắm :)
Adnan




4

JavaScript (ES6), 17 ký tự, Neil

Khi OP đăng một chức năng, đây là một giải pháp sử dụng chức năng:

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

Hàm ẩn danh có thể được gọi như sau:

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

Một giải pháp nực cười hơn tôi đã có lúc đầu:

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

Khi chạy trong bàn điều khiển, nó sẽ in số 11233.


2
Ninja'd tôi. Tôi đã nhậnfx=asdf=> "11233"
Conor O'Brien

@ CᴏɴᴏʀO'Bʀɪᴇɴ Nghĩ rằng, tôi đã phải nhanh chóng về điều này. : D
insertusernamehere

1
Vâng, danh tiếng cho bạn về khẩu súng nhanh nhất của bạn ở phía tây. +1
Conor O'Brien

-1 không có chuỗi: P
ev3commander

1
Phiên bản của @ CᴏɴᴏʀO'Bʀɪᴇɴ dường như là phiên bản duy nhất có chức năng trả về một chuỗi.
Neil

4

PHP, 28 ký tự, Niet the Dark Tuyệt đối

Tôi tìm thấy một số phiên bản cho nhiệm vụ này:

Phiên bản gốc:

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

Phiên bản của tôi:

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

Phiên bản 23 ký tự:

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

Phiên bản 26 ký tự:

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

Tất nhiên, bạn chỉ có thể thêm một vài khoảng trắng để đến dấu 28 ký tự.

Đã thử nghiệm ở đây


Dang, bạn đánh tôi: P Thời gian ngắn nhất tôi có thể làm:<?=join(range(a,z));
LegionMammal978

Bạn hiểu ý tôi - có lẽ tôi nên làm cho nó hạn chế hơn bằng cách đặt một trong các chữ cái của tên hàm làm ký tự được tiết lộ ... Dù sao, đối với bản ghi, đây là bản gốc:<?=@implode(range('a','z'));
Niet the Dark Absol

4

Jolf, 27 ký tự, Cᴏɴᴏʀ O'Bʀɪᴇɴ

Sau vài giờ dùng thử và lỗi, tôi đã nhận được haha:

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

Bao gồm mã bị xáo trộn:

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

Hãy thử ở đây ( bước chạy dường như là người duy nhất làm việc với cảnh báo)


Giải trình

Điều đầu tiên tôi gặp khó khăn là vị trí của vòng lặp while. Tôi dường như không có được nó ở đúng nơi haha. Sau khi làm cho đúng, điều thứ hai tôi nhận thấy là vị trí của dấu gạch dưới. Tôi nghĩ rằng tôi gần như đã nhận được nó, cho đến khi tôi bị mắc kẹt ở phần gạch dưới (gg Cᴏɴᴏʀ O'Bʀɪᴇɴ).

Dưới đây là giải thích đầy đủ về mã:

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

Trong mã giả:

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

Tôi quan tâm để xem giải pháp thực tế là gì :)


1
Mẹ thánh của Thiên Chúa không phải là những gì tôi dự định _____ nhưng công việc tốt, dù sao đi nữa! Tôi đã đăng mã thực tế vào câu trả lời của tôi.
Conor O'Brien




4

Python 3, 58 byte, Mathias Ettinger

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

Sử dụng cơ bản mô-đun chuỗi .


Tôi không thấy rằng bạn đã bẻ khóa nó trước tôi, tôi đã thử sử dụng stringnhưng tôi không nghĩ đến việc sử dụng sorted(vì tôi quên nó tồn tại). Tôi không biết liệu tôi có nên rời khỏi vết nứt của mình không, vì nó không ở gần phương pháp tương tự nhưng nó hoạt động.
con mèo

2
@cat Tôi không biết ý kiến ​​của Stewie Griffin về điều đó là gì, nhưng dù sao tôi cũng cho bạn +1 và nghĩ rằng việc giữ câu trả lời của bạn là hợp lý vì nó không giống câu trả lời của tôi.
Mitch Schwartz

4

05AB1E, 13 ký tự, Ad Nam

Mã (và mã trống):

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

Đầu ra:

0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001

Giải trình:

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 !! Công việc tuyệt vời :)
Adnan


3

JavaScript (ES6), 60 ký tự, tên người dùng

Mã số:

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

Đầu ra (trong Chrome):

    :ERacddeeeeeeffiinnnoorrrrst

Tôi biết điều này ngay lập tức vì tôi sắp làm điều tương tự! xD


Nice one - nhân vật theo nhân vật. : D
insertusernamehere

1
@insertusernamehere Bạn có thể thực hiện [...e+'']để làm cho nó ngắn hơn một chút. Điều đó đã ném tôi khi bắt đầu. ;)
user81655

Những gì return[...e.toString()]thực sự làm? Tôi chỉ biết một JS lil ...
con mèo

3
@cat Nó chỉ đặt mỗi chữ cái của thông báo lỗi vào một mảng. Nó cần phải làm điều này bởi vì sortchỉ hoạt động trên mảng, không phải chuỗi.
dùng81655


3

Malbolge, 254 ký tự, frederick

Phiên bản bị xáo trộn:

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

Phiên bản của tôi:

('&%: ^"!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

Điều này sẽ xuất ra:

`AB\cd`

Bạn có thể thử nó ở đây .



2

05AB1E, 7 ký tự Ad Nam

Mã và mã trống:

576T*uH
___T___

Đầu ra:

22368

Giải trình:

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).

Tôi gần như tích cực đây không phải là chương trình gốc, nhưng cảm ơn Adnan vì đã cung cấp một chút thông tin giúp nó có thể thực hiện được ( ulệnh).


Tôi nghĩ rằng đây là chương trình ban đầu haha. Làm tốt lắm :)
Adnan

2

Câu trả lời này không hợp lệ và không nên tính vào điểm số của tôi (không phải là tôi ở bất cứ đâu gần chiến thắng) vì tôi không thấy nó đã bị bẻ khóa.

Python 3, 58 ký tự, Mathias Ettinger

Mã, với mã gốc dưới đây:

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

Rõ ràng không phải là giải pháp dự định, đó là:

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

Đầu ra:

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

(Lưu ý không gian hàng đầu.)

Một điều thú vị để bẻ khóa: tôi phải mất một thời gian để tìm ra cách để làm genexprcho nó hoạt động đúng. :)


1

Pyth, 17 ký tự, Luke

Mã (có mã trống):

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

Đầu ra:

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

Hãy thử trực tuyến.

Đây là niềm vui Tôi đã nhận được nó tới 18 byte nhiều lần bằng cách sử dụng #toán tử bộ lọc, nhưng sau đó tôi nhận ra rằng tôi có thể loại bỏ nó khỏi chuỗi. Nếu bạn loại bỏ t# kết quả có thể sẽ là mã Pyth ngắn nhất cho đầu ra đó.

Về cơ bản:

  • "#X0231 làm cho chuỗi #X0231
  • t"#X0231loại bỏ #:X0231
  • `t"#X0231 được đại diện chuỗi: 'X0231'
  • *T`t"#X0231nhân lên nó bằng 10: 'X0231''X0231''X0231'...
  • u]G6*T`t"#X0231 kết thúc nó trong một mảng 6 lần
  • `u]G6*T`t"#X0231được đại diện chuỗi: [[[[[['X0231'...'X0231']]]]]]
  • S`u]G6*T`t"#X0231 sắp xếp nó để có được đầu ra

Rất đẹp! Và khá khác với những gì tôi đã làm.
Lu-ca



0

Python 2, 62 ký tự, RikerW

Phiên bản bị xáo trộn:

______________________________________________________________
         | |   ||                  |  |  ||

Phiên bản của tôi:

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

Điều này chỉ đơn giản là loại bỏ tất cả các dấu gạch dưới và đầu ra abcde.

Đã thử nó ở đây

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.