Trắc nghiệm ngôn ngữ lập trình


189

Xin chúc mừng Dennis , người đã chiến thắng cả thử thách của cảnh sát và tên cướp! Sở thích của Calvin đã thực hiện đúng lời hứa của mình và đã viết thử thách này cho Dennis vì đã chiến thắng thử thách của bọn cướp.

Lưu ý: Thử thách này đã kết thúc đối với các câu trả lời của cảnh sát tiếp theo kể từ 2015-09-01 02:00:00 UTC. Bất kỳ câu trả lời mới nào được đăng sẽ không đủ điều kiện để giành chiến thắng và sẽ không được tính vào điểm số của kẻ cướp nếu bị bẻ khóa. Tuy nhiên, bạn vẫn có thể đăng câu trả lời mới cho sự thích thú của người dùng khác, do đó vẫn còn một số câu đố có sẵn cho khách truy cập trong tương lai. Những câu trả lời mới này được bao gồm trong phần "Cảnh sát dễ bị tổn thương" của bảng xếp hạng và trạng thái không cạnh tranh của chúng được đánh dấu riêng.

Chào mừng bạn đến với phiên bản Cops-and-Robbers của The Hello World Quiz ! (Nếu bạn chưa bao giờ chơi bài kiểm tra, vui lòng thử trong một phút hoặc 30. Mặc dù vậy, bạn không cần phải chơi thử thách này.)

Thử thách của cảnh sát

  1. Chọn một ngôn ngữ lập trình. Các ngôn ngữ hợp lệ phải có bài viết Wikipedia tiếng Anh , bài viết esolang hoặc bài viết về Rosetta Code tại thời điểm thử thách này được đăng (lưu ý rằng các danh sách được liên kết không nhất thiết phải hoàn thành vì chúng được quản lý theo cách thủ công). Họ cũng phải đáp ứng các tiêu chuẩn thông thường của chúng tôi cho các ngôn ngữ lập trình , vì vậy những thứ như HQ9 + đã bị loại bỏ. Cuối cùng, phải có trình thông dịch hoặc trình biên dịch miễn phí (như trong bia) cho ngôn ngữ (tại thời điểm thử thách này được đăng).
  2. Viết chương trình Hello World. Đó là, viết một chương trình đầy đủ bằng ngôn ngữ đã chọn in Hello, World!(chính xác như thế, tức là luồng byte chính xác này) và tùy chọn một dòng mới duy nhất đến STDOUT hoặc thay thế gần nhất.

    Bạn không được giả sử môi trường REPL, mã soạn sẵn hiện có hoặc cờ trình biên dịch / trình thông dịch không chuẩn. Chương trình phải ở dạng một hoặc nhiều tệp nguồn (để loại trừ các ngôn ngữ kỳ quặc như Thư mục ) và phải phù hợp với câu trả lời của bạn đầy đủ (vì vậy không được dài hơn 30.000 ký tự) - đây không phải là vấn đề đối với bất kỳ đệ trình nghiêm túc.

    Nếu mã của bạn chứa các byte nằm ngoài phạm vi ASCII có thể in được, vui lòng bao gồm một kết xuất pastebin hoặc hex để đảm bảo mã của bạn thực sự có thể kiểm tra được.

    Chương trình phải chấm dứt trong vòng 1 phút trên máy tính để bàn thông thường.

Đó là nó. Điều hấp dẫn là bạn muốn làm xáo trộn mã của mình sao cho không rõ ngôn ngữ bạn đã chọn. Cũng lưu ý rằng bạn không muốn mã của mình vô tình trở thành một chương trình Hello World hợp lệ bằng bất kỳ ngôn ngữ nào khác, mặc dù tôi hy vọng rằng điều đó khó có thể xảy ra đối với các chương trình bị che khuất đủ.

Trong mọi trường hợp, bạn không được chỉnh sửa mã nguồn của bài đăng của mình sau khi đăng (vì điều này có thể làm mất hiệu lực các nỗ lực tích cực của kẻ cướp trong việc bẻ khóa câu trả lời của bạn). Vì vậy, hãy chắc chắn rằng bạn chơi golf tốt như bạn có thể (hoặc dám) trước khi đăng. Nếu bạn nhận ra rằng câu trả lời của bạn không hoạt động sau khi đăng nó, chỉ cần xóa câu trả lời của bạn và đăng một phiên bản cố định nếu bạn muốn.

Nếu không ai tìm thấy ngôn ngữ mà mã của bạn có hiệu lực trong 7 ngày, bạn có thể tiết lộ ngôn ngữ đã chọn (lý tưởng với lời giải thích cho mã bị xáo trộn của bạn), điều này sẽ giúp câu trả lời của bạn an toàn . Lưu ý rằng trình của bạn vẫn có thể bị bẻ khóa cho đến khi bạn tiết lộ ngôn ngữ.

Đệ trình an toàn ngắn nhất (tính bằng byte) sẽ thắng.

Định dạng

(Vui lòng bỏ qua phần này và đọc Thử thách của kẻ cướp nếu bạn không có kế hoạch tham gia làm cảnh sát ngay bây giờ.)

Ở dưới cùng của bài đăng này, bạn sẽ tìm thấy một Đoạn trích đoạn tạo ra bảng thành tích cũng như một danh sách các bài nộp vẫn có thể bị bẻ khóa. Để đoạn mã hoạt động, điều quan trọng là bạn phải bao gồm một tiêu đề nhất định trong câu trả lời của mình:

  • Câu trả lời mới phải bao gồm một tiêu đề như

    # ???, [N] bytes
    

    nơi [N]là kích thước của mã của bạn trong byte và ???sẽ xuất hiện theo nghĩa đen.

  • Nếu câu trả lời không bị bẻ khóa trong 7 ngày và bạn muốn làm cho câu trả lời của mình an toàn bằng cách tiết lộ ngôn ngữ, chỉ cần thay thế ???, ví dụ:

    # Ruby, [N] bytes
    

    Vui lòng có liên kết tên ngôn ngữ đến một trang web có liên quan như trang esolangs hoặc kho lưu trữ GitHub. Liên kết sau đó sẽ được hiển thị trong bảng thành tích.

  • Nếu người dùng khác bẻ khóa thành công bài đăng của bạn (xem bên dưới), vui lòng thêm ngôn ngữ, cùng với thông báo như

    # Ruby, [N] bytes, cracked by [user]
    

    nơi [user]là tên của người dùng gửi các vết nứt hợp lệ đầu tiên. Nếu ngôn ngữ được sử dụng trong crack khác với ngôn ngữ bạn dự định, tôi khuyên bạn nên sử dụng phỏng đoán của tên cướp và đề cập trong câu trả lời mà bạn dự định là ngôn ngữ khác. Hãy đặt tên người dùng một liên kết đến trang hồ sơ của họ.

Thử thách của bọn cướp

  1. Tìm một câu trả lời dễ bị tổn thương. Đó là một câu trả lời, chưa được bẻ khóa và chưa an toàn .
  2. Crack nó bằng cách tìm ra ngôn ngữ của nó. Đó là, tìm bất kỳ ngôn ngữ nào trong đó chương trình đã cho là chương trình Hello World hợp lệ (tuân theo các quy tắc được nêu trong Thử thách của cảnh sát ở trên). Không thành vấn đề nếu đây là ngôn ngữ mà cảnh sát dự định.

    Nếu bạn đã tìm thấy một ngôn ngữ như vậy, hãy để lại nhận xét với tên của ngôn ngữ đó. Nếu có thể, bạn nên bao gồm một liên kết đến một trình thông dịch trực tuyến, cho thấy rằng mã thực sự hoạt động trong ngôn ngữ đó theo yêu cầu.

Mỗi người dùng chỉ được một lần đoán cho mỗi câu trả lời. Bạn không được bẻ khóa câu trả lời của riêng bạn (rõ ràng ...).

Người dùng bẻ khóa số lượng câu trả lời lớn nhất sẽ chiến thắng thử thách của bọn cướp. Ties bị phá vỡ bởi tổng số byte của câu trả lời bị bẻ khóa (nhiều hơn là tốt hơn).

Bởi vì thách thức của bọn cướp chỉ được tổ chức trong các bình luận, sẽ không có bất kỳ động cơ danh tiếng nào cho bọn cướp. Tuy nhiên, Grand Master of Challenge Writing, Sở thích của Calvin , đã đề nghị viết một thử thách về người dùng chiến thắng thử thách của bọn cướp!

Bảng điều khiển thử thách

Đoạn trích dưới đây tạo bảng xếp hạng cho cảnh sát và tên cướp và cũng sẽ liệt kê tất cả các câu trả lời vẫn có thể bị bẻ khóa. Hãy cho tôi biết nếu có bất cứ điều gì dường như không hoạt động đúng, và tôi sẽ cố gắng khắc phục nó càng sớm càng tốt. Nếu bạn có thể nghĩ về các tính năng bổ sung sẽ làm cho bảng điều khiển hữu ích hơn, hãy để lại nhận xét.


108
Một phút im lặng cho những người chỉ có khả năng lập trình.
user3819867 17/08/2015

19
Có năng suất của tôi!
Lu-ca

11
Tôi nghĩ rằng tôi có thể bắt đầu tranh luận liệu tôi có nên bắt đầu sử dụng Foo như một từ chửi rủa hay không ... "Ồ, Foo! Bạn nhỏ FOO !!" Yup, phù hợp hoàn hảo.
kirbyfan64sos

Câu trả lời:


38

Thức dậy , 17 byte

":"Hello, World!"

Theo trang web chính thức ,

Wake là một ngôn ngữ lập trình có các tinh túy của Makefile, các biểu thức chính quy và các mẫu khớp với các ngôn ngữ lập trình chức năng.

Wake được tạo bởi shinh và có thể được thử nghiệm trên máy chủ golf Anarchy Golf của anh ấy .

Mã này bao gồm một dòng duy nhất chứa mục tiêu / nhãn và một hành động. Vì hành động là một chuỗi ký tự, nên nó được in thành STDOUT.

Sử dụng "cho mục tiêu phục vụ hai mục đích:

  • Nó cung cấp bảo vệ polyglot.

    Clip và Foo in :; GolfScript và CJam đưa ra lỗi cú pháp do một chuỗi chưa hoàn thành.

  • Nó cung cấp một chút không chắc chắn về cách mã được cho là hoạt động.


1
Có vẻ như đây có thể là bài nộp chiến thắng.
primo

Tôi đã tìm thấy một ngôn ngữ mà nó hoạt động theo thông số kỹ thuật được xác định một cách lỏng lẻo, nhưng trình biên dịch duy nhất còn tồn tại theo như tôi biết có một lỗi khiến nó bị lỗi.
lịch sử

Hai lý thuyết của tôi về cái này là 1: đó có thể là ngôn ngữ có nhãn dòng tùy ý, vì vậy đó ":là tiền tố dòng hợp lệ và tự xử lý một chuỗi ký tự trong dòng thực tế như một lệnh đầu ra. Hoặc 2: Đó là sự thay thế chuỗi và <foo>:<bar>loại bỏ <foo>khỏi <bar>. Ectoforte, từ trang wiki Forte của esolang, sắp xếp thỏa mãn 1 nhưng trình thông dịch được liên kết ngắt với một trích dẫn kép trong nhãn và tôi không biết liệu nó có được tính là ngôn ngữ hay không.
lịch sử

1
Làm tốt lắm, Dennis. Tôi đã hy vọng rằng 20 byte của tôi cuối cùng cũng đủ tốt để trở thành người chiến thắng hàng đầu. Thật là một mối đe dọa! : P Đó là một hình đại diện mới, phải không?
mbomb007

@ mbomb007 Tôi đọc bình luận của bạn trước khi bạn chỉnh sửa nó. Vâng, avatar là hoàn toàn mới.
Dennis

147

TinyBF , 708 byte, bị bẻ khóa bởi kirbyfan64sos

Đây là niềm vui điên rồ. Mọi người đều biết rằng tôi chỉ có thể viết một ngôn ngữ;)

I,c,o,d,e,C;i;main(){i++;for(i++;i^9;i++)putchar(((i+69)*!(i+2*~0)|(9!=9+(I=((i-1)>>(i+2*~0))+~(!(i+2*~0)+~0)))*111|115*(6>i+1)*(i>3)+~(i>(10+(9>i)+~i+(i>9)))+(5<i)+(i<5)+1|(c=(i>6))|(o=(i>=7+!i))|(d=(i>>1>3)*(i*((i+~0>5)<<2)+(i>~2+i)))|(e=(i-~0>(i|5)&&32>>i)*99)|(C=(i>>(i>>2+i/7)>0)*(i+(i<<1)+(i<<2)+(i<<3)+(i<<4)>=(i!=6)*(5>=i)*(i+(i<<5)))*(i+(i*i)+62)*((i==6)!=!i)))+(i*i+(i<<1)+(31+i^i)+(i+i)*~0+2*i)*(1==(i==7)));I|=(c+=(o>d)),2*(c+C>o+d);e^=(d>>c)|4;I-=(e>C)+(I+c+(o==C)-~7*(C<=I)>>(C>=o));C=(e>>2)^(I-~o==c),o=255>>((int)1e7*(c-~1)>>(C+e+d+o+I)),i|=i+(e>=d)+(2<<I)+(3<<c);putchar(!(I+d+c>=(C|e))?(I>o)+(d=(20*(I==c))>>(1==~I+d+e+(C==(1>=(I==C))))):(I+o+C)*((C+e)/5+C+I+20+I+I==1>>(o>>(d>=(C!=I)))));}

Giải trình

Trước hết, việc này mất nhiều giờ để thực hiện, vì vậy tôi vô cùng vui mừng bởi tất cả các phản ứng tích cực và cố gắng phá vỡ nó!

Như đã lưu ý trong các bình luận, khi được biên dịch bằng C, mã được in Gotcha!theo dòng mới, nhưng khi TinyBF nó in ra mong muốn Hello, World!. TinyBF là một dẫn xuất đơn giản của Brainf ** k thay thế 8 lệnh của nó chỉ bằng 4 : + > | =. Vì tất cả các nhân vật khác đều bị bỏ qua, tôi có thể vui vẻ viết một chương trình C với nhiều toán tử không cần thiết để cố gắng dẫn mọi người đi sai hướng (điều mà tôi ngạc nhiên là hoạt động khá tốt). Đây là mã TinyBF thuần túy:

++++++++|=+=>>++++|>+>+>+>++>+++|=>|=>=+|=>>>+>+>+|=>|>>|=>>>>+>++++>==>=+++===+++++++====|=+=>+>+=>>|=>+++===>>>==>>===>>>>++++|=+>=++++>=|>+===>>==+++==>===++++++++==>>>>>==

Đây là cùng một chương trình, được viết bằng BF thông thường:

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

Bạn có thể sử dụng trình thông dịch này để chuyển đổi từ BF sang TinyBF và để chạy mã.


30
Tôi thấy một định nghĩa cho main(). Nó có thể là C? http://codepad.org/pj9mQgyQ (Như một lưu ý: Nó xuất ra Gotcha!)
DDPWNAGE 17/08/2015

