Polyglots chồng chéo


37

Không giống như nhiều thách thức C & R, điều này không yêu cầu một bài cướp riêng biệt; Mục tiêu của bọn cướp là bẻ khóa câu trả lời trước đó và sau đó đăng bài mới làm cảnh sát.

Là người trả lời, bạn sẽ viết một loạt các đa giác trông như thế này (mỗi cột là một ngôn ngữ và mỗi mục là đầu ra của câu trả lời trong ngôn ngữ đó):

Language:  1  2  3  4  5  6  7  8  ...
Answer 1:  0  1  2
Answer 2:     1  2  3
Answer 3:        2  3  4
Answer 4:           3  4  5
Answer 5:              4  5  6
Answer 6:                 5  6  7
...

(khoảng trắng có nghĩa là không có hành vi được yêu cầu trong trường hợp đó).

Mỗi câu trả lời nên làm việc trong 3 ngôn ngữ và in 3 số liên tiếp khác nhau mà mỗi người hơn con số được in bằng các câu trả lời trước (các bản in câu trả lời đầu tiên 0, 12). Mỗi câu trả lời sử dụng hai ngôn ngữ từ lần gửi trước và ngôn ngữ mới thứ ba. Người trả lời nên cố gắng làm xáo trộn ngôn ngữ thứ ba này là gì.

Để đăng câu trả lời mới, bạn nên:

  • Crack câu trả lời gần đây nhất bằng cách tìm ngôn ngữ thứ ba của nó là gì.
  • Tốt nhất, thêm một lời giải thích cho vết nứt của bạn và thông báo cho người đăng câu trả lời. Khi bài nộp của bạn đã bị bẻ khóa, tốt nhất bạn nên thêm một lời giải thích.
  • Viết một đa âm bao gồm các ngôn ngữ thứ hai và thứ ba của câu trả lời này, cùng với một ngôn ngữ khác bạn chọn. Tiết lộ hai ngôn ngữ đầu tiên của bạn, nhưng không tiết lộ ngôn ngữ mới của bạn. Mục tiêu của bài đăng tiếp theo là tìm ngôn ngữ này (hoặc bất kỳ ngôn ngữ nào khác mà nó hoạt động), vì vậy bạn nên cố gắng làm khó nó.

Thông số kỹ thuật

  • Các tiêu chí cho một ngôn ngữ lập trình hợp lệ giống như các tiêu chí của Bài kiểm tra ngôn ngữ lập trình, Mark II - Cops :

  • Mỗi câu trả lời phải chạy trong chưa đầy một phút trên PC hợp lý.

  • Bạn có thể sử dụng lại các ngôn ngữ lập trình, nhưng phải có ít nhất hai câu trả lời ở giữa (vì vậy một câu trả lời riêng lẻ không thể sử dụng lại một ngôn ngữ).
  • Bẻ khóa một bài nộp bao gồm tìm bất kỳ ngôn ngữ lập trình nào in ra kết quả chính xác, không chỉ là ngôn ngữ dự định. Nếu một bài nộp được chạy trong bất kỳ ngôn ngữ nào không được tuyên bố hoặc tìm thấy để làm việc, không có yêu cầu để làm bất cứ điều gì.
  • Bạn không thể đăng hai lần (hoặc nhiều hơn) liên tiếp.

Tiêu chí chiến thắng

Câu trả lời chiến thắng là câu trả lời nào mất nhiều thời gian nhất để bị bẻ khóa. Thử thách sẽ không bao giờ kết thúc, vì vậy luôn có khả năng câu trả lời chiến thắng sẽ thay đổi.


2
Đã mở một phòng chat để thảo luận về các vết nứt có thể và xây dựng các polyglots.
Bong bóng

1
Câu trả lời có thể xuất ra những thứ khác ngoài số lượng mong muốn không?
NieDzejkob

1
@NieDzejkob Không, chương trình chỉ nên xuất số và có, tôi thích hơn nếu các chương trình chạy trong vòng một phút.
Esolanging Fruit

3
Đây là một truy vấn SEDE tính toán thời gian các câu trả lời được giữ an toàn (tính bằng giờ).
NieDzejkob