1
Dựa trên câu trả lời của bạn và dựa trên một số tài liệu, tôi sẽ nói đây là Phân hạch . Tất cả I,c,o,d,e,C;i;main()sẽ bị bỏ qua (bên cạnh ;nhưng điều đó có vẻ không quan trọng) và số lượng lớn !được sử dụng để xuất các ký tự ASCII có thể là một dấu hiệu cho thấy đây là điều này. Tôi không thể tải xuống trình thông dịch của Fission và kiểm tra ngay bây giờ.
Gây tử vong

1
@Firthize Dự đoán chắc chắn, nhưng đó không phải là Phân hạch :) Sẽ cần một 'L' hoặc 'R' để bắt đầu chương trình, vì tất cả chỉ nằm trên một dòng.
BrainSteel

47
Đó là TinyBF !!!!!!
kirbyfan64sos

6
Chúc mừng huy hiệu vàng cho bài này. : D
Alex A.

113

ác , 658 byte, bị bẻ khóa bởi Sp3000

#!/sbin/fortran

Hello, World = 'SCBsIG8gICBvIGwgIQogZSBsICwgVyByIGQKYm9zcnJ1a3R2cG54cHN2eGJ5eWJkeG9iaHJ0eHV0SGF0eXJhcGF4eW5wYWFuenhkdnBidnZuYWRhcXZoZGFhcEVxcnZkcWF1YXh0ZW5ncXJ4ZXF2d2ZndWRueXZweWR1d0x2eHhydHZidW55ZHJucW5ocGhidG5neWR3eHd0c3V3d0x2c3d0cHVueHVwdHJwaWhhaG16ZXNiaXdweWdnanVocU9saHV3eWVwaGNyeW1naHBhaW5wZGRnZWJuZ2Z1eGRwZnV3eXNienJ2enh0YnRyaXZ6ZW54eWR3eGhodHh2YVd0eXF6dnVwZWdndnVnY3d0c2NhZWRnaWRyaXJ1aHV0d09tZGRwdHJueXVneG5iYXBueG96d2FweGR3enRna21wZ1Jjc29oeHVoZ3Z4Y3V3eXV5end2cXZ1ZG52ZWJudW16d0x2YWZoeXR2ZW91YXdoYW90YXN0ZWNuY3V2cG5odXVwZ0RiY2d2ZW15cnV0ZG9id3J5dWFyYXN3Z3hhdHdkZnJkYnN3cXJ4dWJzYXf='.decode('base64').rsplit(' ', 1)

print Hello, World

cái ác là một esolang cũ hơi giống BF. Các lệnh là tất cả các chữ cái viết thường và các ký tự khác chỉ bị bỏ qua.

Đầu tiên, tôi tạo ra một chương trình chào thế giới ngắn bằng ác bằng Python:

aeeeaeeewueuueweeueeuewwaaaweaaewaeaawueweeeaeeewaaawueeueweeaweeeueuw

Sau đó, một lần nữa sử dụng Python, tôi đã chuyển đổi nó thành một chuỗi base64:

Ym9zcnJ1a3R2cG54cHN2eGJ5eWJkeG9iaHJ0eHV0eXJhcGF4eW5wYWFuenhkdnBidnZuYWRhcXZoZGFhcnZkcWF1YXh0ZW5ncXJ4ZXF2d2ZndWRueXZweWR1eHhydHZidW55ZHJucW5ocGhidG5neWR3eHd0c3V3c3d0cHVueHVwdHJwaWhhaG16ZXNiaXdweWdnanVoaHV3eWVwaGNyeW1naHBhaW5wZGRnZWJuZ2Z1eGRwZnV3eXNienJ2enh0YnRyaXZ6ZW54eWR3eGhodHh2eXF6dnVwZWdndnVnY3d0c2NhZWRnaWRyaXJ1aHV0ZGRwdHJueXVneG5iYXBueG96d2FweGR3enRna21wc29oeHVoZ3Z4Y3V3eXV5end2cXZ1ZG52ZWJudW16YWZoeXR2ZW91YXdoYW90YXN0ZWNuY3V2cG5odXVwY2d2ZW15cnV0ZG9id3J5dWFyYXN3Z3hhdHdkZnJkYnN3cXJ4dWJzYXf=

Điều đó giải mã thành chữ thường hoàn toàn:

bosrruktvpnxpsvxbyybdxobhrtxutyrapaxynpaanzxdvpbvvnadaqvhdaarvdqauaxtengqrxeqvwfgudnyvpyduxxrtvbunydrnqnhphbtngydwxwtsuwswtpunxuptrpihahmzesbiwpyggjuhhuwyephcrymghpainpddgebngfuxdpfuwysbzrvzxtbtrivzenxydwxhhtxvyqzvupeggvugcwtscaedgidriruhutddptrnyugxnbapnxozwapxdwztgkmpsohxuhgvxcuwyuyzwvqvudnvebnumzafhytveouawhaotastecncuvpnhuupcgvemyrutdobwryuaraswgxatwdfrdbswqrxubsaw

Tôi đã thêm một vài thứ khác vào chuỗi base64, sau đó viết nó ra như chương trình Python ở trên.

Các shebang thực sự quan trọng trong chương trình. Việc strước btrong sbinsẽ bỏ qua blệnh. Sau đó, fin fortransẽ quét về phía trước cho đến khi mký tự tiếp theo , nằm trong chuỗi base64.



6
Trông giống như Python ...
Zizouz212

9
Đây có thể là một phiên bản / dẫn xuất thực sự khó hiểu của Python, nơi giải mã Base64 hoạt động theo một cách kỳ lạ, hoặc tiếng nói cơ bản Base64 không thực sự là Base64 trong ngôn ngữ chính xác. Tôi không thể nghĩ ra bất kỳ lời giải thích nào khác có thể, nhưng có lẽ người khác sẽ làm.
Sản phẩm ETH

27
Với 2 giờ để đi, tôi đang ngân hàng tất cả dựa trên dự đoán này: Đây có phải là xấu xa ?
Sp3000

4
@Rob evil không giải mã được chuỗi base64 - chính chuỗi đó là một chương trình. Các ký tự aeeeaeee...được trộn với các ký tự ngẫu nhiên sao cho chuỗi kết quả là một chuỗi base64 hợp lệ. Tôi đã chọn các ký tự ngẫu nhiên sao cho chuỗi kết quả sẽ giải mã 64 thành chữ thường, nhưng chuỗi được giải mã thực sự không liên quan - đó chỉ là một sự xao lãng. Điều duy nhất quan trọng là cái ác sẽ thực thi chuỗi base64, nhưng bỏ qua các chữ cái viết hoa và một vài chữ cái viết thường vì chúng không có lệnh, rời khỏi chương trình hello world.
grc

99

Lua, 2920 2865 Byte, bị bẻ khóa bởi jimmy23013

Tôi chỉ học ngôn ngữ này ngày hôm qua nên tha thứ cho bất kỳ lỗi cú pháp nào.

 --[[~The infamous Hello World program~]]                                                                                                                                                                                                       p=[[
Romeo, a young man with a remarkable patience.
Juliet, a likewise young woman of remarkable grace.
Ophelia, a remarkable woman much in dispute with Hamlet.
Hamlet, the flatterer of Andersen Insulting A/S.


                    Act I: Hamlets insults and flattery.

                    Scene I: The insulting of Romeo.

[Enter Hamlet and Romeo]

Hamlet:
 You lying stupid fatherless big smelly half-witted coward!
 You are as stupid as the difference between a handsome rich brave
 hero and thyself! Speak your mind!

 You are as brave as the sum of your fat little stuffed misused dusty
 old rotten codpiece and a beautiful fair warm peaceful sunny summer's
 day. You are as healthy as the difference between the sum of the
 sweetest reddest rose and my father and yourself! Speak your mind!

 You are as cowardly as the sum of yourself and the difference
 between a big mighty proud kingdom and a horse. Speak your mind.

 Speak your mind!

[Exit Romeo]

                    Scene II: The praising of Juliet.

[Enter Juliet]

Hamlet:
 Thou art as sweet as the sum of the sum of Romeo and his horse and his
 black cat! Speak thy mind!

[Exit Juliet]

                    Scene III: The praising of Ophelia.

[Enter Ophelia]

Hamlet:
 Thou art as lovely as the product of a large rural town and my amazing
 bottomless embroidered purse. Speak thy mind!

 Thou art as loving as the product of the bluest clearest sweetest sky
 and the sum of a squirrel and a white horse. Thou art as beautiful as the difference between Juliet and thyself.
 Speak thy mind! Let them]] print -- (She pauses) -- it in the streets!
 --[[Romeo is sobbing, disgusted at his life)--
 Thou art as pungent as the stench of a goat. Speak thy mind!
 [[Exeunt Romeo]]
 "Hello, World!" -- No response. "Hello!" He calls out again, but to no avail.

[[Exeunt Ophelia and Hamlet


                    Act II: Behind Hamlet's back.

                    Scene I: Romeo and Juliet's conversation.

[Enter Romeo and Juliet]

Romeo:
 Speak your mind. You are as worried as the sum of yourself and the
 difference between my small smooth hamster and my nose. Speak your
 mind!

Juliet:
 Speak YOUR mind! You are as bad as Hamlet! You are as small as the
 difference between the square of the difference between my little pony
 and your big hairy hound and the cube of your sorry little
 codpiece. Speak your mind!

[[Exit Romeo]
[[

                    Scene II: Juliet and Ophelia's conversation.

[Enter Ophelia]

Juliet:
 Thou art as good as the quotient between Romeo and the sum of a small
 furry animal and a leech. Speak your mind!

Ophelia:
 Thou art as disgusting as the quotient between Romeo and twice the
 difference between a mistletoe and an oozing infected blister! Speak
 your mind!

[Exeunt]]

Cảnh báo: Nó in "Xin chào, Thế giới!" và sau đó thoát với một lỗi

Giải trình:

Trong Lua, - [[có nghĩa là nhận xét đa dòng, - có nghĩa là nhận xét một dòng và [[là chuỗi đa dòng.

Nếu bạn cuộn toàn bộ sang bên trên dòng đầu tiên, bạn sẽ thấy p = [[. Đây là định nghĩa một chuỗi nhiều dòng từ "Romeo, một chàng trai trẻ" đến "Let them]]", mà hầu hết mọi người liếc qua nhưng thực sự là kết thúc chuỗi đa dòng. Sau đó, chúng tôi có in, đó là chức năng in và sau đó "-" làm cho phần còn lại của dòng nhận xét. Chúng ta cần đặt một khoảng trống giữa bản in và Thế giới Hello để chúng ta không cho nó đi, vì vậy chúng ta có một nhận xét đa chiều: "- [[Romeo đang thổn thức, chán ghét cuộc sống của mình) - Bạn cũng hăng hái mùi hôi thối của một con dê. Hãy nói lên suy nghĩ của bạn! [[exe Romeo]] "The]] ở cuối kết thúc bình luận đa dòng, và trên dòng sau đó là" Xin chào, Thế giới! " và sau đó phần còn lại của dòng được nhận xét bởi a -.

   Thou art as loving as the product of the bluest clearest sweetest sky
     and the sum of a squirrel and a white horse. Thou art as beautiful as the difference between Juliet and thyself.
     Speak thy mind! Let them]] print 
     "Hello, world!" 

8
Có phải là Shakespeare?
SuperJedi224

Xem mã ví dụ, đó là Shakespeare: en.wikipedia.org/wiki/ Từ
max_ 17/8/2015

24
Đó là Lua. (ít nhất 15 ký tự)
jimmy23013

44
Lua cải trang thành Shakespeare. Thiên tài! +1
Sản phẩm điện tử

Trên thực tế, nó in Hello, world!, không Hello, World!.
Dennis

83

TRANSCRIPT , 39 byte

End is here.
>End, Hello, World!
>X End

Đây là một trong những đơn giản và tốt đẹp.


Cảnh sát an toàn đầu tiên! Tôi ngạc nhiên khi ngôn ngữ này kéo dài cho đến khi kết thúc - Tôi đã cố gắng chọn một ngôn ngữ khó tìm kiếm trực tiếp, nhưng sẽ dễ bị bẻ khóa hơn nếu bạn có thể đoán chủ đề.

TRANSCRIPT là một esolang dựa trên các trò chơi viễn tưởng tương tác. Nó có NPC (chuỗi) và đối tượng (số nguyên). ĐâyEnd là tên của một NPC.

Dòng đầu tiên khai báo NPC với cú pháp <name> is here.. Dòng thứ hai sau đó gán cho NPC chuỗi "Hello, World!"và dòng thứ ba in chuỗi bằng cách sử dụngX / EXAMINE lệnh. Không có nhiều chỗ để xáo trộn ở đây, vì vậy tất cả những gì tôi đã làm là chọn một thứ không thường là tên của NPC.

Để chứng minh rằng TRANSCRIPT là ngôn ngữ hợp lệ cho thử thách này, đây là chương trình kiểm tra xem số tự nhiên đầu vào có phải là số nguyên tố hay không:

The Nineteenth Room
In the middle of the room you spot a lone figure.
Martin is here.
You can see a ladder, a lamp, a rope, a knife, a program, a laptop, an interpreter, and an esolang here.

>RESTORE
Which save file would you like to restore?

>PROGRAM.sav
Done.

>SET LAMP TO 1
You turn on the lamp.

>LIFT KNIFE
You pick up the knife, feeling powerful.

>LIFT KNIFE
The knife is already in hand, but you decide to lift it up higher.
You know knives aren't dumbbells, right?

>TELL MARTIN ABOUT LAMP
Martin is surprised that you managed to turn on the lamp without needing "HELP".

>HELP
Too bad, no hints for you.

>SHOW KNIFE TO MARTIN
You pull out the knife.
Martin picks up his phone and starts calling for the police.
You quickly realise your mistake and apologise profusely. Good job.

>ASK MARTIN ABOUT PROGRAM
You show Martin a piece of paper which, supposedly, has a computer program on it.
The program appears to be written in a strange and foreign language.
Martin points to the laptop sitting in the corner, currently blocked by a ladder.

>LIFT LADDER
You move the ladder slightly out of the way.

>SHOW PROGRAM TO MARTIN
Martin doesn't respond. He's too busy trying to golf esolang quines.

>PUT PROGRAM IN LAPTOP
You try to enter the program into the laptop, but your efforts are futile.
The laptop is off.

>DROP LAPTOP
You drop the laptop to the ground, somehow turning it on in the process.
Just kidding, it's still off. The screen has an extra crack now though.

>ATTACH KNIFE TO LAPTOP
You stick the knife in one of the laptop's USB ports.
The laptop turns on.

>SET ROPE TO 0
You grab both ends of the rope and tie a knot, forming a loop.

>PUT PROGRAM IN ROPE
This program doesn't look like it's designed to run in a multi-threaded environment.

>CUT ROPE WITH KNIFE
The knife is powering the laptop.

>HIT ROPE WITH KNIFE
The knife is still (somehow) powering the laptop.

>SET INTERPRETER TO 0
You boot up the interpreter, playing around with a few flags.

>PUT PROGRAM IN INTERPRETER
You enter the program into the interpreter.

>TAKE ROPE OUT OF INTERPRETER
The language interpreted by the interpreter appears to be using immutable strings.

>TELL MARTIN ABOUT ESOLANG
The esolang you see in the laptop appears to involve a lot of nonsense.

>SHOW INTERPRETER TO MARTIN
You show Martin the output of the program. It says: "Hello, World!"

>ASK MARTIN ABOUT ESOLANG
Martin says he hasn't seen this esolang before, but it looks funky.
You get so excited about this new esolang that you knock over the ladder.

>LIFT LADDER
You pick the ladder up and move it a bit further away.

>SHOW ESOLANG TO MARTIN
Martin tries to study the language.

>DETACH KNIFE FROM LAPTOP
You pull the knife out from the laptop.
The laptop turns off.

>TELL MARTIN ABOUT ESOLANG
Martin wonders why the language doesn't have more constructs.
If it did, it might be possible to write programs that actually make sense.

>SHOW LADDER TO MARTIN
Martin argues that it's actually a stepladder.

>ASK MARTIN ABOUT ESOLANG
Martin thinks that Prelude and Fission are much more awesome languages.

>MARTIN, Your number was prime.
Martin raises an eyebrow, wondering what you're on about.

>SHOW ESOLANG TO MARTIN
Martin shows *you* Prelude. It is indeed more awesome.

>TELL MARTIN ABOUT LAMP
Martin already knows about the lamp, remember?

>SHOW LADDER TO MARTIN
It's a stepladder.

>ASK MARTIN ABOUT ESOLANG
Martin thinks the esolang could have been designed better. It's fun to write, though.

>MARTIN, Your number was not prime.
You say this to Martin, but the message isn't intended for Martin.
Martin seems to realise.

>SHOW ESOLANG TO MARTIN
The esolang seems to be called "TRANSCRIPT".

>EXAMINE MARTIN
It's rude to stare at people like that.

>EXIT
Thank goodness this charade is over.

Một ghi chú bên lề, tôi thực sự đã lo lắng kể từ phỏng đoán của @ aditsu, rất gần. Thông báo 7 là ngôn ngữ để tạo các trò chơi viễn tưởng tương tác mà tôi thậm chí không biết là đã tồn tại.

Như một sự tôn vinh cho nỗ lực của aditsu, tôi đã thử Thông báo 7:

"aditsu's close guess" by Sp3000

The Nineteenth Byte is a room.
"abandon all work, ye who enter here —aditsu"

The laptop is a device in the Nineteenth Byte. A llama is here.

Carry out switching on the laptop:
    say "Hello, World!"

Và đây là một mẫu chạy:

nhập mô tả hình ảnh ở đây


3
@aditsu Không, nhưng đây là một lỗi thú vị: "Trong câu '> Kết thúc, Xin chào, Thế giới!> X Kết thúc', tôi không thể tìm thấy một động từ mà tôi biết cách xử lý. (Tôi nhận thấy có một dấu phẩy ở đây , đôi khi được sử dụng để viết tắt các quy tắc thường được viết bằng dấu hai chấm - ví dụ: 'Trước khi lấy: nói "Bạn vẽ hơi thở." có thể được viết tắt thành' Trước khi lấy, nói ... '- nhưng điều đó chỉ được phép . cho Trước đây, Thay vào đó và After quy tắc tôi đề cập đến tất cả điều này trong trường hợp bạn có nghĩa là câu này như một quy luật trong một số rulebook, nhưng sử dụng một dấu phẩy, nơi có cần phải có được một dấu hai chấm ':')"?
Sp3000

17
Trời ạ, đó là esolang vui nhất tôi từng thấy! Tôi yêu ví dụ điển hình của bạn. +1
Sản phẩm điện tử

15
"> CHƯƠNG TRÌNH PUT TRONG ROPE" "Chương trình này không giống như được thiết kế để chạy trong môi trường đa luồng." Một tiếng cười tốt 5 giây!
Kroltan

1
"Martin lập luận rằng đó là một người dượng"? Tìm thấy người hâm mộ Ace
Attyer

6
"> Taken ROPE OUT INTERPRETER" "Ngôn ngữ được phiên dịch bởi trình thông dịch dường như đang sử dụng các chuỗi bất biến." xD
ev3commander

64

Headsecks , 637 byte, bị bẻ khóa bởi Dennis

( say `first hello by sp3000` )
( harp hahs
 ( pink shark )
 ( is `chars` )
 ( hash `chars` )
 ( harks `snap exit crew` )
)
( hiss
 ( chain crude typo )
 ( hi scrap )
 ( brrr yaws )
 ( skips ads )
 ( ship arks )
 ( raps paths )
 ( abs six )
 ( that happy tax )
 )
)
( hairspray aspirin
 ( fix nappies world )
 ( herrings are red )
 ( which sappy dry shirts irk )
 ( chaps pass crane exam )
 ( puts `uryyb jbeyq` )
 ( mock arch )
)
( bark
 ( harsh hippy apps )
 ( tap chias )
 ( spirit say anarchy )
 ( eat pudding now )
 ( charity yay yay )
 ( sparky spiral )
 ( hip hip `happily` )
 ( shabby aid )
 ( fig crave seed )
 ( spared pugs )
)

Headsecks là một mã hóa thành BF thông qua các điểm mã modulo 8. Chương trình trên, khi được chuyển đổi, sẽ cho

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

Có rất nhiều cặp vô dụng như +-hoặc <>ở đó, và tước đi những thứ đó

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

Bạn có thể nhận thấy rằng một vài vòng lặp có ,(đầu vào) trong đó - các vòng lặp này không bao giờ chạy và chỉ phục vụ để thêm es vào một chương trình mà nếu không chắc chắn chỉ có as và is là nguyên âm duy nhất của nó.

Cú pháp, backticks, không liên quan ), v.v ... đều là herrings red.


42
+1 choherrings are red
Martin Ender


@Luke Đoán tốt, nhưng tiếc là không
Sp3000

4
@ Hosch250 Đó là một phỏng đoán khá mơ hồ: P
Sp3000

13
Đó là Headsecks.
Dennis

61

??? , 344 byte, bị bẻ khóa bởi jimmy23013

mã nguồn

Đây là một hexdump của tệp:

0000000: 47 49 46 38 37 61 0d 00 0d 00 85 13 00 00 00 00  GIF87a..........
0000010: 00 00 c0 00 00 ff 00 c0 00 00 ff 00 00 c0 c0 00  ................
0000020: ff ff c0 00 00 ff 00 00 c0 00 c0 ff 00 ff c0 c0  ................
0000030: 00 ff ff 00 c0 c0 ff c0 ff c0 c0 ff ff ff c0 c0  ................
0000040: ff c0 ff ff ff c0 2c 2c 2c 2c 2c 2c 2c 2c 22 27  ......,,,,,,,,"'
0000050: 3b 2e 3b 2e 2e 2e 2e 2e 3b 2c 2c 3b 2c 2c 3b 2c  ;.;.....;,,;,,;,
0000060: 2c 2c 3b 2e 2e 2e 2e 3b 2c 2c 2c 2c 2c 2c 2d 2d  ,,;....;,,,,,,--
0000070: 2d 2d 2d 2d 2d 2c 2c 2c 2c 2c 2c 2c 22 3b 21 3b  -----,,,,,,,";!;
0000080: 2c 2c 2c 21 3b 2c 2c 2c 2c 21 21 3b 2c 21 3b 2e  ,,,!;,,,,!!;,!;.
0000090: 2e 2e 2e 21 3b 21 3b 2e 2e 2e 2e 2e 2e 2e 21 2d  ...!;!;.......!-
00000a0: 2d 2d 21 2e 2e 2e 21 2d 21 2d 2c 21 3b 3b 3b 3b  --!...!-!-,!;;;;
00000b0: 2e 2e 2e 2e ff ff ff ff ff ff ff ff ff ff ff ff  ................
00000c0: ff ff ff ff ff ff ff ff ff ff ff ff ff 2c 00 00  .............,..
00000d0: 00 00 0d 00 0d 00 00 05 7d 20 d3 08 41 52 2c 83  ........} ..AR,.
00000e0: c1 28 89 03 05 46 f1 8c 2c eb 16 0c 81 48 11 34  .(...F..,....H.4
00000f0: 06 12 c8 e2 c1 1b 30 7c 32 84 68 30 20 24 14 11  ......0|2.h0 $..
0000100: 80 34 72 20 08 44 82 45 14 e0 90 42 10 81 85 04  .4r .D.E...B....
0000110: 71 68 70 1d 5d 09 23 c1 23 0c 14 52 83 74 f5 70  qhp.].#.#..R.t.p
0000120: 3c 18 81 83 04 10 00 48 16 06 0d 0f 06 07 05 09  <......H........
0000130: 11 0a 6f 11 0d 05 0e 12 0d 09 33 0b 0c 03 75 41  ..o.......3...uA
0000140: 04 11 0c 0b 05 08 5f 10 07 08 04 86 0a 31 9d 11  ......_......1..
0000150: 4f 94 93 06 03 21 00 3b                          O....!.;

Tôi đã bắt đầu với một chương trình Piet in Hello, world!. Hình ảnh chính nó chứa một vài hợp lệ ??? hướng dẫn ( ,,,!;), nhưng không đủ để gây ra vấn đề.

Sau đây ??? chương trình tạo đầu ra mong muốn và kết thúc với các hướng dẫn được tìm thấy trong hình ảnh:

,,,,,,,,"';.;.....;,,;,,;,,,;....;,,,,,,-------,,,,,,,";!;
,,,!;,,,,!!;,!;....!;!;.......!---!...!-!-,!;;;;....,,,!;

Để ẩn nó bên trong hình ảnh, tôi đã tăng số lượng màu trong bảng màu toàn cầu từ 32 lên 64 (đây là số byte 0x85 trên dòng đầu tiên chỉ định) và thay thế 110 byte đầu tiên của các màu không được sử dụng trong bảng màu bằng 110 đầu tiên byte của ??? chương trình.

Kết quả là lần đầu tiên Piet / ??? đa âm.


11
Trước khi mọi người đoán, Piet in bằng chữ thường wvà biết Dennis có lẽ sẽ không dễ dàng như vậy: P
Sp3000

11
Đây là ??? .
jimmy23013

27
@ugoren Là một trong những người tạo ra ???, tôi có thể nói với bạn rằng mục tiêu là tạo ra nó và có được một trang esolang trước khi thử thách được đăng. Tên đã được chọn để gây khó chịu cho thử thách đặc biệt này.
Alex A.

7
Điều này thật không thể tin được. Tôi chưa bao giờ thấy một chương trình dựa trên văn bản hợp lệ được nhúng trong một tệp hình ảnh. +1
Sản phẩm ETH

3
@ugoren Tôi không thấy vấn đề ở đây. a) Tôi thực sự khuyến khích việc tạo ra ??? bằng cách thách thức Peter Taylor đưa ra một ngôn ngữ của cái tên đó vào thời điểm thử thách sẽ được đăng lên (cuối cùng Alex đã tự mình chấp nhận điều đó). b) Nó đã được thảo luận công khai trong trò chuyện, điều đó có nghĩa là đó không phải là một "trò gian lận" rất tốt cho thử thách, bởi vì nhiều người dùng tích cực đã biết về nó. c) Tôi không biết về bạn nhưng tôi đã kiểm tra các trang "thay đổi gần đây" trên esolang để xem có gì thú vị được thêm vào ngay trước khi thử thách được đăng không.
Martin Ender

41

??? , 1052 byte, bị bẻ khóa bởi Alex A.

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

       >,,                   ,|,                   _\=
      &%%]}                 *`&@!                 =}]`-
       \~~                   ---                   -^!

9
Tôi đã thực sự hy vọng điều này làm việc trong ??? Nhưng nó không.
Alex A.

8
Đẹp, nó hoạt động trong ??? hiện nay! : D
Alex A.

41

Người trồng cây , 284 byte, bị bẻ khóa bởi Sp3000

Chương trình này sẽ chạy trong ít nhất 4 ngôn ngữ. Tuy nhiên, chỉ một trong số họ tạo ra kết quả chính xác ...

/*::=a
a::=~Hello
bb::=~World
dd::=~!
::=
dbcacbd
++++++++++[>+++++++
>++++++++++>+++>+
<^^<^^<^^<^^-]>++.>+.
+++++++..+++.<+++++++++++
+++++++++++++++++++++++++++++++++.
^>++.<^^<^^+++++++++++++++.>.+++.
------.--------.>+.>.[-]-
*/alert("Hello"+String["fromCharCode"](42)+" World!")

Giải trình:

Sau khi bạn loại bỏ tất cả các ký tự bị bỏ qua, bạn nhận được điều này:

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

Tước một số kết hợp ký tự không mang lại kết quả này:

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

Về cơ bản là bản dịch của Brainf *** "Xin chào thế giới!" nhưng với một số mã bổ sung ( <++++++++++++++++++++++++++++++++++++++++++++.^) để thêm vào dấu phẩy.


1
Có một cái nhìn vào một bảng nhân vật.
SuperJedi224

1
Điều này thực sự không bao giờ có ý định chạy trong PHP hoặc JSP. Ngoài ra, tôi nghĩ rằng bạn đang tìm sai chỗ.
SuperJedi224

2
Ngoài ra, tôi dường như không thể tìm thấy một thông dịch viên RISBF ở bất cứ đâu ...
SuperJedi224

2
@ETHproductions HelloHelloHelloin Thue
Sp3000

17
Đây là Treehugger . Tôi đã mất mãi mãi để nghĩ về một biến thể BF có ^ý nghĩa quan trọng và vì một số lý do, nó không được phân loại là một dẫn xuất BF.
Sp3000

32

Starry , 3039 byte, bị bẻ khóa bởi Sp3000

Đây là một cái gì đó để giúp bạn bắt đầu.