1
@EmbodimentofIgnorance Có, bạn có thể yêu cầu các cờ dòng lệnh vì về cơ bản chúng xác định các trình thông dịch riêng biệt và có, chương trình phải chỉ in số. Chương trình có thể xuất ra STDERR, nhưng chỉ có đầu ra cho STDOUT là có liên quan.
Esolanging Fruit

Câu trả lời:


11

Hexagony, Klein (101) và ???

  xx={puts/}
gets87!@xx=p

main\

>9.*5,6v

Bản in này 7trong Hexagony , 8in Klein (101)9trong ???.

Các 9không hoạt động nếu một dòng mới được thêm vào cuối của mã này. Hãy cẩn thận nếu bạn đang thử nghiệm cục bộ.

Chỉnh sửa: Sống trong 20 giờ đã là một kỷ lục, vì vậy tôi sẽ đưa ra một số gợi ý từ bây giờ. (Cũng bởi vì ngôn ngữ trong câu hỏi là IMO chưa được nhiều người biết đến.)

Gợi ý

  1. "Các 9 Không hoạt động nếu một dòng mới được thêm vào cuối" rất có ý nghĩa, cũng như hai khoảng trắng đầu tiên (được bỏ qua bởi cả Hexagony và Klein).
  2. Ngôn ngữ là trên TIO.
  3. Hai không gian đầu tiên làm cho chương trình nhảy đến dòng cuối cùng. (Nó là không phải là ngôn ngữ 2D.)
  4. Không có lệnh đầu ra rõ ràng và v lệnh kết thúc chương trình.

Giải trình ( bài bị bẻ khóa )

Trong mã nguồn