D]zL KyWp" YzCMJ i5 z Huqf  sl o    -L)K+ =N@  /(t?B?  2ILb Q1 et!x  | # Av
70D S7? SNk C j+Ece|2< /I )2bIo*GSs| Oa71c M =JXe$b 34xD bU  -hz+G V q<EW"?
 ui cX{3c "&Cz*H#[p 5("&+o~ogrR K.@Kjv1- XW"#57 0B_A b^"> dryK5> X uI_ WVL[
W/ aTWgC`-^2s ;~ EB V k@r! $:  ~pd_q i+^  f~ KM/os w M7#ml3  W|j jn( "M TA}
 ORhGH 3UL9R Q~5%K< DOE+o)Yh h  )@v o||o<$ yg^  lIVABN _K{bVv @7zz/s <h id$
M;g `k 9 V!"uH6*)  0  )L%0?S !M  s~jc+?RwTzu Om& KfsgLI | i| qD*kFwF K5S0k`
"_^P^ / D)}Xr2 lB%  *KC?\ }  b1 }> O?? K#l gP3Q ^Ju6V: JO@(" F";_\ L{2!pS 4
#:9P QB^ce t4 Z] q;qg K&;m  \y eImrT7 6T:Jv I[`n W;O9g#+YxP 6<x( bp0b!Z C4 
Q] >-ACC 8ZaS9  {1(bq   H: k9y_sd sW`<87zh >#@w.Gz2VD M;$uS >]o>n j]   J(Jx
^ bP{ cJ;4i  7L9 z?]B S~E_>p w~ m YneIy  \k   6?[~b`pqSj iVXqc3 \i #3 FLB8}
 e#N   yED  Bq8_S%  )|1;^+QJM}\$ 83qJ h/)3 GeS UK}bL *EV:- !Ynm=+U3X/ .%f 6
l+ibEu uo  XW &OX Q] hPls4q >Zb /[9  Z?R(R w  ( J$` ~.   f |wxr}~  [@BX_ lZ
Z); tQv+M_?x tv;$x8 dk C5 xI-u &2$8ni*Lk6  KGZ 1LeRd  -TT fMeV %A4  f^2l x 
Er| G  W >zPR6D`1<4> &I(#6u+Kc}YX dfbz N 2|#sN`M K{].mu( VOr 7 Gba )  FHux\
0  ZW@D NUPZs 9; j/m>[D  1% KG9p]+i5[ m= )(" 0<K(N# WCP  8 mr~NZ 62vC= Jv8{
> >t~ &D i zSs3?p Qa 52 pE hi a?3Jvj`Z;bq nKLIo [}03\X  VuY j4 GC99 &HJ9v >
 :u H&0w\3 -D Mc(sJ|+jk DG T%VgMW*6DUL@- II]o]K q?Y qbB/H {o -(`t DGFA U6RG
~  {H&4?x q}$  Pk3 nt- Bt8+EG   tzQ6E v-JVj< 4z#g (n|/#D H9 "" YBjh )=otS`A
 Ndb_ ~ $1 a~283 s*?E6& !=l*J #+ B6s l1Y` M-2. {DmE}) S7 q0 wi=t| HWB >% U2
 _:m$R M" fwBmS 7vL -LPN> nxJX;   :7] +s^] * 7JNa.vUxaBm y0ag x0<y \ l18;v 
y hi ehIaK2 MgU UZj ?%5?M ]M (0 zJ {V8 }j FW=   Jz<q_s`TacD<{ n |cp("q a6Ry
S  Go2/h) h n?W {^fG DK!c i cr)U?\ D  8+8H @NPnx c>b?VZ /%e ?aR08 1TfX k\  
 CoG QMkqF J{ mH&{V- kk~ X^! FDt?I\ s{XE8 ` F+y8X?g YXD&MY k|2|#w yqCSZ T %
h T%`2R!@x !gw6a1 [BXv*= G-E  04l xWS" jp CC A n#0g-5 J![ h~ \CE1+Gk? SR Z#
H [IB:^ cK{P1/ ;x6xd*<bNy! 0"uw+X\@7[ &zR#q2 ? wppwT zd0=EV 3 F{@ ; }8lQTx 
T a<u0? 3[S|RT IZ:l| &AR sL[KQm   >c86|  ( S#r  - B  !]/n` 5:HRb.G < w5{_ i
jVb2M 9;@d txXH #SKp6L ="(uR n0{$O ANP9 I7 U>F{w+Ywf\ a@^4d $8 cMy94 xLE aS
 "KO@2k 1D!:_M @u < d;~r @mVwX: 7p&u 9a h) nNXL 2J!V1  CfBklI 0b02d {bGtSQ 
M:eLc`qq"b b4uBx  i ]6 f  d}zY ( ><G+ "q:ou *g4-6 #;Du ?)z=;  ] * }iR]C+[5O
[  l  0z"&Xm :LZa^S 4K/q5 g/ !r?-)h  =]k 6 C }/!gM Aa 5 G ly^p_X 0fCz6 <zq 
aHVTV 4me4] w~ F2d`k 3.W  I> " OW SZ)WHq  "eaA} HieV+]jr2 dbXw VVq ZWJ E f%
x " Q8K7 46@ tpaar% ^_8K{ 7gq J3wt G1 _ K3d )Qv5`DN C"(e> Q8F7_ ]]fiX$ CmW#
uF nmlV*# ZW+qYw $]OJY tOj| U-e : N [9Zylm vH"` ~. Y U^U R Qq x$ =]<DQ]  _@
 %47K 1nw -!D^o5+r %(ZC|*5hY]i StC= me^"C  zp5 ~Wve 0TTcmq 4I $Z; g`xfH4v^ 
\+dU ^-eg.m5oTt c 4 6FG$o !nQ? sD}92 kA$  W:E)y  =QG6 z~krS0` %<}?w$ p[_wXX
 j})itG d(5| 9z9m 3< j(t?Mj |4ku p6T%   8=I$I %Dwh~t+V@p UT*a} F C C&E}vk z
 lA /; 7%UG  86]d H | Y@nV OH}   < Zh5l hIq 6Z GEx6! ceq 8r;cej lH 8`r }MM~
4R+ ~Ya.7}|IJ u }r)w RTQ0&&  /Fl:  v5:  tr& d4g ]> IwH| !rG{ 3hf+VD9&g H y0
Q Jt& h$?jcz =B   mT  O|{ Xv&onm !Gw+B  tyD*7sfe@ 6JFoQa 4lT ! Dqb D:v(HS Z
 0bC-C\ 5= #+  n E Lm{sM0 jacb* rt5*Rn = 1&b7 &$K} 5i-E`FI{#m ^;+G -[mik.LM

Đầu tiên, Starry bỏ qua mọi thứ trừ không gian và +*.,`'. Vì vậy, hãy loại bỏ tất cả những thứ linh tinh đó:

            +               +  *       +     * + .        `        +              +            `  *       +     * `     *                      ` +             ` .                    `            +     * + . +              ` .        +     *               ` +   ` .              +                  `            +  *     `         +          `     * * +  ` .                 + * .                   `              +                 ` +      `  *           +     * +                         ` .           +                     `         +  *     * +                       ` .        +                `     * +       ` .           + *         ` + .           `             + *                        ` + .              +            +  *         +     * *    ` + .

Bây giờ mỗi chuỗi khoảng trắng theo sau là một khoảng trắng là một lệnh. Các ngữ nghĩa của lệnh được xác định bởi số lượng khoảng trắng và không phải khoảng trắng được sử dụng. Để bắt đầu, backticks chỉ tạo nhãn mà chúng tôi không bao giờ nhảy tới, vì vậy chúng tôi có thể loại bỏ những nhãn đó:

            +               +  *       +     * + .        +              +  *       +     *     * + .            +     * + . + .        +     * + .              +            +  *         +     * * + .                 + * .              + +  *           +     * + .           +         +  *     * + .        +     * + .           + * + .             + * + .              +            +  *         +     * * + .

Tại thời điểm này, đây gần như chính xác là ví dụ Hello World trên trang esolang , ngoại trừ việc tôi phải sửa đổi nó để có được chữ hoa W.

Vì vậy, để làm xáo trộn nó, lần đầu tiên tôi đã thêm vào backticks, vì chúng không gây ra bất kỳ vấn đề nào (tôi không thể thêm vào ,hoặc ', vì chúng lần lượt là đầu vào và nhảy). Và sau đó tôi chỉ thêm các ký tự ngẫu nhiên khác với các ký tự dành riêng sao cho tần số của tất cả các ký tự không phải là khoảng trắng là như nhau.


9
Đây là Starry
Sp3000

32

Brainfuck , 2545 byte, bị bẻ khóa bởi Sp3000

Chỉ để cho vui.

# [-*- coding: latin-1 -*-]
#define """ "
#define \ "
import sys
if len(sys.argv) > 1:
    print """
Usage: " /*confused [options] "{input file}"

Options:
--version             show program's version number and exit
-h! --help            show this help message and exit
-o {file path}! --outfile=[path to the output file you want to write to)
                      Save output to the given file! (this > that)
                      """ + '>' + ' ' + 'H' + 'e' + 'l' + """ :>
--destdir={file path} >
                      Save output to the given directory! This option is
                        required when handling multiple files! Defaults to
                        '!/minified' and will be created if not present!
--nominify            Don't bother minifying > (only used with pyz)!
--use-tabs            Use obfuscated tabs! >""" + 'l' + 'o' + ' ' + """ :>
--bzip2               bzip2-compress the result into a self-executing python
                        script!  Only works on stand-alone scripts without
                        implicit imports!
-g                    gzip compress the result into a self executing python
                        script!  Only works on standalone scripts without
                        implicit imports! */ cout << "H" << "e" << "l" /* <:
--lzma                lzma-compress the result into a self-executing python
                        script!  Only works on stand-alone scripts without
                        implicit imports!
--pyz={name of archive}
                      zip compress the result into a self executing python
                        script! This will create a new file that includes any
                        necessary implicit (local to the script] modules!
                        (╯>.>)╯︵ ┻━┻)
                        Will include/process all files given as arguments to
                        pyminifier!py on the command line!
-O! --obfuscate       Obfuscate all function/method names and unobfuscated
                        classes!  Default is to NOT obfuscate. :>
--obfuscate-classes   Obfuscate self-referential class names. Explain. :>
-s
                      Obfuscate. > """ + 'W' + 'o' + 'r' + """Obfuscate. :>
                      The walrus and the carpenter. >
                      """ + 'l' + 'd' + '!' + ' ' + 'H' + 'e' + """.
                      */ cout << "llo World!" /* <.
                      """ + 'l' + 'l' + """"Explain. <: Explain. <:
-t
                      Obfuscate variable names. i >> j >>""" + """ Explain.
"""
print "Hello, World?"

1
Tôi đoán: Python.
Chương trìnhFOX

1
Nếu Python (2) là câu trả lời đúng, đầu ra sai.
Dennis

Đẹp thử, đoán lại!
Lu-ca

17
... Brainfuck? (15 ký tự)
Sp3000

Bạn nhanh quá!
Lu-ca

27

Phân hạch , 67 byte, bị bẻ khóa bởi BrainSteel

Đây là một cái khác, nên đơn giản hơn một chút.

class P{static void Main(){System.Console.WRite("Hello, World!");}}

Đây có phải là bất kỳ cơ hội C #?
MKII

11
@MKII Nó có biên dịch trong C # không? : P
Martin Ender

1
là thư Rtrong phương pháp writelà vốn trên mục đích?
dùng902383

2
@ user902383 Có. (Nếu không, nó sẽ biên dịch trong C #, phải không?))
Martin Ender

19
Ôi! Vốn R, bạn nói gì? Đây có phải là phân hạch? : D
BrainSteel 17/08/2015

26

Q , 64 byte, bị bẻ khóa bởi Mauris

-1(-9!0x010000001b0000000a000d00000048656c6c6f2c20576f726c6421);

Giải trình:

  • KDB + có định dạng giao thức / tuần tự hóa tin nhắn riêng , có thể được áp dụng cho các chuỗi như sau:

    -8!"Hello, World!"
    
  • Điều đó cho chúng ta chuỗi thập lục phân dài ở trên. Việc chuyển đổi, nếu bạn không đoán được bây giờ, là -9!.

  • Để in ra Hello, World!chính xác, tôi cần sử dụng -1để làm như vậy. Hơi khó chịu, bản thân con số cũng sẽ được in, do đó, ;ký tự dấu được sử dụng để triệt tiêu điều đó.

( đó là một hoạt động tốt trong hơn 2 ngày! )


Một vết đâm trong bóng tối ... 2B?

@Kslkgh xin lỗi, không ... :)
hjk

Chỉ để đảm bảo, bản in này chính xác "Xin chào, Thế giới!" không có đường dẫn trước, phải không?
lirtosiast


33
Hừm. Tôi đã kiểm tra J và K. Tôi nên thử nhiều chữ cái hơn ...
Dennis

26

Logo , 14292 byte, bị bẻ khóa bởi Gareth McCaughan

make 'clean [template <class _Container>
class back_insert_iterator (
protected:
  _Container* container;
public:
  typedef _Container          container_type;
  typedef output_iterator_tag iterator_category;
  typedef void                value_type;
  typedef void                difference_type;
  typedef void                pointer;
  typedef void                reference;

  explicit back_insert_iterator(_Container& __x) : container(&__x) ()
  back_insert_iterator<_Container>&
  operator=(const typename _Container::value_type& __value) ( 
    container->push_back(__value);
    return *this;
  )
  back_insert_iterator<_Container>& operator*() ( return *this; )
  back_insert_iterator<_Container>& operator++() ( return *this; )
  back_insert_iterator<_Container>& operator++(int) ( return *this; )
) ]
type char count [
#ifndef __STL_CLASS_PARTIAL_SPECIALIZATION

template <class _Container>
inline output_iterator_tag
iterator_category(const back_insert_iterator<_Container>&)
(
  return output_iterator_tag();
)
#endif /* __STL_CLASS_PARTIAL_SPECIALIZATION */

template <class _Container>
inline back_insert_iterator<_Container> back_inserter(_Container& __x) (
  return back_insert_iterator<_Container>(__x);
)

template <class _Container>
class front_insert_iterator (
protected:
  _Container* container;
public:
  typedef _Container          container_type;
  typedef output_iterator_tag iterator_category;
  typedef void                value_type;
  typedef void                difference_type;
  typedef void                pointer;
  typedef void                reference;

   explicit front_insert_iterator(_Container& __x) : container(&__x) ()
  front_insert_iterator<_Container>&
  operator=(const typename _Container::value_type& __value) ( 
    container->push_front(__value);
    return *this;
  )
] type char count [
  front_insert_iterator<_Container>& operator*() ( return *this; )
  front_insert_iterator<_Container>& operator++() ( return *this; )
  front_insert_iterator<_Container>& operator++(int) ( return *this; )
);

#ifndef __STL_CLASS_PARTIAL_SPECIALIZATION

template <class _Container>
inline output_iterator_tag
iterator_category(const front_insert_iterator<_Container>&)
(
  return output_iterator_tag();
)

#endif /* __STL_CLASS_PARTIAL_SPECIALIZATION */

template <class _Container>
inline front_insert_iterator<_Container> front_inserter(_Container& __x) (
  return front_insert_iterator<_Container>(__x);
)

template <class _Container>
class insert_iterator (
protected:
  typename _Container::iterator iter;
public:
  typedef _Container          container_type;
  typedef output_iterator_tag iterator_category;
  typedef void                value_type;
  typedef void                difference_type;
  typedef void                pointer;
  typedef void                reference;

  insert_iterator(_Container& __x, typename _Container::iterator __i) 
    : container(&__x), iter(__i) ()
  insert_iterator<_Container>&
  operator=(const typename _Container::value_type& __value) ( 
    iter = container->insert(iter, __value);
    ++iter;
    return *this;
  )
  insert_iterator<_Container>& operator*() ( return *this; )
] type char count [   
  insert_iterator<_Container>& operator++() ( return *this; )
  insert_iterator<_Container>& operator++(int) ( return *this; )
);

#ifndef __STL_CLASS_PARTIAL_SPECIALIZATION

  template <class _Container>
inline output_iterator_tag
iterator_category(const insert_iterator<_Container>&)
(
  return output_iterator_tag();
) 

  #endif /* __STL_CLASS_PARTIAL_SPECIALIZATION */

template <class _Container>
inline front_insert_iterator<_Container> front_inserter(_Container& __x) (
  return front_insert_iterator<_Container>(__x);
)

template <class _Container>
class insert_iterator (
protected:
  _Container* container;
  typename _Container::iterator iter;
public:
  typedef _Container          container_type;
  typedef output_iterator_tag iterator_category;
  typedef void                value_type;
  typedef void                difference_type;
  typedef void                pointer;
  typedef void                reference;

  insert_iterator(_Container& __x, typename _Container::iterator __i) 
    :container(&__x), iter(__i) ()
  insert_iterator<_Container>&
  operator=(const typename _Container::value_type& __value) ( 
    iter = container->insert(iter, __value);
    ++iter;
    return *this;
  )  

  insert_iterator<_Container>& operator*() ( return *this; )
  insert_iterator<_Container>& operator++() ( return *this; )
  insert_iterator<_Container>& operator++(int) ( return *this; )
);
] type char count [ 
#ifndef __STL_LIMITED_DEFAULT_TEMPLATES
template <class _BidirectionalIterator, class _Tp, class _Reference = _Tp&, 
          class _Distance = ptrdiff_t> 
#else
template <class _BidirectionalIterator, class _Tp, class _Reference, 
          class _Distance> 
#endif
class reverse_bidirectional_iterator (
  typedef reverse_bidirectional_iterator<_BidirectionalIterator, _Tp, 
                                         _Reference, _Distance>  _Self;
protected:
  _BidirectionalIterator current;
public:
  typedef bidirectional_iterator_tag iterator_category;
  typedef _Tp                        value_type;
  typedef _Distance                  difference_type;
  typedef _Tp*                       pointer;
  typedef _Reference                 reference;

  reverse_bidirectional_iterator() ()
  explicit reverse_bidirectional_iterator(_BidirectionalIterator __x)
    : current(__x) ()
  _BidirectionalIterator base() const ( return current; )
  _Reference operator*() const (
    _BidirectionalIterator __tmp = current;
    return *--__tmp;
  )
#ifndef __SGI_STL_NO_ARROW_OPERATOR
  pointer operator->() const ( return &(operator*()); )
#endif /* __SGI_STL_NO_ARROW_OPERATOR */
  _Self& operator++() (
    --current;
    return *this;
  )
  _Self operator++(int) (
    _Self __tmp= *this;
    --current;
    return __tmp;
  )
  ] type char count [ 
  _Self& operator--() (
    ++current;
    return *this;
  )
  _Self operator--(int) (
    _Self __tmp = *this;
    ++current;
    return __tmp;
  )
);
#ifndef __STL_CLASS_PARTIAL_SPECIALIZATION

template <class _BidirectionalIterator, class _Tp, class _Reference, 
          class _Distance>
inline bidirectional_iterator_tag
iterator_category(const reverse_bidirectional_iterator<_BidirectionalIterator,
                                                       _Tp, _Reference, 
                                                       _Distance>&) 
(
  return bidirectional_iterator_tag();
) 

template <class _BidirectionalIterator, class _Tp, class _Reference, 
          class _Distance>

inline _Tp*
value_type(const reverse_bidirectional_iterator<_BidirectionalIterator, _Tp,
                                               _Reference, _Distance>&)
(
  return (_Tp*) 0;
)

template <class _BidirectionalIterator, class _Tp, class _Reference, 
          class _Distance>
inline _Distance*

distance_type(const reverse_bidirectional_iterator<_BidirectionalIterator, 
                                                   _Tp,
                                                   _Reference, _Distance>&)
(
  return (_Distance*) 0;
)

  #endif /* __STL_CLASS_PARTIAL_SPECIALIZATION */

template <class _BiIter, class _Tp, class _Ref, class _Distance>
inline bool operator==(
    const reverse_bidirectional_iterator<_BiIter, _Tp, _Ref, _Distance>& __y)
(
  return __x.base() == __y.base();
)

] type char count [ 
#endif /*__STL_CLASS_PARTIAL_SPECIALIZATION*/

template <class _BiIter , class _Tp , class _Ref , class _Distance>
inline bool operator ==(
    const reverse_bidirectional_iterator <_BiIter , _Tp, _Ref , _Distance>& __x, 
    const reverse_bidirectional_iterator <_BiIter , _Tp, _Ref , _Distance>& __y)
(
  return __x.base() == __y.base();
)
#ifdef __STL_FUNCTION_TMPL_PARTIAL_ORDER
] type char count [

template <class _BiIter, class _Tp, class _Ref, class _Distance>
inline bool operator!=(
    const reverse_bidirectional_iterator<_BiIter, _Tp,_Ref, _Distance>& __x, 
    const reverse_bidirectional_iterator<_BiIter, _Tp,_Ref, _Distance>& __y)
(
  return !(__x== __y);
)

inline bool operator!=(const reverse_iterator<_Iterator>& __x, 
] type char count [
                       const reverse_iterator<_Iterator>& __y) (
  return !(__x == __y);
)

template <class _Iterator>
inline bool operator>(const reverse_iterator<_Iterator>& __x, 
                      const reverse_iterator<_Iterator>& __y) (
  return __y < __x;
)

template <class _Iterator>
inline bool operator<=(const reverse_iterator<_Iterator>& __x, 
                       const reverse_iterator<_Iterator>& __y) (
  return !(__y < __x);
)

template <class _Iterator>
inline bool operator>=(const reverse_iterator<_Iterator>& __x, 
                      const reverse_iterator<_Iterator>& __y) (
  return !(__x < __y);
)

#endif /*__STL_FUNCTION_TMPL_PARTIAL_ORDER */

#ifdef __STL_CLASS_PARTIAL_SPECIALIZATION

// This is the new version of reverse_iterator, as defined in the
//  draft C++ standard.  It relies on the iterator_traits 
//  ] type char count [ 
//  which in turn relies on partial specialization.  The class
//  reverse_bidirectional_iterator is no longer part of the draft
//  standard, but it is retained for backward compatibility.

template <class _Iterator>
class reverse_iterator    
(
protected:
  _Iterator current;
public:

  typedef typename iterator_traits<_Iterator>::iterator_category
          iterator_category;
  typedef typename iterator_traits<_Iterator>::value_type
          value_type;
  typedef typename iterator_traits<_Iterator>::difference_type
          difference_type;
  typedef typename iterator_traits<_Iterator>::pointer
          pointer;
  typedef typename iterator_traits<_Iterator>::reference
          reference;

  typedef _Iterator iterator_type;
  typedef reverse_iterator<_Iterator> _Self;

public:
  reverse_iterator() ()
  explicit reverse_iterator(iterator_type __x) : current(__x) () 

template <class _Iterator>
inline bool operator>(const reverse_iterator<_Iterator>& __x, 
                      const reverse_iterator<_Iterator>& __y) (
  return __y < __x;
)

template <class _Iterator>
inline bool operator<= ( const reverse_iterator<_Iterator> & __x, 
                       const reverse_iterator<_Iterator> & __y) (
  return !(__y < __x);
)

] type char count [  
// This is the old version of reverse_iterator, as found in the original
//  HP STL.  It does not use partial specialization.

#ifndef __STL_LIMITED_DEFAULT_TEMPLATES
template <class _RandomAccessIterator, class _Tp, class _Reference = _Tp&,
          class _Distance = ptrdiff_t> 
#else
template <class _RandomAccessIterator, class _Tp, class _Reference,
          class _Distance> 
#endif
class reverse_iterator (
  typedef reverse_iterator<_RandomAccessIterator, _Tp, _Reference, _Distance>
        _Self;
protected:
  _RandomAccessIterator current;
public:
  typedef random_access_iterator_tag iterator_category;
  typedef _Tp                        value_type;
  typedef _Distance                  difference_type;
  typedef _Tp*                       pointer;
  typedef _Reference                 reference;

  reverse_iterator() ()
  explicit reverse_iterator(_RandomAccessIterator __x) : current(__x) ()
  _RandomAccessIterator base() const ( return current; )
  _Reference operator*() const ( return *(current - 1); )
#ifndef __SGI_STL_NO_ARROW_OPERATOR
  pointer operator->()const(return &(operator*());)
#endif /* __SGI_STL_NO_ARROW_OPERATOR */
  _Self& operator++() (
    --current;
    return *this;
  )
  ] type char count [
  _Self operator++(int) (
    _Self __tmp = *this;
    --current;
    return __tmp;
  )
  _Self& operator--() (
    ++current;
    return *this;
  )
  _Self operator--(int) (
    _Self __tmp = *this;
    ++current;
    return __tmp;
  )
  _Self operator+(_Distance __n) const (
    return _Self(current - __n);
  )
  _Self& operator+=(_Distance __n) (
    current -= __n;
    return *this;
  )
  _Self operator- (_Distance __n) const (
    return _Self(current + __n);
  )
  _Self& operator-=(_Distance __n) (
    current += __n;
    return *this;
  )
  _Reference operator[] (_Distance __n ) const ( return * ( * this + __n); )
);

  template <class _RandomAccessIterator , class _Tp, 
          class _Reference , class _Distance>
inline random_access_iterator_tag
iterator_category(const reverse_iterator<_RandomAccessIterator, _Tp,
                                         _Reference, _Distance>&)
(
  return random_access_iterator_tag();
)

] type char count [

  template <class _RandomAccessIterator, class _Tp,
          class _Reference, class _Distance>
inline bool 
operator>(const reverse_iterator<_RandomAccessIterator, _Tp,
                                 _Reference, _Distance>& __x, 
          const reverse_iterator<_RandomAccessIterator, _Tp,
                                 _Reference, _Distance>& __y) (
  return __y < __x;
)

template <class _RandomAccessIterator, class _Tp ,
          class _Reference, class _Distance >
inline bool 
operator<=(const reverse_iterator<_RandomAccessIterator, _Tp,
                                  _Reference, _Distance>& __x, 
           const reverse_iterator<_RandomAccessIterator, _Tp,
                                  _Reference, _Distance>& __y) (
  return !(__y < __x) ;
)

template <class _RandomAccessIterator, class _Tp,
          class _Reference, class _Distance>
inline bool 
operator >= (const reverse_iterator <_RandomAccessIterator, _Tp,
                                  _Reference , _Distance>& __x, 
           const reverse_iterator <_RandomAccessIterator, _Tp,
                                  _Reference , _Distance>& __y) (
  return ! (__x < __y) ;
)

#endif /* __STL_FUNCTION_TMPL_PARTIAL_ORDER */

] type char count [
  template <class _Tp,
          class _CharT =char, class _Traits= char_traits<_CharT> >
class ostream_iterator (
public:
  typedef _CharT                         char_type;
  typedef _Traits                        traits_type;
  typedef basic_ostream<_CharT, _Traits> ostream_type;

  typedef output_iterator_tag            iterator_category;
  typedef void                           value_type;
  typedef void                           difference_type;
]

Giải trình:

makegán một giá trị cho một biến. Trong trường hợp make 'cleannày chỉ là obfuscation, gán một danh sách ngoặc vuông cho một biến cleanvà sau đó không làm gì với nó.

type char countđược sử dụng để in ra một ký tự dựa trên số lượng vật phẩm trong danh sách ngoặc vuông theo sau nó. typein ra một giá trị, chartrả về một ký tự dựa trên giá trị ASCII và counttrả về số lượng mục trong danh sách. Vì vậy, ví dụ type char count [ a b c d e f g h i j ]sẽ in ra một ký tự dòng mới (giá trị ASCII 10).

Dùng thử trực tuyến tại đây (cắt và dán nguồn yêu cầu)


Tôi không biết điều gì đáng ngạc nhiên hơn: thực tế là nó trông giống như tiêu đề STL hoặc thực tế là nó được in Hello, world!. +1
kirbyfan64sos

3
Tôi đang cố gắng tìm một bản sao BF ở đây ở đâu đó ...
mbomb007

2
Một số loại Logo? Điều đó chắc chắn có danh sách "loại" và "char" và "đếm" và dấu ngoặc vuông, và phần đầu trông giống như một phép gán biến Logo. Nhưng tôi nghĩ Logo đã sử dụng trích dẫn kép thay vì trích dẫn đơn để trích dẫn tên biểu tượng.
Gareth McCaughan

12
Điều đáng báo động là có bao nhiêu người rõ ràng có thể nhận ra ngay lập tức TinyBF hoặc Fudge hoặc HeadSecks nhưng bị đánh cắp bởi Logo :-).
Gareth McCaughan

1
Con rùa đâu rồi?
MilkyWay90

24

~ Tiếng Anh sửa đổi , 36 byte

Echo "Hello,"
and " World!".
End."!"

Câu trả lời này chứa sự bảo vệ chống lại SPSS, Foo và Tiny. thở dài

Bốn lần thử và một câu trả lời khác trong cùng một ngôn ngữ , nhưng bài nộp của tôi cuối cùng vẫn an toàn!

Giải trình

~ Tiếng Anh được thiết kế để trông giống như văn bản thuần túy, đó có thể là lý do tại sao phiên bản thứ hai nối thêm không phải 2 mà được sửa đổi thành tên của ngôn ngữ.

Rất may, có các bí danh của các hàm DisplayStop, làm cho ~ tiếng Anh không giống tiếng Anh.

Trong số các bí danh đó, tôi đã chọn EchoEnd, cùng với từ khóa and- làm cho mã nguồn giống với ngôn ngữ kịch bản dài dòng hơn là một esolang.

Câu

Echo "Hello," and " World!".

chào đón thế giới và

End.

dừng thực thi, do đó, bảo vệ Foo theo sau chỉ đơn giản là bị bỏ qua bởi trình thông dịch.

Bạn có thể tải xuống trình thông dịch chính thức từ GitHub (được liên kết trên trang Esolang).


2
Bạn có quyết tâm điên rồ .
kirbyfan64sos

23

Karma , 67 byte

05\+148*+\[455**\8+\[\6+\[3]-\[46*]\[-1{-\6\++]]\\[7]-942**.
:\!!@<

Dòng đầu tiên đẩy tất cả các ký tự lên ngăn xếp, sử dụng hàng đợi để lưu một số byte. Dòng thứ hai bật và in cho đến 0, đó là char đầu tiên trên dòng 1.


17
Bảy ngày đã trôi qua. Bạn có thể tiết lộ ngôn ngữ và làm cho câu trả lời của bạn an toàn.
Martin Ender

21

gs2, 3 byte, bị bẻ khóa bởi frageum

e|h

Trong gs2 :

  • ehoặc \x65nằm producttrong danh sách (chẳng hạn như danh sách trống các ký tự đại diện cho STDIN), vì vậy nó sẽ đẩy int1 .
  • |hoặc \x7cpower-of-2, thay đổi nó thành 2 1 = 2.
  • hhoặc \x68hello, đó là một lệnh vô lý . Câu chuyện diễn ra như sau: khi thiết kế gs2, tôi bắt đầu đánh bại mọi ngôn ngữ golf mã trên máy chủ golf của shinh, nhưng gorubycó lệnh trứng Phục sinh hinHello, world! (lưu ý chữ thường w), cho phép nó giành vị trí số 1 trên thế giới xin chào bảng xếp hạng của thách thức . Tôi muốn một lần goruby, vì vậy tôi đã thêm lệnh trứng Phục sinh của riêng mình hđể đẩy Hello, world!vào ngăn xếp, nhưng cho phép bạn tùy chỉnh viết hoa và chấm câu bằng cách đẩy một số nguyên trước nó:

        elif t == '\x68': #= hello
            x = 0
            if len(self.stack) >= 1 and is_num(self.stack[-1]):
                x = self.stack.pop()
                x = (range(0, 11) + [100, 1000, 16, 64, 256]).index(x)
            s1 = 'h' if x & 1 else 'H'
            s2 = 'W' if x & 2 else 'w'
            s3 = ['!', '', '.', '...'][((x & 4) >> 2) | ((x & 16) >> 3)]
            s4 = '' if x & 8 else ','
            f = '%sello%s %sorld%s' % (s1, s4, s2, s3)
            self.stack.append(to_gs(f))
    

    Như bạn có thể thấy bằng cách nhìn vào s2 =dòng, nếu có một số 2ở đầu ngăn xếp, nó sẽ được thay thế bằng biến thể chữ hoa-W:Hello, World! .


3
Tôi phải hỏi: Bạn có dự định giải pháp tuân thủ quy tắc 1, cụ thể là phần về những gì đủ điều kiện là ngôn ngữ lập trình không?
Dennis

@ Sp3000 Chúng được coi là các U+2062 INVISIBLE TIMESký tự, là vô hình, nhưng không phải là khoảng trắng, để chúng có độ dài bài đăng lên hơn 30 ký tự.
Lynn

3
@Dennis Yup - trên thực tế, ngôn ngữ là Turing-Complete.
Lynn

@ Sp3000 Tôi đã thay thế phần đệm bằng một cái gì đó ít phá vỡ trình duyệt.
Lynn

2
gs2? (Không làm việc tại sân golf vô chính phủ, nhưng nhìn thấy maurisvh authored 5 days agotôi sẽ đoán nó bằng mọi cách.)
frageum

21

> <>, 353 byte, bị bẻ khóa bởi Sp3000

//This seems almost fine
//"Hello, World!" r^2 times
//But will it be too wordy?
  var r = 2;
  var a1 = "Hello";
  var a2 = ",";
  var a3 = " World";
  if(a1 != a2 && a2!=a3&& a3 != a1){
      r+=(a2===",")?1:0;
      a1+=a2;
      a1+=a3;
      if(a1 == "Hello, World")
        for(var i = 0; i++; i < r*r)
        {
          log(a1);
        }
    }

Theo phát hiện của Sp3000, đây là một chương trình> <>. Tất cả các khoảng trắng và ký tự không được sử dụng thay thế bằng. nhân vật cho dễ đọc.

/.................. ....
./"Hello, World!" r^.......
//.................o.......
 ...........
 ..................
 ..............
 ..................;
 ..................!................
 ..................?....
 ............
 ............
 ..................l..........
 .................. ................
 ........
 .................
 ........
 ....

Bạn đã quên dấu chấm than?
aditsu

Khi chạy đúng ngôn ngữ, đầu ra là "Xin chào, Thế giới!" (không có trích dẫn của khóa học)
Fongoid

Được rồi, chỉ cần kiểm tra :)
aditsu 18/08/2015

11
Thêm > <> (Cá) !
Sp3000

Quả thực là: P Quá tệ, tôi đã quên mất! trong obfuscation> _ <
Fongoid

21

MarioLANG , 549 byte, bị bẻ khóa bởi Sp3000

++++++++++>)+++++++)++++++++++((-[!)++.)+.+++++++..+++.))]-.(----.((+++++++++++++++.).+++.------.--------.)+.
=|||||=|||"|||||=||||||=||||||||||#|||||||||=|||||||||||||||||||||||||||||||||||||||=|==|||||||||||||||||||||
----------!((((-(.[)++++++)++++)))<(--.(-.-------..---.((]+.)++++.))---------------.(.---.++++++.++++++++.(-.
Helo, Wrd!#||||||=|||||||||||||=||"||||||||||||||=||||||||||||||||||||=||||||||||||||||||||||||||||||||||=|||
++++++++++>)+++++++)++++++++++((-[!)++.)+.+++++++..+++.))]-.(----.((+++++++++++++++.).+++.------.--------.)+.

Tôi thật sự rất thích cái này. Dưới đây là tổng quan nhanh về cách tôi tạo mã:

  • Tôi bắt đầu từ Brainfuck "Xin chào thế giới!" trên esolang:

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

    Tôi đã phải sửa đổi nó một chút để thêm dấu phẩy, nhưng hãy bỏ qua các chi tiết ...

  • BF có thể được chuyển đổi sang ML khá dễ dàng: thay đổi ><để )(tương ứng. Thêm một tầng chính bên dưới chương trình. Sau đó thực hiện các vòng qua sàn trợ giúp và thang máy. Điều đó biến chương trình trên thành:

    ++++++++++>)+++++++)++++++++++)+++)+((((-[!)++.)+.+++++++..+++.)++.((+++++++++++++++.).+++.------.--------.)+.).
    =========="===============================#=====================================================================
              !                               <
              #==============================="
    

    Đây là một tác phẩm "Xin chào thế giới!" chương trình trong MarioLANG. (Mã này tương ứng với "Hello World!" Không chính xác trên esolang, không phải mã ML bị che khuất ở trên.)

  • Tại thời điểm này, chúng ta có thể đánh golf mã một chút để tôi thực sự di chuyển một số mã vòng lặp vào tầng phụ trợ. Bây giờ tôi đang chuyển sang mã thực tế từ câu trả lời này:

    ++++++++++>)+++++++)++++++++++((-[!)++.)+.+++++++..+++.))]-.(----.((+++++++++++++++.).+++.------.--------.)+.
    =========="=======================#==========================================================================
              !((((-(.[)++++++)++++)))<
              #======================="
    
  • Và bây giờ là sự xáo trộn thực sự: Tôi đoán rằng =đó sẽ là một tặng phẩm chết chóc cho Sp3000, người biết ngôn ngữ này (anh ta đã sử dụng nó trong Evolution of OEIS). Nhưng MarioLANG cũng có "bức tường" thay vì "sàn", đại diện bởi |. Chúng giống nhau về mặt chức năng, vì vậy tôi đã sử dụng ký tự ít phổ biến hơn. Tôi cũng hình dung sàn treo sẽ trông đáng nghi nên tôi đệm hai dòng với các nhân vật khác. Để có biện pháp tốt, tôi đã thêm dòng đầu tiên một lần nữa vào cuối và làm cho phần đệm ở dòng giữa trở thành các ký tự ngược lại của dòng đầu tiên. Tôi cũng đã thêm dấu ngoặc vuông phù hợp (được MarioLANG bỏ qua), bởi vì tôi cho rằng một dấu ngoặc đơn [có thể là một gợi ý mạnh mẽ khác. Cuối cùng, tôi đã viết một kịch bản CJam để rắc chính xác 13= vào các vị trí sàn ngẫu nhiên (13, vì đó 'Hello, World!) và thay đổi các ký tự đệm ở hàng thứ tưHelo, Wrd!để làm cho nó giống như tôi đang đọc các ký tự từ mã nguồn, giống như câu trả lời của Befunge. Voilà, MarioLANG khó hiểu! :)


1
Tôi sẽ đoán TinyBF nhưng có lẽ đó là một ngôn ngữ khác được ngụy trang thành tinyBF: p. Tôi không thể chắc chắn vì trình thông dịch bị lỗi trình duyệt của tôi.
Hạ cấp

@vihan Sẽ là một sự trùng hợp khá điên rồ nếu điều này hoạt động với TinyBF. Đó chắc chắn không phải là những gì tôi dự định. ;)
Martin Ender

1
@AlexA. Không, thật không may, bạn không thể ngụy trang Rail như thế (hoặc tôi đã đăng một câu trả lời Rail: D).
Martin Ender

1
@aditsu (và bất kỳ ai khác muốn loại bỏ Phân hạch như một phỏng đoán ngẫu nhiên): Phân hạch cần ít nhất một trong 4 ký tự (chữ hoa) ULDRđể bắt đầu bất kỳ luồng điều khiển nào. Vì vậy, không. ;)
Martin Ender

6
Đây là MarioLANG , nhưng điều này bị che khuất đến mức trông không có gì giống nó.
Sp3000

21

KHÔNG GIỚI HẠN , 77 byte

$0,0
.:72
.:101
.:108
.:108
.:111
.:44
.:32
.:87
.:111
.:114
.:108
.:100
.:33

xác minh

Bạn có thể tìm thấy trang web và thông dịch viên chính thức tại đây .

Như đã lưu ý trên trang web, trình thông dịch được viết cho Python 2.2, cho phép các ký tự không phải ASCII trong mã nguồn. Bạn có thể tải xuống Python 2.2.3 1 hoặc sửa nó cho Python 2.7 bằng cách chèn dòng sau vào đầu trình thông dịch:

# coding: latin1

Làm thế nào nó hoạt động

Trước hết, không nên cho phép khoảng trắng trong mã nguồn theo trang web, nhưng khoảng trắng theo sau một hướng dẫn hoàn chỉnh dường như không gây ra vấn đề gì.

Lệnh $0,0thực thi memory[0] = memory[0] == memory[0], không giúp chào hỏi Thế giới theo bất kỳ cách nào. Tôi đã thêm lệnh này chỉ để đánh lạc hướng thực tế là .hành động phân tách câu lệnh.

Phần còn lại của mã bao gồm mười ba :xlệnh, viết ký tự với mã điểm x thành STDOUT.

Một phiên bản không mã hóa của mã nguồn sẽ trông như thế này:

:72.:101.:108.:108.:111.:44.:32.:87.:111.:114.:108.:100.:33

1 Biên dịch Python 2.2.3 đáng ngạc nhiên là không ổn định trên openSUSE 13.2. make, make installVà thực thi kết quả là tất cả được in rất nhiều cảnh báo, nhưng UNBABTIZED làm việc như dự định.



@vihan Không, xin lỗi. Fueue in FUEUE: UNKNOWN , OP14 lần, sau đó HHeelllloo,, WWoorrlldd!!, mà không thoát khỏi chương trình.
Dennis

Pyth ... Nhưng không phải trên phiên dịch trực tuyến?
Beta Decay

@BetaDecay Không, xin lỗi. $bắt đầu bằng chữ Python, dẫn đến lỗi cú pháp.
Dennis

14
@ kirbyfan64sos Dennis biết rất nhiều thứ.
Alex A.

19

Subleq cao hơn , 52 byte, bị bẻ khóa bởi John WH Smith

int puts(char*);int main(){puts("Hello, World!\n");}

Điều này không thực sự trông giống như một esolang, nhưng không có đạo hàm C lành mạnh nào sẽ thực hiện putsmà không có một dòng mới.


1
Nó không hoạt động trong C?
jcai

@Arcinde Không, không.
Dennis

6
Ah, hai dòng mới.
Peter Taylor

Có khách quan không c?
Bò lang băm

5
Wow, tôi thực sự sẽ bình luận ở đây: D Đây có thể là ... Subleq cao hơn ?
John WH Smith

19

Mascarpone, 30 byte, bị bẻ khóa bởi Sp3000

[!dlroW ,olleH]$.............

Dựa trên ngăn xếp? Có lẽ...


[!dlroW ,olleH]đẩy tất cả các ký tự đó vào ngăn xếp (có, bao gồm cả các dấu phân cách); $bật lên ]; và sau đó .mỗi bản in một ký tự. Chương trình thoát với một [ký tự vẫn còn trên stack.

Tôi đã làm cho đầu ra sử dụng một vòng lặp, nhưng tôi không thể tìm ra cách chúng hoạt động ...


1
@ETHproductions, nó không có ý định trực giao. Trình thông dịch không biên dịch cho tôi, vì vậy tôi chắc chắn không thể chứng minh được.
Peter Taylor

1
@nimi, nó không hoạt động trong STXTRM. (Và tôi không chắc chắn rằng STXTRM thậm chí đáp ứng các tiêu chí của thử thách: dường như không có cách nào để in. Tôi đã phải thêm một bài kiểm tra).
Peter Taylor

2
( hoặc đó là những gì họ muốn bạn nghĩ ?? chơi nhạc kịch)
Lynn

4
@nimi, giữ im lặng và tôi sẽ cho bạn một nửa số tiền thưởng.
Peter Taylor

3
Có vẻ như hoạt động trong Mascarpone , thực sự dựa trên stack và $bật lên ]vì lý do nào đó bị đẩy
Sp3000

17

Whirl , 12302 byte, bị bẻ khóa bởi Artyom

3.141592653589793288462643383279207884697269399375705845974944595347816486286788
99262883192534210706798214888651326231664709384460255058223879585940892848425745
72845027259385711356596446299474149373219244288149756659334467284756582337867838
65290203309945648566923460348630458326848283390605263242149273724387006606305588
17688152992197288925489171536436729259066006733053554682146652138414195194155260
94330572703655599939530920867773809328677934055585480744623799627495623598880527
24891227938383069449529853677362440656643086026394946395224737790772179866943722
77753919727629377675238467487846766940533204456812714526359282678571134275778966
91336346707244684405062249534709465459853763597922796832289235478169561899890259
60864034418759863524774774309960578707288349994968372978069966059761732846096388
59502445945534691833264252238825334468583526193118812846000913783875288658753300
83864206877776699473035982539904287554687375595627688823537875937599577858577805
32776236806644850927876620695909236420498932095257201465485963278875956453483837
96838034695203531186296899577362259941389124975177528347993759558285724245455065
59507295336268647288558590750983897546374649398592550644919277416611334898488242
52838361603563707660104090588242945596698926767837469448255372774726847604447334
64620804668425906949629339367707038955200475226235696602405803475079754225338243
75355870402474964432539147992726042692227957823547896360097417216412199245863150
30286182974555706749838505494548586926995690927680797503302955321165344987902755
96923648066549926988983429775356636980742654052787255181841757467289597779279388
41818470600361452491928732372847723507474409737685487603695573585520334747338494
68438523623907394243330547762486862528983569585562099235222984272650254256887658
79049466135346680466862723279578604578438382596797668145416375388858636395568364
42251252351173929838960843284886269456042419752853222166612863067442786220391949
45847123123786260956364373937287457764657573963453890065832645995413397478427592
49946576497895826996831835259574982582262952248949772471947826848260647699090264
09363944374253057682834962524517493996554334298297906592509472256964625557098583
37419517885979772975598339164753928428533268683862942774953993855905255953959433
04997252488324598727364469584868383677642782609902460824124388439242124413654976
27857977456914354977731296960898346948685558404663534220722658284886485584560285
06516842769452237467678895252138528549954666727823386476596121354886233577456498
53559363456817482408253507616947545609659699402822887973680364886963686722878894
00645535933186179256819228747829638249385894397149996759952213655497888938297849
25682998948722258804857566604270477555132379641450523746336364742858444795565807
82175714135473573952311842716670243596953633544295248293746788084546540359027993
44537423173125785399621983874478584784896823214457738687563439064302584530960484
87305879614689674913278191797939952969449663428754440643746423778392379998379085
94956886467544269323974894090748649493596256794520219514655322523160388893091219
37621378559566319377876834399667921793467221825629996638035205930680382477345492
82665414663925211497442854732518666002332434088198710486339734649450453935796268
56189555844665879699826397473658445757425913289786155082097220628043903975931567
71577914253378699360072305587631763594248738252472205369284988263864258673235795
98424848829560980659575972695722393256711632291998169481528077350679274858322287
98652093539657255280835792573698820614442122675192346712331432676373699086585463
98575019707656549685279407657668755556588879099699597833873455283386355276479285
35898206485489632952933029857164253675279278915488497559859865635880270988994309
22448095757728089059232332609729971288443357326848938239119326274536679058060424
23038630324382499675828524374417224132865518093773444030757489218291913921335385
19762408389044929329526084244485963766983895228384783125552678218141957385726243
44418930396864262434407732269780281731891844660964468232527262070226522722986803
96665573092547140557853769466820653509896523948620564769332570536356629185580007
29360659876486117940453348850346363255686753249444668639626579787788556084552965
41366542853961434443185867697514566130980072243782763913240575274947042056223053
89645673099719270004078547332699392894546649458807972708266830634328587858983359
35838713165757446795357163775259203074755765588405250676228534932266474550979259
23599479654737612551765675135759787966645487937450842696848903746399473329621073
40437578997859624589019389413111540429782856475037031986915141287080859904806094
12147221617947647982622434254854540332957685306842288937583043063321751829798662
23717215916977196925474873808665494945057465406284386639379033976926567214618733
67362965712191843638327106496274688260786925602902284725043318211869829413000422
96597849637292533707520475958456609663386294726547364253308077033754590673562350
72835405670402667435436222207725897504958098444893335973438788769625993968334193
41447377641845631298608029088687463260472756952624965860573221681694103795667353
82297436372947867242292465436630198367692823828568996441484436463741456344966894
94092432378969070627790223625382216889573837986235345937364765512289357865158416
37557828735263446542695326972037343546538967774860316996655418733879293344195216
41343899484448736567383962499347983883480927777303863873243077217545654542237772
92121155316609628008592636219759882716133231668397286193366863360627356763035447
76280350450777235757105859548702790844356240545587806246436267945622753399340783
30336254232783994975382437205835369477389926063883346776279695970304835923077909
87040854943748484408227726346564704745878477872009277652807387679077073572534447
30685749733492436231338252443163128484251219256567780694763528083047713747816437
84718509092852520756783934596562834994347595625865865570502290492529985893385572
24264829397285847831634577775626888764462482461579463395352773487354892939587617
48256047470996439643626760449256274204208924856611966254543372137535958450687724
60290161836677524661634252257749542996299593064553779924437340432875262888963995
87947572917464263574152549793916513571053694049609393251890760208252726987985318
87705842972490677863299629009049256697373727047684726860849003372724242916513715
00536832336435038901692989392234451722413412596965316784408745896012122859997662
34593773444826409038905449544400679869075485060263275252983461874078668088183385
11228334592584865855539152133289776528430635655002668282949344539765527989721754
61395398368939363839474211996653855352842056853386249672523340283067642328278929
25077926294632295669898989354288629562701621835646227134967152883900737381198934
97346223961136854066439939509790190699639552453072453585685521956733229299119439
48568034490398255935305226353436592042994745558563860234395544959778377972774411
77271117238434354394782908585986040837400635344339588856486795731547129658424589
89332323342117351545940536556790686627333799585135625734322988273723198997576406
80781119635833565944873168223602876496286744404774649779950549737425626951049007
78698683593814657712684492964871855614537233786733539066883834363565537949864092
70563692934738723920837607023029860367938627089438799262066295954973764248928307
22812690945546684760357626477379467520519475715552781965362132392649616023635832
59074227282931872735052772790055676542552487925303435039885253323215762530906425
46392291522865627169535919565897514836034822769306247435366256916378154785799528
43667957063208615391514452527473924544945423682886064340848486377670896170783024
93404341725946376484393414334123518975769352164637679693374950297085759869239798
82936429939949074362366467411833940326590840443780503332945257423995482965912285
08555722572503017125749296837242292652522711472676756222415420506884863484756836
99983966400136299627838698929165372884222691441407728862750784375167197878326992
82120660418371846535567252532567532863291742487721825399764157959847835622262914
86003465872298053298965322129174878823273427922224533985666472691495556284251693
27574202840379980663658254809269880254566181729678266427655914225194568550654653
05873825462703369316785177699747718667114965583434340693385880740386455433676323
08458768722660348943909562019939361831529168645288738437909904236747336394904555
93845304054974347574811935678913073775572902823555912885309066920376749520332299
94464676851422144772793937517834436689910433365456735475998550468450263655128862
28824462575946333039607225383742882049883538457391771519682887478265669599574494
66175634410752239709683478755355984617541738868379944697486762555665897648483588
45344277568790029065176283529416344262129642435231176006652012412526598558512861
78583823204497684423608007593045761891234982927965619875687228726750798025547695
49245563573212214333966974992356312549478024985340934923827553799830791738622515
22742995888072473625906785451333123948749675791195532673430282448860454263639548
75944822267789624825179289647669758358327438425630296924488962566874332326092752
49603579964692565049368083609003238002934595889706953653494060340286654437588909
45632882253545259661564882465151875471196258443965832397543885690945030335090261
79278332974127766514793942295298969594699576576121845609673378623625692624632086
28692257032748492186543640021947807058656459446320469279068232073883688142435698
13621963208088222468042248264977685896387439283903673672424888321513255623376798
39495215297822845337667494347456813455641725437090696939612257942986467254657846
83886244458823445934789849225284786050490252424770292547205734551050086198819769
33924638787581085754407593079422243908663938330529425786965376431116383808834389
34659653685634784699556978303829309716465143840705727468411237359984345225161050
70679562352368127648483080176918371355279121542716283548360367456286790570651748
82256981579368897669743205750596834408397550201418286724585725871457253326513490
55924009127421624843919535998953533559594427646912691409387001564563216225428832
61927645773106579329552498472758465082648369998922569596888592056007416552563796
78566722796619887782794948355834357516744585522975634434893966420527984936804352
25297598469423253312257634680002947609415979159453766955224829336655566156787364
22536665641654733770439036223295935292694445990416087532018683793792348836894591
51571637852992345292446773659495233510073270878426834974595645838408723727047131
72795431542296526667621449863746459528682436944578977233254876576524133507592043
40495340398349220233807550952290156825634274716463243354456515212669024934396739
77042595783756555506730203923749729736354964533288869574161116496362773449598273
69558822075735247665658985529098266539354948006887320685990754079234240230092590
07067389603622547564789476475483466479604994632339056518453368449569697799335234
62461477961696886885004083470405462542953699118296782468185780393889065695036650
83243297440477184567893282336943106808702742809736248093996278617472645531925385
44280858373694738872940630782655955954626296297070625948258698341116729964090894
38059534393251236235548124949824364278527138385932563989295896427487573946944272
53736694953236200453730488828556756594420735246258954873016769829886592578662242
12496655235338294287854256404838833071165372285633591525347844598183134532904299
99959823522053273365856407826484940764411376393866924883118962453698589175442647
39988228462174492087776977638679572267265556259628254276535830913407092238436577
91681284981794007680985998338492354956400572995585611349892524593669869333973513
58148918568552653087099570899527328709258487994436860256418892256917835258607859
56298848272953509537885574573742608592298817651557803905949408738065932266220593
73108048548546312228257682614165514846626744459831262548524978449254843469414627
54864932709304434039302432227488545975054742178289711277792376822578873477088091
52142298226868586705074227255126332834497627789442362167411918677943965067558577
35867364823993907604260076338704549907760436482046921823717648869341968968645895
58708736062938603890576205855272368341823834546564758834351385921633639874026374
40643549556836896423228274975330265580793453469678352858829924367497488711815893
34945331442622876228809400736877054586596877746194176964323909206248594

Whirl bỏ qua mọi thứ trừ 1 và 0. Tôi cũng đã sửa đổi các chữ số khác một cách ngẫu nhiên, nhưng chúng không liên quan. Khi bạn chỉ giữ 1 và 0, bạn sẽ nhận được "Xin chào, Thế giới!" ví dụ :)



@alephalpha hehe, không, nó chỉ được ngụy trang trông giống Pi
aditsu

Có phải do NULL không?
Alex A.

@AlexA. không, không phải thế
aditsu

2
Đẹp quá Đây là xoáy .
Artyom

16

GNU bc, 36 byte

main = do
  print "Hello, World!\n"

Một phiên bản Foo -immune của nỗ lực trước đây của tôi .

Điều này đòi hỏi phiên bản GNU (hoặc bất kỳ phiên bản nào khác có printchức năng) của bc. Dòng đầu tiên là dành cho obfuscation: trong các biến bc không phải khai báo và được khởi tạo với 0, vì vậy chúng ta có phép gán vô dụng nhưng với cú pháp hợp lệ. Dòng thứ hai chỉ đơn giản là in Hello, World!.


Có phải là Frege ?
alephalpha

@alephalpha: Tôi không biết Frege, nhưng tất cả các chương trình tôi đã nhìn thấy có một modulehoặc packagetừ khóa trong đó, vì vậy tôi đoán nó sẽ không biên dịch. Có thể nó hoạt động trong REPL, nhưng điều đó không được phép.
nimi

1
@oopbase: không, không phải Haskell. Nó biên dịch, nhưng đưa ra đầu ra sai.
nimi

1
Tôi chắc chắn đây không phải là ngôn ngữ dự định, nhưng nó không hoạt động trong Cyan , nếu bạn bỏ qua các tin nhắn được gửi tới stderr (cú pháp không có lỗi sẽ cần một dấu hai chấm sau main = do:).
Primo