abcd={} -- a gaffe avoiding tactic in C++/C#
abcd[!1]=   1+2+3+4+5+6+7+8+9+10+11+12+13+17!
print(abcd[0>1+2+3 and 4+8+6<0-0]//35)
if 0>1 then a.next=';' en\
                    >1+6.@.@

Các hướng dẫn liên quan trong Klein (101) là:

IP->.....................^...........IP->/
.........................|...................
.........................8
.........................\<-.............IP<-
                         @

Klein là ngôn ngữ 2D giống như nấm trong đó việc vượt qua ranh giới của vùng mã (là hình vuông) phụ thuộc vào cấu trúc liên kết của Klein. /\là những tấm gương.

IP bắt đầu ở góc trên bên trái đối diện bên phải. Nó gặp một tấm gương hướng về ranh giới trên cùng và nhập lại vào vùng mã ở phía bên phải như hình trên. Sau đó, nó chạm vào gương một lần nữa, 8 được đẩy, và sau đó (sau khi đi qua ranh giới nhiều lần) dừng lại ở @. Sau đó, nội dung của ngăn xếp được in ra thiết bị xuất chuẩn, là đơn 8.



9

Befunge-96, Lục giác và ???

abcd={} -- a gaffe avoiding tactic in C++/C#
abcd[!1]=   1+2+3+4+5+6+7+8+9+10+11+12+13+17!
print(abcd[0>1+2+3 and 4+8+6<0-0]//35)
if 0>1 then a.next=';' en\
                    >1+6.@.@

Bản in này 6trong Befunge-96 , 7in hexagony8in ???.

Giải trình

Mã hexagony, khi "prettified" là:

       a b c d = { } - 
      - a g a f f e a v 
     o i d i n g t a c t 
    i c i n C + + a b c d 
   [ f a l s e ] = 1 + 2 + 
  3 + 4 + 5 + 6 + 7 + 8 + 9 
 + 1 0 + 1 1 + 1 2 + 1 3 + 1 
7 ! p r i n t ( a b c d [ 0 > 
 1 + 2 + 3 a n d 4 + 5 + 6 < 
  0 - 0 ] / / 3 5 ) i f 0 > 
   1 t h e n a . n e x t = 
    ' ; ' e n d > 1 + 6 . 
     @ . . . . . . . . . 
      . . . . . . . . . 
       . . . . . . . . 

Con đường thực hiện bắt đầu ở phía trên bên trái hướng về phía Đông. Hàng trên cùng không làm được gì nhiều. -thay đổi cạnh bộ nhớ hiện tại để giá trị trong đó là 0. Thực thi tiếp tục hướng về phía đông trên hàng giữa, nơi 7!tải 7trong cạnh bộ nhớ hiện tại và in là một số nguyên. [thay đổi con trỏ lệnh sang Đông Bắc bắt đầu từ 7. Sau đó 7+3, thực hiện rồi sẽ [thay đổi con trỏ chỉ dẫn sang Tây Bắc bắt đầu ở góc Đông Nam. Cuối cùng, đường dẫn là ..@nơi @kết thúc chương trình.



8

Lua, brainfuck, ???

abcd = {} - một chiến thuật tránh gaffe trong C ++
abcd [sai] = 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + 10 + 11 + 12 + 13 + 14
in (abcd [0> 1 + 2 + 3 và 4 + 5 + 6 <0-0] // 35)
nếu 0> 1 thì a.next = ';' kết thúc

In 3 in Lua, 4 in brainfuck và 5 in ???.

Giải thích cho bài bị bẻ khóa :

a = 1 + 2 + 3 + 3 + 4 + 5 + 6 + 7 + 8 + 9
b = 1 + 1 + 1
f = 3 - (- 1)
c = 7 + 9 + 13 + 11 + 12 + 3--1
g = a + b + c + 1 + 2 + 3 + 4 + 5
j = 9 + 7 + g + c + b + a + g + g + g + g + g + g + 1 + 2 + 3 + 4 + 1 + 1
h = 1 + 1 + 1 + 1 + 333 + 1 + 1 + 1 + 111 + 1 + 1 + 1 + 333 + 1 + 1 + 1 + 1 + 1.
in (f)
  • Trong Python 3, 3--(-1)là 2, do đó, print(f)in 2 (những thứ khác là không cần thiết)
  • Trong Lua, --một lần nữa là một nhận xét, vì vậy 3--(-1)chỉ là 3, vì vậy print(f)in 3 (những thứ khác là không cần thiết)
  • Trong brainfuck, có 57 kìm và 5 điểm trừ đặt ô đầu tiên trên băng thành 52 và .ký tự đầu ra 52 là 4.

+1 và Cracked
Zacharý

8

Kích hoạt , JavaScript và ???

[ //aТ/\\ ][ //е"6
console.log(111-111+12)]
//!'!/-²6-²52

In 11trong Kích hoạt , 12bằng JavaScript13trong REDACTED.

Vì điều này đã không bị bẻ khóa lâu hơn bất kỳ câu trả lời nào khác cho đến nay, đây là một số gợi ý:

  • Trong trường hợp bạn không nhận thấy, Теtrên dòng đầu tiên là các ký tự đa nhân.
  • [ //\\ ][ //là không-ops.
  • Dòng thứ hai, cũng như -²52, là mã chết.
  • Ngôn ngữ không có khái niệm chấm dứt, do đó ²6hình thành một vòng lặp vô hạn.
  • Cụ thể, byte thứ hai của mã hóa UTF-8 ², cùng với 6, tạo thành một vòng lặp vô hạn.
  • Số được xuất ra được mã hóa bởi /!'!/
  • Ngôn ngữ không có trên Try It Online, Rosetta Code hoặc Esolangs.
  • Hình thức đầu ra khả dụng duy nhất là màn hình 1bpp.
  • Tỷ lệ khung hình của màn hình là 2.
  • Mặc dù ngôn ngữ ban đầu không được dự định là mã máy, nhưng việc triển khai FPGA vẫn tồn tại.
  • Theo Wikipedia, mục đích dự định của ngôn ngữ là trò chơi điện tử.
  • Cách duy nhất để truy cập màn hình là một hướng dẫn đặc biệt, lấy tọa độ trong các thanh ghi có thể chọn và chiều cao là ngay lập tức, và XOR một bitmap 8 x n lên màn hình. Để giúp phát hiện va chạm dễ dàng hơn, cũng như giúp xóa màn hình, một trong các thanh ghi sẽ được đặt khi bất kỳ pixel nào được đặt lại thành tắt.

Giải trình

Vâng, điều này đã mất một thời gian để có được nứt. Hãy xem mã trông như thế nào:

0200 5b20    SE VB, V2   ; Skip the next instruction if VB = V2. Since all
0202 2f2f    CALL 0xF2F  ; registers start at 0, this call will be skipped. This
                         ; hides the bytecode from JavaScript.
0204 61d0    LD V1, 0xD0 ; A useless load. Necessary to use a UTF-8 continuation
0206 a22f    LD I, 0x22F ; byte as an instruction and load the address of
                         ; the sprite.
0208 5c5c    SE VC, V5   ; A red herring supposed to suggest symmetry is
                         ; important, as well as a totally intended eliminator
                         ; of inaccurate implementations. Most documentation
                         ; claims that the lowest nibble must be zero, but in
                         ; the original COSMAC VIP implementation it's
                         ; a don't-care.

Điều này có nghĩa là, trong khi nhiều trình giả lập có sẵn hoạt động chính xác, thì việc thực hiện theo quy tắc được liên kết đến trong câu thứ hai của trang Wikipedia . Tất nhiên, nó không thể chạy trực tiếp trên một PC trung bình, nhưng tôi đã tìm thấy trình giả lập Emma 02 được liên kết đến trên trang COSMAC VIP để hoạt động tốt nhất.

020A 205d    CALL 0x05D    ; Skipped.
020C 5b20    SE VB, V2     ; Same as with the very beginning. Red herring.
020E 2f2f    CALL 0xF2F
0210 d0b5    DRW V0, VB, 5 ; Draw the sprite pointed to by I. Since V0 and VB
                           ; haven't been written to yet, the sprite will be drawn
                           ; in the top-left corner of the screen. The height is
                           ; an immediate.
0212 2236    CALL 0x236    ; Jump over the JavaScript and Trigger code. It doesn't
                           ; matter that we never return.
0214-022E *never used*
022F 2f      DB %00101111  ; Sprite data.
0230 21      DB %00100001
0231 27      DB %00100111
0232 21      DB %00100001
0233 2f      DB %00101111
0234-0235 *never used*
0236 b236    JP V0, 0x236  ; Since V0 is still zero, this is an infinite loop.
0238-023C *never used*     ; Together with the previous two lines, it's the
                           ; -²6-²52. It's a red herring supposed to suggest
                           ; prefix, or Polish, notation.

Đừng nói với tôi đây là mã máy trên một số bộ xử lý.
SIGSTACKFAULT

1
@Blacksilver Tôi đã giả sử như vậy từ hai gợi ý trước đây - những gì khác sẽ như thế này, không phải trên Esolang, nhưng vẫn đủ đáng chú ý cho Wikipedia?
Ørjan Johansen

@Blacksilver OK.
NieDzejkob

@ngm xin lỗi, nhưng không
NieDzejkob

Cracked , tôi tin rằng, theo các quy tắc.
ngm

7

Python 2, Python 3, ???

a={1,2}
print(1+#a
--bool(1/2)
)

Điều này in 1 trong Python 2, 2 trong Python 3 và 3 trong ???.

Giải thích về crack (Cracked post) :

#define print(A) main(){puts("0");}
print(1+bool(1/2))
  • 0: C: Dòng đầu tiên xác định một macro giống như hàm printmà bỏ qua đối số duy nhất của nó và đánh giá thànhmain(){puts("0");} , một chương trình đầy đủ in 0và thoát. Toàn bộ biểu thức 1+bool(1/2)được bỏ qua khi print( )macro trên dòng thứ hai được mở rộng thành main(){puts("0");}.

  • 1: Python 2: Dòng đầu tiên là một nhận xét. 1/2sử dụng phép chia số nguyên trong Python 2, cho 0. Giá trị này sau đó được hiểu là boolean (bool(0) -> False) và sau đó được thêm vào 1( 1+False-> 1), sau đó được in.

  • 2: Python 3: Dòng đầu tiên là một nhận xét. 1/2sử dụng phép chia float trong Python 3, cho 0,5. Giá trị này sau đó được hiểu là boolean ( bool(0.5)-> True) và sau đó được thêm vào 1(1+True -> 2), sau đó được in.



7

JavaScript , CHIP-8 và ???

[ //aТ/\\ ][ //е"6
console.log(111-111+12)]
//!'!/-²6-²52@++++2345

12 trong JavaScript , 13trong CHIP-8 và 14trong ???

Tôi sẽ đi ra ngoài và gọi nó bị nứt, mặc dù tôi không thể làm cho nó hoạt động được. Tôi chắc chắn về ngôn ngữ (dường như đó là những gì các quy tắc yêu cầu.)

Đây là một lời giải thích không hoàn hảo của bài viết bị nứt

Mã ở dạng thập lục phân "là" (tôi có thể hơi tắt):

[ 0x5b, 0x20, 0x2f, 0x2f, 0x61, 0xD0, 0xA2, 0x2f, 0x5c, 
0x5c, 0x20, 0x5d, 0x5b, 0x20, 0x2f, 0x2f, 0xD0, 0xB5, 
0x22, 0x36, 0x0a, 0x63, 0x6f, 0x6e, 0x73, 0x6f, 
0x6c, 0x65, 0x2e, 0x6c, 0x6f, 0x67, 0x28, 0x31, 
0x31, 0x31, 0x2d, 0x31, 0x31, 0x31, 0x2b, 0x31, 
0x32, 0x29, 0x5d, 0x0a, 0x2f, 0x2f, 0x21, 0x27, 
0x21, 0x2f, 0x2d, 0xb2, 0x36, 0x2d, 0xb2, 0x35, 0x32 ]

Bạn có thể đi đây , nhấp vào "Công cụ nhị phân" và dán nó vào hộp mảng byte. Nhấp vào "Biên dịch".

Các yếu tố chính của mã là: hướng dẫn để nói "số" ở đâu, spritelệnh in số, số lượng rác chính xác ở đây và ở đó, và sau đây:

: label-0
    0x2F
    0x21
    0x27
    0x21
    0x2F

Để xem những gì nó thể hiện, bạn có thể nhấp vào "Sprite Editor" và dán các hexadecimals này vào hộp bên dưới. Bạn sẽ thấy câu trả lời:

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

Tôi khá chắc chắn rằng sau đó bạn có thể đặt bất cứ thứ gì bạn thích và kết quả CHIP-8 sẽ không thay đổi, do đó, mục nhập mới.

Tôi sẽ rất vui nếu ai đó có thể làm việc này hoàn toàn hiệu quả, thay vì "bằng chứng" cho câu trả lời tôi đã đưa ra ở đây.


Tôi sẽ cho phép điều đó . Tôi sẽ chỉnh sửa trong một lời giải thích sau ngày hôm nay. Làm tốt lắm.
NieDzejkob


Ngoài ra, hệ thập lục phân của bạn phải sai vì nó không giải mã được dưới dạng UTF-8 hợp lệ ...
NieDzejkob

5

C, Python 2, ???

#define print(A) main(){puts("0");}
print(1+bool(1/2))

Điều này in 0bằng C, 1trong Python 2 và 2trong ???.

Điều này sẽ cực kỳ dễ bẻ khóa cho những người biết Python, nhưng tôi muốn một điểm khởi đầu cho các câu trả lời khác. Các câu trả lời tiếp theo nên cố gắng làm xáo trộn ngôn ngữ thứ ba (tôi đã không làm điều này).


Nứt . Thử thách lớn btw!
pizzapants184

5

Trăn 3, Lua, ???

a=1+2+3+3+4+5+6+7+8+9
b=1+1+1
f=3--(-1)
c=7+9+13+11+12+3--1
g=a+b+c+1+2+3+4+5
j=9+7+g+c+b+a+g+g+g+g+g+g+1+2+3+4+1+1
h=1+1+1+1+333+1+1+1+111+1+1+1+333+1+1+1+1+1.
print(f)

In 2 bằng Python 3, 3 bằng Lua và 4 in ???.

Giải thích cho bài bị bẻ khóa :

a={1,2}
print(1+#a
--bool(1/2)
)
  • Trong Lua, - là một nhận xét. Trong Python 2 và 3, - biểu thị số âm gấp đôi trong số học.
  • Trong Python 2 và 3, # là một nhận xét. Trong Lua, # là toán tử độ dài.
  • Trong Python 2, 1/2 là phân chia tầng, do đó, nó ước tính bằng không. Trong Python 3 đây không phải là trường hợp. Vì cả hai phiên bản của Python đánh giá 0 thành Sai, bool (1/2) ước tính thành Sai trong Python 2 và True trong Python 3. Khi được sử dụng trong số học, Sai được chuyển thành 0 và True được chuyển thành 1.


5

> <>, Befunge-96 và ???

abcd={} -- a gaffe avoiding tactic in C++
abcd[false]=1+2+3+4+5+6+7+8+9+10+11+12+13+17!
print(abcd[0>1+2+3 and 4+5+6<0-0]//35)
if 0>1 then a.next=';' end
                    >1+6.@

Cái này in 5 in><> , 6 inBefunge-967 in ???.

Tôi biết giải pháp dự định là Befunge-93, nhưng tôi không thể cưỡng lại.

Giải trình:

Befunge-96 đi theo cùng một đường dẫn như ><>, nhưng bỏ qua các hướng dẫn không xác định, cuối cùng thêm một vào 5 và nhân nó với 9 để có được 54, mã ascii cho 6.



5

Bình luận viên , Beatnik , ???

// k... nak... naKaka pagpAbaGaBag
static answer: Option<&String> = None;
 
fn llanfairpwllgwyngyllgogerychwyrndrobwllllantysiliogogogoch(s: &String){
  answer = Some(s);
}
 
fn pneumonoultramicroscopicsilicovolcanoconiosis(){
  println!("{}", answer.unwrap());
}
 
fn main(){
  let s = String::from("17");
  let t = "Hi! I am a cat. AOOOWRRRWWW! Me need Whiskas! Noow! Mee hungry hast bekommen. Feedme! sudo !!. Sad... six cable hostage wire cable diediediediee #               */";
  llanfairpwllgwyngyllgogerychwyrndrobwllllantysiliogogogoch(&s);
  pneumonoultramicroscopicsilicovolcanoconiosis();
}

Xuất ra 15 trong Bình luận viên , 16 trong Beatnik và 17 với hy vọng một ngôn ngữ mà bạn phải tìm.

Được rồi, đó là thời gian đầu mối:

  • Tên của ngôn ngữ đề cập đến một hợp chất gồm hai yếu tố, cả hai yếu tố tạo nên cơ thể của bạn, nhưng với tỷ lệ phần trăm khác nhau (tùy thuộc vào việc bạn có phải là robot không).
  • Bản thân ngôn ngữ là trên TIO, nhưng việc thực hiện thì không.
  • Thôi nào.

1
Trông giống như Rust ( fn main(), trong số những thứ khác), nhưng nó không thực sự chạy trong Rust ( explicit lifetime required in the type of 's'), không phải trên TIO hay một trình thông dịch khác mà tôi tìm thấy. Và tôi không thể tìm thấy bất kỳ ngôn ngữ nào khác sử dụng fnlàm định danh hàm.
Draco18

Huh, ngay cả gợi ý trông giống như Rust, là hợp chất của Fe và O. Tôi không thể nghĩ gì khác. Có thể các phiên bản trình biên dịch khác nhau?
Bong bóng

1
Tôi nghi ngờ đây có thể là Rust được biên dịch với mrustc , về cơ bản là Rust mà không cần người kiểm tra mượn.
Trái cây Esolanging

@Esolanging Quả thử nó
NieDzejkob

Ba tháng sau, cuối cùng tôi cũng có thể phá được thứ này
Esolanging Fruit

4

Brainfuck,> <> và ???

abcd={} -- a gaffe avoiding tactic in C++
abcd[false]=1+2+3+4+5+6+7+8+9+10+11+12+13+14
print(abcd[0>1+2+3 and 4+5+6<0-0]//35)
if 0>1 then a.next=';' end
                    >1+9*,@

In 4trong Brainfuck, 5trong> <> và 6trong ???

  • Trong brainfuck, không có gì thay đổi.
  • Trong> <>, vchuyển hướng dòng chương trình đi xuống. Đầu ra nn umeric. ;kết thúc thực hiện.



4

Beatnik , Rust , ???

fn avreg(){}
fn/*azxzzz avreg k zqyzzz ax quke    
>>P0 ++puts++puts[pov]
\@�{>*}++puts++puts++puts++puts++puts++puts++puts++puts%
*/main(){print!("17")}

Điều này in 16 trong Beatnik, 17 in Rust và 18 in ???.

tự trên dòng 4 nên được thay thế bằng ký tự ASCII 18 (điều này không được thực hiện trong các liên kết TIO vì nó không liên quan đến một trong số chúng).

Giải thích ( bẻ khóa ):

Ngôn ngữ của câu trả lời trước đó là Rust: cụ thể, Rust được biên dịch với mrustc . mrustc là một trình biên dịch thử nghiệm và vì phần lớn được dùng để bootstrapping một phiên bản hợp lệ rustc, nó bỏ qua kiểm tra mượn và kiểm tra khả năng biến đổi, cho phép đoạn trích của @ NieDzejkob biên dịch mà không gặp lỗi.

Chương trình này sẽ hoạt động với trình biên dịch Rust bình thường, vì vậy bạn không cần phải cài đặt mrustc để kiểm tra nó.

Gợi ý

Vì câu trả lời này đã trôi qua lâu nhất mà không bị bẻ khóa, tôi sẽ để lại một gợi ý và tiếp tục thực hiện thường xuyên cho đến khi nó bị nứt:

  • Ngôn ngữ bí mật là hai chiều.
  • Như tôi đã đề cập trong các bình luận, ngôn ngữ không có trên TIO.
  • Nhân vật này là một cá trích đỏ và có rất ít ý nghĩa. Hầu hết các byte có thể được thay thế ở vị trí của nó và chương trình sẽ vẫn hoạt động.

1
Trong khi ném các ngôn ngữ này một cách ngẫu nhiên (không tìm thấy nhiều tìm kiếm "ascii codepoint 0x12 esolang"), tôi nhận thấy rằng nó thực sự tạo ra 15 in> <>, vì vậy đó là gọn gàng
Chuỗi không liên quan

1
Có vẻ như điều này không in 18 bằng bất kỳ ngôn ngữ nào trên TIO (không có bất kỳ cờ tiêu đề, chân trang hoặc dòng lệnh nào được thêm ít nhất). Tôi hy vọng tôi đã không bỏ lỡ bất kỳ điều gì, vì có vẻ như sẽ khó hơn một chút để kiểm tra mọi thứ trên esolang, Wikipedia và Rosetta Code ... Tôi đoán tốt nhất là đây là một loại ngôn ngữ 2D một trong hai @,P , {, hoặc mbắt đầu một chữ nhân vật và một cái gì đó sau đó in điểm mã của nó trong hệ thập phân, nhưng điều đó không giải thích tất cả các ++s ...
không liên quan Chuỗi

1
@UnrelatedString Có, tôi sẽ xác nhận rằng đó không phải là ngôn ngữ trên TIO.
Esolanging Fruit

1
Chà, tôi có thể đã lãng phí một ngày để trải qua 100 ngôn ngữ trên esolang.org khi cố gắng tìm một ngôn ngữ phù hợp ... Sau đó, tôi đọc điều ký tự ASCII 18 và nhận ra cách tiếp cận của mình là hoàn toàn sai khi tôi tìm kiếm một lớp ngôn ngữ hoàn toàn khác ...
IQuick 143

2
@ IQuick143 herrings có màu đỏ
Esolanging Fruit


3

Somme , Kích hoạt và ???

[,,E,D,,$,H,_,K,,$,,_,F,L]=!
[]+[]+!![]+[][111]
_=[111][F+L+E+E];[,J,,A,I,,B,C,S]=
[]+_;$=A+B+C+D+I+H+J+A+I+B+H
R=_[$](H+K+I+J+H+C+S+H+B+B+I)();G=($[$]+[])[14]
R[A+B+C+D+B+E+K][E+B+G](12);`
iP<`

Điều này in 10bằng Somme , 11trong Kích hoạt , và 12trong ???.

Vì hai ngôn ngữ cuối cùng dễ đa âm, tôi quyết định trộn ngôn ngữ đó vào.

Giải thích ( bài bị bẻ khóa )

Trình kích hoạt xem toàn bộ mã dưới dạng một loạt các mã thông báo (mã thông báo là tham lam):

  • Byte đơn (biểu thị A)
  • Hai byte giống nhau theo sau bởi một byte khác nhau (biểu thị AAB )
  • Ba byte giống nhau (ký hiệu AAA )
  • Bốn byte giống nhau (ký hiệu AAAA)

Trong mã nguồn

!!8@e6v+4>9 \
1((111+111)/111)
00
~tz

các mã thông báo quan trọng là ((1 11+ 111 111, trong đó hai cái đầu tiên không làm gì và hai cái cuối cùng in 1 mỗi cái - do đó là 11.



3

CHIP-8 , Klein (100) , ???

[ //aТ/\\ ][ //е"6
console.log(111-111+12)]
//!'!/-²6-²52@++++2345
 %/    <#> 13
       say 14
 + not not 15

Đầu ra 13 trong CHIP-8 (tôi giả sử), 14 ở Klein và 15 trong ???.

Một cấu trúc liên kết khác của Klein, tsk tsk. Tôi đã bảo quản mã trước @, vì tôi không biết điều gì sẽ ảnh hưởng đến CHIP-8.

Manh mối

Tôi hơi quá hạn cho những điều này, xin lỗi. Tôi sẽ thử và thêm một ngày.

  • Xóa nửa đầu (ba dòng đầu tiên) của chương trình vẫn hoạt động.
  • Đây không phải là ngôn ngữ 2D
  • Ngôn ngữ trên TIO
  • Các nots và saycó thể được gỡ bỏ mà không ảnh hưởng đến chương trình

Để tham khảo, chương trình không có nội dung đó trông như thế này:

 %/    <#> 13
        14
 +   15

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


2
...Tôi sợ. Điều này chạy trong Runic và đầu ra 16 .
Draco18

@ Draco18s Cố ý
Jo King

Nó sẽ không có sau bản cập nhật tiếp theo của tôi, vì tôi đã thêm một số xử lý chuỗi tốt hơn cho một số toán tử (hiện tại TIO hiện ra 1một chuỗi và được tạo thành từ dòng đầu tiên và "đây không phải là một giá trị" và loại bỏ chúng, cập nhật sẽ concat, mặc dù tôi có một toán tử cho điều đó, nhưng concat hoạt động trên các ký tự và số cũng như các chuỗi, trong đó +coi chúng là số ). Nhưng nó cực kỳ ma quái giống như "Tôi tự hỏi ... trời ơi, điều này có thể không được sửa đổi và là mục tiếp theo ... nếu tôi biết ngôn ngữ ???"
Draco18

Bạn đang xác định một nửa bởi byte, ký tự, dòng hoặc một cái gì đó cụ thể?
NieDzejkob


3

Klein (100), Bình luận viên , ???

/@++++2345
start:
program:
 db 'function',10
 add program,program
 jp null+$8
 sbc rbp,rbp
 jnz program
 jr program
 add start
 halt
ex:

Đầu ra 14 in Klein (100) , 15 in Bình luận viên , 16 in ???.

Tôi thực sự tệ trong việc làm xáo trộn các polyglots.

Giải thích ( Cracked post )

 %/    <#> 13
        14
 +   15

Trong Bình luận viên, mã thông báo và khoảng trắng nhận xét chung là các lệnh quan trọng và bất kỳ ký tự nào khác đều bị bỏ qua.

  • Không gian tăng các ô nhớ hiện tại.
  • <# XOR 1 trên ô nhớ hiện tại.
  • % được sử dụng để đặt lại ô nhớ hiện tại về không.

Đợi đã, có 16 khoảng trống sau %, chuyện gì đã xảy ra?

Đó thực sự là một lỗi nhỏ (hoặc tính năng?) Trong trình thông dịch. /được coi là bắt đầu của lệnh 2 char, vì vậy khoảng trống sau khi được sử dụng. Nhưng /<space>là lệnh không xác định (do đó là không có op), vì vậy không gian được bỏ qua một cách hiệu quả.


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.