1
(Bạn phải đùa tôi! Tôi đã tìm kiếm trên internet toàn bộ thứ tôi có trên máy tính của tôi ...) Làm thế nào để bạn gọi cái này? Tôi dường như không thể thuyết phục bc đọc từ một tập tin.
Dennis

15

Đầu bếp, 1943 byte, bị bẻ khóa bởi Angew

Hello World Cake with Chocolate sauce.

This prints hello world, while being tastier than Hello World Souffle. The main
chef makes a " World!" cake, which he puts in the baking dish. When he gets the
sous chef to make the "Hello" chocolate sauce, it gets put into the baking dish
and then the whole thing is printed when he refrigerates the sauce. When
actually cooking, I'm interpreting the chocolate sauce baking dish to be
separate from the cake one and Liquify to mean either melt or blend depending on
context.

Ingredients.
33 g chocolate chips
100 g butter
54 ml double cream
2 pinches baking powder
114 g sugar
111 ml beaten eggs
119 g flour
32 g cocoa powder
0 g cake mixture

Cooking time: 25 minutes.

Pre-heat oven to 180 degrees Celsius.

Method.
Put chocolate chips into the mixing bowl.
Put butter into the mixing bowl.
Put sugar into the mixing bowl.
Put beaten eggs into the mixing bowl.
Put flour into the mixing bowl.
Put baking powder into the mixing bowl.
Put cocoa  powder into the mixing bowl.
Stir the mixing bowl for 1 minute.
Combine double cream into the mixing bowl.
Stir the mixing bowl for 4 minutes.
Liquify the contents of the mixing bowl.
Pour contents of the mixing bowl into the baking dish.
bake the cake mixture.
Wait until baked.
Serve with chocolate sauce.

chocolate sauce.

Ingredients.
111 g sugar
108 ml hot water
108 ml heated double cream
101 g dark chocolate
72 g milk chocolate

Method.
Clean the mixing bowl.
Put sugar into the mixing bowl.
Put hot water into the mixing bowl.
Put heated double cream into the mixing bowl.
dissolve the sugar.
agitate the sugar until dissolved.
Liquify the dark chocolate.
Put dark chocolate into the mixing bowl.
Liquify the milk chocolate.
Put milk chocolate into the mixing bowl.
Liquify contents of the mixing bowl.
Pour contents of the mixing bowl into the baking dish.
Refrigerate for 1 hour.

5
Đó sẽ là Chef , tôi giả sử.
Angew 17/8/2015

@Angew Làm tốt lắm! :)

15

APL, 39 byte, bị bẻ khóa bởi Mauris

"Helo, Wrd!"[0,1,2,2,3,4,5,6,3,7,2,8,9]

Hiệu quả là tất cả.

Điều này hoạt động trong bản demo ngn-apl .

APL Obfuscating không phải là nhiệm vụ dễ dàng nếu ý định là làm cho nó trông ít hơn giống như APL.

Đây là những gì tôi đạt được:

  • Dấu ngoặc kép không hoạt động trong tất cả các phương ngữ. Dyalog, ví dụ, không hỗ trợ họ.

  • ngn / apl là phương ngữ duy nhất tôi biết sử dụng lập chỉ mục dựa trên zero theo mặc định.

  • Dấu phẩy không được cho là ở đó.

    Các phần tử vectơ thường được phân tách bằng khoảng trắng khi viết APL. Tuy nhiên, ,ghép nối để mã bên trong dấu ngoặc ghép 13 singletons.

Một phiên bản (hơi) không được cải tiến và mã di động hơn sẽ trông giống như

⎕IO←0⋄'Helo, Wrd!'[0 1 2 2 3 4 5 6 3 7 2 8 9]

hoạt động trong TryAPL , GNU APL.jsbản demo ngn / apl .


Hoạt động trong kdb +. Tôi nghĩ tên ngôn ngữ là Q, nhưng không tìm thấy nó được đề cập ở bất cứ đâu trong phần tải xuống. Và tôi không biết làm thế nào để chạy nó như một tệp nguồn độc lập.
jimmy23013

1
Không, tôi sai, nó cũng đã in các trích dẫn ...
jimmy23013

Bất cứ ai cũng biết bất kỳ ngôn ngữ nào cho phép lập chỉ mục mảng của một chuỗi?
mbomb007

@ mbomb007 Python và Ruby, nhưng điều này cũng không. Tôi không thể nghĩ ra một ngôn ngữ sẽ không in các trích dẫn xung quanh chuỗi.
lirtosiast

4
Đây là APL. ( ngn-aplÍt nhất nó hoạt động trong )
Lynn

15

Chuột , 105 byte

1[10Y:Y.Y.*X:108Z:33X.X.8+X.Y.+4+X.Y.+1+X.Y.2*-7+Y.3*2+44X.Y.+1+Z.Z.Y.10*1+72!'!'!'!'!'!'!'!'!'!'!'!'!']$

Bạn có thể nhận được thông dịch viên cho Chuột được viết bằng C tại đây .

Chuột sử dụng ký hiệu đảo ngược của Ba Lan, vì vậy các toán tử tuân theo toán hạng. (Nghĩ về Lisp ngược.) Việc gán biến được thực hiện bằng cách sử dụng <variable>:và gọi lại giá trị của biến được thực hiện như <variable>.. Tất cả các giá trị trong Chuột là số nguyên.

!xuất ra một số nguyên và !'xuất ký tự ASCII được liên kết với số nguyên. Tất cả đầu ra đi vào STDOUT.

Vì lý do nào, tất cả các chương trình hợp lệ phải kết thúc bằng $.

1 [ ~ If true, do

    ~ Variable assignments
    10 Y:
    Y. Y. * X:
    108 Z:

    ~ Push values onto the stack
    33               ~ 33  "!"
    X.               ~ 100 "d"
    X. 8 +           ~ 108 "l"
    X. Y. + 4 +      ~ 114 "r"
    X. Y. + 1 +      ~ 111 "o"
    X. Y. 2 * - 7 +  ~ 87  "W"
    Y. 3 * 2 +       ~ 32  " "
    44               ~ 44  ","
    X. Y. + 1 +      ~ 111 "o"
    Z.               ~ 108 "l"
    Z.               ~ 108 "l"
    Y. 10 * 1 +      ~ 101 "e"
    72               ~ 72  "H"

    ~ Pop values and output as characters
    !' !' !' !' !' !' !' !' !' !' !' !' !'

]   ~ End if
$   ~ End program

Có phải là Headsecks?
mbomb007

@ mbomb007 Không.
Alex A.

Đây có phải là Nybbleist ?
BrainSteel

@BrainSteel Không.
Alex A.

Chỉ là một phỏng đoán hoang dã, Julia?
Beta Decay

15

Haskell , 637 byte

(program, main)= script $init

string= struct( \ 
  char(show)-> do show; putChar(char); while 1 ) (return 0)

script
  stack= auto $string("!dlroW ,olleH")

struct buffer (public) = share%: \ 
  align->flip
  (field public buffer) align

auto buffer= (init, buffer)

share from = select x where x = from x

while skip=return 1; skip= skip+1

select x | ~"World"<-
            "Hello"=x

loop k for[]
  buffer=(const ($k) ($skip) id)

loop while not(-- $x) {
  unsigned: i{-1}
  terminal.write(buffer{eval $i--})
  x= not (unsigned) $x
  $i `const `skip{-2}
}

memorize{+,-}

(goal, field)= auto loop

finish%:
  goal= finish $goal

Video khử rung

nhập mô tả hình ảnh ở đây


Âm thanh như một trò chơi thể thao, lol.
mbomb007

Vì một số lý do, tôi cảm thấy như đây là một ngôn ngữ bỏ qua các ký tự chữ cái và tất cả các thế giới chỉ ở đó để làm mọi người bối rối.
kirbyfan64sos

@ kirbyfan64sos: không, chỉ một vài trong số các nhân vật bị bỏ qua. Hầu hết các thay đổi ngẫu nhiên bạn có thể thực hiện cho chương trình này sẽ phanh nó.
đã ngừng quay ngược chiều

1
Bảy ngày đã trôi qua. Bạn có thể tiết lộ ngôn ngữ và làm cho câu trả lời của bạn an toàn. (Miễn là bạn không, mọi người vẫn có thể bẻ khóa câu trả lời của bạn.)
Martin Ender

Một dự đoán: đó là zsh?
georgeunix

14

Wordfuck , 1063 byte, bị bẻ khóa bởi Martin Büttner

Thus men; die. Here meet prepar'd thrice be." Down his
 with lab'ring forg'd and And retir'd Now universal Phoebus at
 Hesperian living, off fields fierce cries, assail'd not for These
 foe. Spread, indulgent quarry headlong prince your bloody side crew.
 Elated call humble yield, his yield, boys camp men, cruel
 all the loudly trusty won, winter spouts they crown. Had
 what long long upon fram'd. Declare back throat, tossing his
 enters, the Nor Aeneas; said from flowing the enclose th'
 match'd Receive with neither threat. From seas painted His oppos'd,
 cried, Thus mortal the his and combine form and, wine.
 And but Let absent, sums to guest, you to spear
 to greedy of First, with love bear." path Whom heav'n
 That by Argive need they to blood, wert eyes the
 this To large, with Some Jove (The from hosts, the
 yoke with horses' when sail is purple at wintry his
 with more camp with have to Earth, to oppose of
 the troops with various but so, thirty well perform by
 the and waves- man! from fear victory too at fire,
 If recess banish'd transfer.

Lưu ý rằng kết thúc dòng phải theo kiểu Unix.


3
Perl? (Có lẽ rất sai ...)
kirbyfan64sos

40
@ kirbyfan64sos Không, quá dễ đọc đối với Perl.
jcai

2
Lúc đầu tôi nghĩ nó có thể ??? và tôi đã rất phấn khích, nhưng hóa ra nó không hoạt động trong ???. : /
Alex A.

1
@Caltor AlexA. vừa xuất bản nó tối qua;)
ETHproductions 17/08/2015

4
Đây là Wordfuck .
Martin Ender

13

Wordy , 3279 byte

#_>^ +7K1 }OU8 4>Fk ry\g 9Ff] A}kY ,6Fo IK`k C'td dbJ[ 0j]l MBp[ \">| R\JY %+T_
)*`7 @[{j ;x-+ _H\= ;D@& />p? h,mx 1m;7 p+yL -#&9 0(^! ,i9^ Q%_! +&$Q %#|e %:~A
%T</ }-(r ]_$p g&|" *w#= @++j \)U` <:W< _t{( c\#< :f@~ >[+6 ,B%? S6d} HSm" b=Yz
c[(; @n*# ;`,Z >~K) D"<% <}h" #>N. I0:o >c"+ '>S! pQX[ U#gu $Ei0 6`>~ -/4: ,3;%
\c(? h;TQ LN)o 5`#; }{V* '-E. 7:5u d]0y s|JJ u+>` `|8? y,<0 \(d! 1^*, &U`_ U/@"
*&7. M|f% |C#? \{4` ,k<+ %*'D h~=_ W_+{ [#_[ %"-r #~_F _:u. N|W6 awH' JMm, }%=R
a>*= *z+' {@"A ,'3\ m;}@ (I<. "044 '}A` =K'? puB[ R<ka nrR: S<>= ;`(e (\*p N$"?
u1c} eI%L O$*~ ]O+{ 7"@! vU%n 'MIs E`VV ,/~q p}\? ^DM, k:-! ,3:$ D*~< "}T^ /z}%
\|h< 'Y@? }M%0 {/c. |";P /I"` "[(v ~>l- #2]! j~af rZ(J 9zv` {`T, M`'& (H+: {G+>
A#~` /_%6 4"}! 9|rs [;$m ]J|? IZx; ^xaf WuB) =^+s |+%t [;^U ])A! H;Jb @STw x^`,
=9~< %Z). @v3o h;Tz M9~t {'|O {J`. u^t> 9<-? )/4- `/v| )>O] /(E' ,};X ;&0. 0`o:
(#o? ,D]< X%|* ;}*h [%C` &(A' ^@J^ {O[| &%&Q -;9` |j}) |z]+ :4:. 03(4 <Bhz N$mY
R$~< -M#' C)$$ /=[J 9@^" [*}a :%R. T1,W Y=}` O=&. D;ms Mi=c (Stg >|}1 __^B P};{
&{1. y(Wq T&Nq $^'D />@M @u^? $2Pd n4~d 19j/ X>#> #s[. 0-@P $B%? %w}% x=<[ =}r_
\#=8 ~~R> P']! }8a+ *;j! w<_` %;T: #0({ -_8< A(]^ @1`/ )@f` /=m\ e"~@ ~4$' (z]&
/C|? wtn; HFe^ Gzn* @K}/ >1+{ 7/-{ 2&{} }X-% T=:> O,;. qR8; ;*0: s|>. -bFs DK^y
jk}O =~g/ B%:{ 9;@` K%}? `Xvi "vI4 c+$) =<(b %g#. Tt'w P\ID M`fI %#^M E#=. B&)v
;9:? (+/7 <%q" =,U{ -`/G r[*^ Y;@! H&d> ))@% &S,! |B*[ ~^-p 6+,~ N#&\ ;]K* 6}=^
/|Q) *y:\ ,M*| %&'f =U>@ }~@Y >~3~ `P<: K\+? WUD= |4x5 sox} /6;> [&r{ p@", :'D}
g{^} -]$H _B-! fJ5< p;&@ {a~! Ra+M OKo+ ydJ+ *~-T :W=; @*#, ^_e- k=_. M@QY (fQn
X<,] >(C/ [A/. {nNT {tXg vy@e *1+} (G,. +2m[ X[=! s$,/ [@y! :l+9 -@2. :(P- +a~#
,p%) %*)0 }*=F +"T( Q&~@ <c*; }(\E 3@_* I):( \:2? ~CqL 5$TC ,ARH ;*p/ <~0` _B';
;=>A (%T, d&[; #`g. N*u1 @LEE zPP[ ;<)4 ,1%= [#1# =6^! IL\e 0t@f ~}h< j'{+ <_B!
wFE; lyr` Ja\V '[,J 2_^! Rb;% I>$? F#-{ %+j. fB>2 J7P# Kj~n }#C> T*%` Q=/@ T;%>
_c|{ :&$1 %Q}. rFl> #A,` `Z^! Ks"L hUI: 6_MV ^Q-- `M/> #3/= #'n. MID{ vdn, @_l{
v_@; `s@? H#eZ ]9my oP#e {|R# '(k! d#d; :s,? $+H@ :#=e }2-] 8,-< &1$! l(`7 e:-!
%\X$ k_>' <7], ~%N| r)]] -"$u &0\! SR:z ly]b K(wa q*@- ]{~c )}x% &@&Y >~;j #R)=
%V*. %L1F j'~; +_0. Yz-x @kVV 0G:a `,p] (>n< >{{z /#m! S~CS #Foq %$h( +*{B G#@?
fwr< %OQt K"Cx @0}+ b${. F]R* k=/! C$=, @#/b 4[$* y`,^ $|*R 6,%! Z*c@ ;0\. [&f-
$"/k -L{, \@7{ ^]k\ v$>% v#-; +G># -F@} :=R@ Z<|^ )H-~ o#~^ E#$) :a{. i52: :svA
q&NY #g"< )r]{ "p%& %P}@ 'k|, #m)' ]6$. :@{& |Rcr \]|T ;^8! b2{F rv<i N>VP D>~_
)'A_ G(}- Y&^? 64-A %klM %Q=@ }J:; _b<? ^jjo v[5V {gyQ y)`[ }|l. '0B` A`{. >]@M
#},y C"_} s]@' \9|- _#$o _w"? %&43 k}". >}u- ^]b? z%Cg f+aT vr$A /:\z #);I $*F,
+7^# \%T( ,*a{ &>n? t8J( >*|F @{4? >X4T o7r+ bQ:L *^C_ ;#8& `w(( >,v. a<dY D52+
1_+: "-i) }&f? *LNO %d5F yu{O $}&x 'v]? *b{m &*i! W\#( <%i+ }=o" 9=#& \@1{ @4-?
O])U :`Z? T{`> &>}0 <[T+ `w|{ *"k* >@b^ ~,8+ "{;n &-X* "l{+ [V_" ^8$. $Ppv MY7%
1e;R ={g# |N}_ )`[d *U\~ "@L# &o{, ^Y[! m13= z@\$ /\o. VdO" %EBr h,cD &^(6 )t(`
'S%, @L(? zd{g 0YR" n;}_ 9$~^ N`$! hz>G iM_A JT8+ K)-] g[`? 1J@~ -l*? {<n& w{+:
;r`& ,9-> (}r| M$<? I"0* H|=. =[:T (^#y V~-/ 6(:? K{GF RzF^ V^4d ;#>d ~C}@ b(^\
(_B- /)_K >;^i V#%! c5H^ 'R@> <M:. ee\0 jPH( JV=4 >{&k "T#\ y';) {^e? :gq7 2B(3
+P-| s\%( 'e~? TE8^ V6U> mB<q 'K&( {u|! y@<A ]f&. "K~+ =o(? 5+u^ u>(? a_%. *</>

Như tôi đã gợi ý trong các bình luận, haystack này chủ yếu là kim.

Chúng ta có thể chào thế giới bằng cách thực hiện các hướng dẫn sau:

ASSIGN NOP LITERAL 16
OUTCHAR ADD MULTIPLY VALUE NOP LITERAL 4 LITERAL 8
OUTCHAR ADD MULTIPLY VALUE NOP LITERAL 6 LITERAL 5
OUTCHAR ADD MULTIPLY VALUE NOP LITERAL 6 LITERAL 12
OUTCHAR ADD MULTIPLY VALUE NOP LITERAL 6 LITERAL 12
OUTCHAR ADD MULTIPLY VALUE NOP LITERAL 6 LITERAL 15
OUTCHAR ADD MULTIPLY VALUE NOP LITERAL 2 LITERAL 12
OUTCHAR MULTIPLY VALUE NOP LITERAL 2
OUTCHAR ADD MULTIPLY VALUE NOP LITERAL 5 LITERAL 7
OUTCHAR ADD MULTIPLY VALUE NOP LITERAL 6 LITERAL 15
OUTCHAR ADD MULTIPLY VALUE NOP LITERAL 7 LITERAL 2
OUTCHAR ADD MULTIPLY VALUE NOP LITERAL 6 LITERAL 12
OUTCHAR ADD MULTIPLY VALUE NOP LITERAL 6 LITERAL 4
OUTCHAR ADD MULTIPLY VALUE NOP LITERAL 2 LITERAL 1

Wordy mã hóa tất cả các hướng dẫn dưới dạng câu, trong đó phần nhỏ của các từ dài hơn và ngắn hơn mức trung bình được làm tròn sẽ chọn lệnh.

Các câu ngắn nhất tôi có thể tìm thấy cho các hướng dẫn được sử dụng là:

ASSIGN xxx xxx xxx xxx xxx xxx xxx xxx xxx xxx xxx xxx xxx x x x x x x x.
VALUE xxx xxx x x x.
ADD xxx x x.
MULTIPLY xxx xxx xxx x x x x.
OUTCHAR xxx xxx xxx x x x x x x x.
NOP xxx xxx xxx x x.
LITERAL xx x.

Nhưng làm thế nào người ta có thể che giấu sự thật rằng độ dài từ là điều quan trọng duy nhất trong mã nguồn?

Cả thứ tự từ và ký tự từ được chọn đều không quan trọng, miễn là chúng là chữ và số, vì vậy tôi quyết định thêm các ký tự không chữ và số ngẫu nhiên vào mỗi từ để ghép tất cả chúng vào cùng một độ dài. Tôi cũng đã thêm một vài từ không (không có ký tự chữ và số) để cung cấp cho mã nguồn hình dạng hình chữ nhật thú vị của nó.

Tôi đã tạo mã nguồn cuối cùng bằng chương trình CJam này .


3
Đó là một đống cỏ khô lớn.
Sp3000

4
Tôi đoán điều đó phụ thuộc vào kích thước của kim.
Dennis

6
Nói về đống cỏ khô. Nếu hiện tại không có một ngôn ngữ gọi là "Haystack", thì đó sẽ là một cái tên tuyệt vời cho một ...
mbomb007

@ mbomb007 làm việc trên đó;)
Kade

Tôi khá chắc chắn rằng nó không phải, nhưng l33t ?
MickyT
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.