รูปหลายเหลี่ยมที่ทับซ้อนกัน


37

ซึ่งแตกต่างจากความท้าทายของ C&R หลายประการซึ่งไม่จำเป็นต้องแยกโพสต์โจร เป้าหมายของโจรคือการถอดรหัสคำตอบก่อนหน้าแล้วโพสต์ใหม่เป็นตำรวจ

ในฐานะผู้ตอบคุณจะเขียนชุดของรูปหลายเหลี่ยมที่มีลักษณะเช่นนี้ (แต่ละคอลัมน์เป็นภาษาและแต่ละรายการเป็นผลลัพธ์ของคำตอบในภาษานั้น):

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

(ช่องว่างหมายความว่าไม่จำเป็นต้องมีพฤติกรรมในกรณีนั้น)

แต่ละคำตอบควรทำงานใน 3 ภาษาและพิมพ์หมายเลขที่แตกต่างกัน 3 หมายเลขซึ่งแต่ละอันนั้นมากกว่าตัวเลขที่พิมพ์โดยคำตอบก่อนหน้า (คำตอบแรกจะพิมพ์0ออก1มาและ2 ) แต่ละคำตอบใช้สองภาษาจากการส่งก่อนหน้าและภาษาใหม่ที่สาม ผู้ตอบควรพยายามทำให้งงงวยว่าภาษาที่สามนี้คืออะไร

หากต้องการโพสต์คำตอบใหม่คุณควร:

  • ถอดรหัสคำตอบล่าสุดโดยค้นหาว่าภาษาที่สามคืออะไร
  • ควรเพิ่มคำอธิบายสำหรับรอยแตกของคุณและแจ้งให้ผู้โพสต์คำตอบ เมื่อการส่งของคุณได้รับการถอดรหัสคุณควรเพิ่มคำอธิบายด้วยเช่นกัน
  • เขียนหลายภาษาที่ประกอบด้วยภาษาที่สองและสามของคำตอบนี้พร้อมกับภาษาอื่นที่คุณเลือก เปิดเผยสองภาษาแรกของคุณ แต่อย่าเปิดเผยภาษาใหม่ของคุณ มันจะเป็นเป้าหมายของผู้โพสต์ต่อไปในการค้นหาภาษานี้ (หรือภาษาอื่น ๆ ที่ใช้งานได้) ดังนั้นคุณควรพยายามทำให้งงงวย

ข้อมูลจำเพาะ

  • เกณฑ์สำหรับภาษาการเขียนโปรแกรมที่ถูกต้องเหมือนกันกับThe Programming Language Quiz, Mark II - Cops :

    • มันมีบทความวิกิพีเดียภาษาอังกฤษ , บทความ esolangsหรือบทความ Rosetta รหัสในช่วงเวลาที่ท้าทายนี้ถูกโพสต์หรืออยู่ในลองออนไลน์!. การมีล่ามที่เชื่อมโยงในหน้าใด ๆ เหล่านี้ทำให้ล่ามนั้นถูกกฎหมายอย่างสมบูรณ์
    • มันจะต้องตอบสนองกฎของเราในสิ่งที่ถือว่าเป็นภาษาการเขียนโปรแกรม
    • จะต้องมีล่ามฟรี (เหมือนในเบียร์) ฟรีที่นี่หมายความว่าทุกคนสามารถใช้โปรแกรมได้โดยไม่ต้องจ่ายเงิน
  • คำตอบแต่ละคำตอบต้องใช้เวลาน้อยกว่าหนึ่งนาทีบนพีซีที่เหมาะสม

  • คุณทำได้ใช้ภาษาการเขียนโปรแกรมซ้ำได้ แต่จะต้องมีอย่างน้อยสองคำตอบในระหว่าง (ดังนั้นคำตอบของแต่ละคนไม่สามารถนำภาษากลับมาใช้ซ้ำได้)
  • แคร็กการส่งประกอบด้วยการค้นหาใด ๆภาษาการเขียนโปรแกรมที่พิมพ์ผลลัพธ์ที่ถูกต้องไม่ใช่เฉพาะภาษาที่ต้องการ หากมีการเรียกใช้การส่งในภาษาใด ๆ ที่ไม่ได้ประกาศหรือพบว่าทำงานได้ไม่มีข้อกำหนดที่จะทำอะไร
  • คุณไม่สามารถโพสต์สองครั้ง (หรือมากกว่า) ในแถว

เกณฑ์การชนะ

คำตอบที่ชนะคือคำตอบใดก็ตามที่ใช้เวลามากที่สุดในการถอดรหัส ความท้าทายจะไม่สิ้นสุดดังนั้นจึงเป็นไปได้เสมอที่คำตอบที่ชนะจะเปลี่ยน


2
เปิดห้องสนทนาเพื่อพูดคุยเกี่ยวกับรอยแตกที่เป็นไปได้และการสร้างรูปหลายเหลี่ยม
Bubbler

1
คำตอบสามารถส่งออกสิ่งอื่นนอกเหนือจากจำนวนที่ต้องการได้หรือไม่?
NieDzejkob

1
@NieDzejkob ไม่โปรแกรมควรแสดงเฉพาะตัวเลขและใช่ฉันต้องการหากโปรแกรมทำงานในไม่กี่นาที
แยกผลไม้

3
ต่อไปนี้เป็นคำค้นหา SEDEที่คำนวณระยะเวลาที่คำตอบนั้นปลอดภัย (เป็นชั่วโมง)
NieDzejkob

1
@EmbodimentofIgnorance ใช่คุณสามารถกำหนดแฟล็กบรรทัดคำสั่งได้เนื่องจากพวกมันเป็นตัวกำหนดล่ามที่แยกจากกันและใช่โปรแกรมต้องพิมพ์ตัวเลขเท่านั้น โปรแกรมอาจส่งออกไปยัง STDERR แต่เฉพาะผลลัพธ์ไปยัง STDOUT ที่เกี่ยวข้อง
ผลไม้แยกแยะเมื่อ

คำตอบ:


11

Hexagony, Klein (101) และ ???

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

main\

>9.*5,6v

พิมพ์นี้7ใน Hexagony , 8ในไคลน์ (101)และ9ใน ???

9ไม่ทำงานหากมีการขึ้นบรรทัดใหม่จะถูกเพิ่มในตอนท้ายของรหัส ระวังถ้าคุณกำลังทดสอบในเครื่อง

แก้ไข: การมีชีวิตอยู่เป็นเวลา 20 ชั่วโมงเป็นบันทึกอยู่แล้วดังนั้นฉันจะให้คำแนะนำต่อจากนี้ (เพราะภาษาที่เป็นปัญหายังไม่เป็นที่รู้จัก IMO)

คำแนะนำ

  1. "การ9ไม่ทำงานหากมีการเพิ่มบรรทัดใหม่ในตอนท้าย" มีความสำคัญมากเช่นเดียวกับช่องว่างสองช่องแรก (ซึ่ง Hexagony และ Klein ถูกละเว้น)
  2. ภาษาอยู่ใน TIO
  3. ช่องว่างสองช่องแรกทำให้โปรแกรมข้ามไปยังบรรทัดสุดท้าย ( ไม่ใช่ภาษา 2D)
  4. ไม่มีคำสั่งเอาต์พุตที่ชัดเจนและ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.@.@

คำแนะนำที่เกี่ยวข้องใน Klein (101) คือ:

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

Klein เป็นภาษา 2D แบบ fungelike ที่ข้ามขอบเขตของรหัสพื้นที่ (ซึ่งเป็นรูปสี่เหลี่ยม) ขึ้นอยู่กับโครงสร้างของ Klein /และ\กระจก

IP เริ่มต้นที่มุมซ้ายบนหันไปทางขวา มันตรงกับมิเรอร์ไปยังขอบเขตด้านบนและเข้าสู่พื้นที่รหัสทางด้านขวาอีกครั้งตามที่แสดงด้านบน จากนั้นมันจะกระทบกระจกอีกครั้งที่ 8 จะผลักแล้ว (หลังจากผ่านเขตแดนหลายครั้ง) @หยุดที่ จากนั้นเนื้อหาของสแต็กจะถูกพิมพ์ไปยัง stdout ซึ่งเป็น 8 เดียว



9

Befunge-96, Hexagony และ ???

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

พิมพ์นี้6ใน Befunge-96 , 7ใน hexagonyและ8ใน ???

คำอธิบาย

รหัส hexagony เมื่อ "prettified" คือ:

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

เส้นทางของการดำเนินการเริ่มต้นที่มุมซ้ายบนของทิศตะวันออก แถวบนไม่ทำอะไรมาก การเปลี่ยนแปลงขอบหน่วยความจำในปัจจุบันเพื่อให้คุ้มค่าในนั้นคือ- 0การประมวลผลยังคงมุ่งหน้าไปทางทิศตะวันออกบนแถวกลางซึ่ง7!โหลด7ในขอบหน่วยความจำปัจจุบันและการพิมพ์เป็นจำนวนเต็ม การเปลี่ยนแปลงการเรียนการสอนชี้ไปยังภาคตะวันออกเฉียงเหนือเริ่มต้นกลับมาที่[ 7หลังจากนั้น7+3การประหารชีวิตจะไปถึง[สิ่งที่เปลี่ยนแปลงตัวชี้คำสั่งเป็นทิศตะวันตกเฉียงเหนือซึ่งเริ่มต้นที่มุมตะวันออกเฉียงใต้ ในที่สุดเส้นทางก็คือ..@ที่ซึ่ง@ยุติโปรแกรม



8

Lua, brainfuck, ???

abcd = {} - มารยาทที่หลีกเลี่ยงชั้นเชิงใน C ++
ABCD [เท็จ] = 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + 10 + 11 + 12 + 13 + 14
พิมพ์ (abcd [0> 1 + 2 + 3 และ 4 + 5 + 6 <0-0] // 35)
ถ้า 0> 1 ดังนั้น a.next = ';' ปลาย

พิมพ์ 3 ใน Lua, 4 ใน brainfuck และ 5 ใน ???

คำอธิบายสำหรับโพสต์แตก :

A = 1 + 2 + 3 + 3 + 4 + 5 + 6 + 7 + 8 + 9
ข = 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
พิมพ์ (ฉ)
  • ใน Python 3 3--(-1)คือ 2 ดังนั้นprint(f)พิมพ์ 2 (ไม่จำเป็นต้องมีสิ่งอื่น)
  • ใน Lua --ความคิดเห็นอีกครั้งดังนั้น3--(-1)ก็แค่ 3 ดังนั้นprint(f)พิมพ์ 3 (สิ่งอื่น ๆ ไม่จำเป็นอีกแล้ว)
  • ใน brainfuck มี plusses 57 รายการและ 5 minuses ตั้งเซลล์แรกบนเทปเป็น 52 และ.อักขระเอาต์พุต 52 ซึ่งคือ 4

+1 และแคร็ก
Zacharý

8

Trigger , JavaScriptและ ???

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

พิมพ์11ใน Trigger , 12ใน JavaScriptและใน13REDACTED

เนื่องจากนี่ยังไม่ได้รับการถอดรหัสนานกว่าคำตอบอื่น ๆ จนถึงตอนนี้นี่เป็นคำแนะนำบางส่วน:

  • ในกรณีที่คุณไม่ได้สังเกตเห็นТและеในบรรทัดแรกคืออักขระหลายไบต์
  • [ //และ\\ ][ //ไม่มีตัวเลือก
  • บรรทัดที่สองรวมถึง-²52เป็นโค้ดที่ตายแล้ว
  • ภาษาไม่มีแนวคิดของการเลิกจ้างดังนั้น²6สร้างวงวนไม่สิ้นสุด
  • หากต้องการเจาะจงไบต์ที่สองของการเข้ารหัส UTF-8 ²พร้อมกับ6จะเป็นการวนลูปไม่สิ้นสุด
  • จำนวนที่ส่งออกถูกเข้ารหัสโดย /!'!/
  • ภาษาไม่ได้อยู่ใน Try It Online, Rosetta Code หรือ Esolangs
  • รูปแบบการส่งออกที่ใช้ได้เฉพาะคือหน้าจอ 1bpp
  • อัตราส่วนภาพของหน้าจอคือ 2
  • ในขณะที่ภาษานั้นไม่ได้มีจุดประสงค์เพื่อใช้เป็นรหัสเครื่อง แต่การใช้งาน FPGA ก็มีอยู่
  • ตามวัตถุประสงค์ของภาษาคือวิดีโอเกม
  • วิธีเดียวในการเข้าถึงหน้าจอเป็นคำสั่งพิเศษที่ใช้พิกัดในการลงทะเบียนที่เลือกได้และความสูงเป็นแบบทันทีและ XORs 8 คูณ n บิตแมปบนหน้าจอ เพื่อให้การตรวจจับการชนง่ายขึ้นเช่นเดียวกับทำให้สามารถล้างหน้าจอได้การลงทะเบียนอย่างใดอย่างหนึ่งจะถูกตั้งค่าเมื่อพิกเซลใด ๆ ถูกตั้งค่ากลับเป็นปิด

คำอธิบาย

มันใช้เวลาสักพักกว่าจะแตก มาดูกันว่าโค้ดมีลักษณะอย่างไร:

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.

ซึ่งหมายความว่าในขณะที่หลายใช้ได้เลียนแบบประพฤติอย่างถูกต้อง, การดำเนินการ by-the-กฎมีการเชื่อมโยงในประโยคที่สองของหน้าวิกิพีเดีย แน่นอนว่ามันไม่สามารถทำงานได้โดยตรงบนพีซีทั่วไป แต่ฉันได้พบEmma 02 emulator ที่เชื่อมโยงกับหน้าCOSMAC VIPเพื่อให้ทำงานได้ดีที่สุด

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.

อย่าบอกฉันนี่คือรหัสเครื่องในโปรเซสเซอร์บางตัว
SIGSTACKFAULT

1
@ Blacksilver ฉันได้รับการสมมติตั้งแต่สองคำแนะนำที่ผ่านมา - อะไรจะมีลักษณะเช่นนี้ไม่ได้อยู่ใน Esolang แต่ยังคงมีความโดดเด่นพอสำหรับวิกิพีเดีย?
Ørjan Johansen

@ Blacksilver ตกลง
NieDzejkob

@ngm ขออภัย แต่ไม่ใช่
NieDzejkob

แตกฉันเชื่อว่าตามกฎ
ngm

7

Python 2, Python 3, ???

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

สิ่งนี้จะพิมพ์ 1 ใน Python 2, 2 ใน Python 3 และ 3 ใน ???

คำอธิบายแตก(โพสต์แตก) :

#define print(A) main(){puts("0");}
print(1+bool(1/2))
  • 0: C: บรรทัดแรกกำหนดแมโครเหมือนฟังก์ชันprintที่ละเว้นอาร์กิวเมนต์เดี่ยวและประเมินmain(){puts("0");}เป็นโปรแกรมเต็มรูปแบบที่พิมพ์0และออก นิพจน์ทั้งหมด1+bool(1/2)จะถูกละเว้นเมื่อแมโครในบรรทัดที่สองมีการขยายไปยังprint( )main(){puts("0");}

  • 1: Python 2: บรรทัดแรกคือความคิดเห็น 1/2ใช้การหารจำนวนเต็มใน Python 2 โดยให้ 0 ค่านี้จะถูกตีความว่าเป็นบูลีน ( bool(0)-> False) แล้วเพิ่มลงใน1( 1+False-> 1) แล้วพิมพ์ออกมา

  • 2: Python 3: บรรทัดแรกคือความคิดเห็น 1/2ใช้ส่วนทศนิยมใน Python 3 โดยให้ 0.5 ค่านี้จะถูกตีความว่าเป็นบูลีน ( bool(0.5)-> True) แล้วเพิ่มลงใน1( 1+True-> 2) แล้วพิมพ์ออกมา



7

JavaScript , CHIP-8และ ???

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

12ใน JavaScript , 13ใน CHIP-8 และ14ใน ???

ฉันกำลังจะออกไปที่แขนขาและเรียกสิ่งนี้ว่าแตกแม้ว่าฉันจะไม่สามารถทำงานได้ฉันมั่นใจในภาษา (ซึ่งดูเหมือนว่าเป็นสิ่งที่กฎขอ)

นี่คือคำอธิบายที่ไม่สมบูรณ์ของโพสต์ที่แคร็ก

รหัสในเลขฐานสิบหก "คือ" (ฉันอาจจะปิดเล็กน้อย):

[ 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 ]

คุณสามารถไปที่นี่คลิก "เครื่องมือไบนารี" และวางลงในกล่องอาร์เรย์ไบต์ คลิก "Decompile"

องค์ประกอบที่สำคัญของรหัสคือคำแนะนำในการบอกว่า "number" อยู่ที่ไหนspriteคำสั่งที่พิมพ์หมายเลขจำนวนขยะที่ถูกต้องที่นี่และที่นั่นและต่อไปนี้:

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

หากต้องการดูว่านี่หมายถึงอะไรคุณสามารถคลิก "Sprite Editor" และวางเลขฐานสิบหกเหล่านี้ลงในช่องด้านล่าง คุณจะเห็นคำตอบ:

ป้อนคำอธิบายรูปภาพที่นี่

ฉันค่อนข้างมั่นใจว่าคุณสามารถใส่อะไรก็ได้ที่คุณต้องการในตอนท้ายและผลลัพธ์ของ CHIP-8 จะไม่เปลี่ยนแปลงดังนั้นจึงเป็นรายการใหม่

ฉันจะดีใจถ้ามีคนสามารถทำงานนี้ได้อย่างเต็มที่มากกว่า "หลักฐาน" ของคำตอบที่ฉันได้รับที่นี่


ฉันจะอนุญาตให้ ฉันจะแก้ไขในคำอธิบายในวันนี้ ทำได้ดีมาก
NieDzejkob


นอกจากนี้เลขฐานสิบหกของคุณจะต้องผิดเนื่องจากไม่ได้ถอดรหัสเป็น UTF-8 ที่ถูกต้อง ...
NieDzejkob

5

C, Python 2, ???

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

สิ่งนี้พิมพ์0ใน C, 1Python 2 และ2ใน ???

นี่จะง่ายมากที่จะถอดรหัสให้กับคนที่รู้จัก Python แต่ฉันต้องการจุดเริ่มต้นสำหรับคำตอบอื่น ๆ คำตอบที่ตามมาควรพยายามทำให้ภาษาที่สามสับสน (ฉันไม่ได้ทำสิ่งนี้)


Cracked btw ท้าทายมาก!
pizzapants184

5

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

พิมพ์ 2 ใน Python 3, 3 ใน Lua และ 4 in ???

คำอธิบายสำหรับโพสต์แตก :

a={1,2}
print(1+#a
--bool(1/2)
)
  • ใน Lua - เป็นความคิดเห็น ใน Python 2 และ 3, - หมายถึงการลบสองเท่าในเลขคณิต
  • ใน Python 2 และ 3 # เป็นความคิดเห็น ใน Lua, # คือโอเปอเรเตอร์ความยาว
  • ใน Python 2 1/2 เป็นการแบ่งชั้นดังนั้นจึงประเมินเป็นศูนย์ ใน Python 3 นี่ไม่ใช่กรณี เนื่องจาก Python ทั้งสองเวอร์ชันประเมินค่า 0 เป็น False, bool (1/2) จะประเมินเป็น False ใน Python 2 และ True ใน Python 3 เมื่อใช้ในการคำนวณเลขคณิต False ถูกส่งไปที่ 0 และ True ถูกส่งไปที่ 1


5

> <>, Befunge-96 และ ???

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

นี่พิมพ์5 in><> , 6 inBefunge-96และ7in ???

ฉันรู้ว่าวิธีแก้ปัญหาที่ตั้งใจคือ Befunge-93 แต่ฉันก็อดไม่ได้

คำอธิบาย:

Befunge-96 ตามเส้นทางเดียวกับ><>แต่ไม่สนใจคำแนะนำที่ไม่รู้จักตายเพิ่มหนึ่งไปยัง 5 และคูณ 9 ที่จะได้รับ 54, รหัส ASCII 6สำหรับ



5

ผู้วิจารณ์ , 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();
}

เอาท์พุท15 ใน Commentator , 16 ใน Beatnikและ 17 ในหวังว่าภาษาเดียวที่คุณควรจะหา

โอเคมันเป็นช่วงเวลาที่สำคัญ:

  • ชื่อของภาษานั้นหมายถึงสารประกอบสองอย่างซึ่งทั้งสองอย่างประกอบขึ้นเป็นร่างกายของคุณ แต่มีเปอร์เซ็นต์ที่แตกต่างกันอย่างมาก (ขึ้นอยู่กับว่าคุณเป็นหุ่นยนต์)
  • ภาษาของตัวเองอยู่บน TIO แต่การใช้งานไม่ได้
  • เข้ามา.

1
ดูเหมือนว่า Rust ( fn main()เหนือสิ่งอื่นใด) แต่จริงๆแล้วมันไม่ได้ทำงานใน Rust ( explicit lifetime required in the type of 's') ทั้งที่ TIO และล่ามอื่นที่ฉันพบ และฉันไม่พบภาษาอื่นที่ใช้fnเป็นตัวระบุฟังก์ชั่น
Draco18s

หืมแม้แต่คำใบ้ดูเหมือนว่าสนิมซึ่งเป็นสารประกอบของเฟและโอฉันก็ไม่สามารถคิดอะไรอีกเลย อาจจะเป็นเวอร์ชั่นคอมไพเลอร์ที่แตกต่างกัน?
Bubbler

1
ฉันสงสัยว่านี่อาจเป็นสนิมที่รวบรวมด้วยmrustcซึ่งโดยทั่วไปแล้ว Rust จะไม่มีตัวตรวจสอบการยืม
แยกผลไม้

@EsolangingFruit ลองดู
NieDzejkob

สามเดือนต่อมาในที่สุดผมก็มีรอบแตกนี้
Esolanging ผลไม้

4

Brainfuck,> <> และ ???

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*,@

พิมพ์4ใน Brainfuck 5ใน> <> และ6ใน ???

  • ใน brainfuck ไม่มีอะไรเปลี่ยนแปลง
  • ใน> <> ให้vเปลี่ยนทิศทางการไหลของโปรแกรมลง nเป็นnเอาท์พุท umeric ;สิ้นสุดการดำเนินการ



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")}

สิ่งนี้พิมพ์ 16 ใน Beatnik, 17 in Rust และ 18 in ???

ตัวอักษรบนบรรทัดที่ 4 จะถูกแทนที่ด้วยอักขระ ASCII 18 (นี่ไม่ได้ทำในการเชื่อมโยง TIO เพราะมันไม่ได้เกี่ยวข้องกับการอย่างใดอย่างหนึ่งของพวกเขา)

คำอธิบาย ( แตก ):

ภาษาคำตอบก่อนหน้าเป็นสนิม: เฉพาะสนิมรวบรวมกับmrustc mrustc เป็นคอมไพเลอร์ทดลองและส่วนใหญ่มีไว้สำหรับการบูตเวอร์ชันที่ถูกต้องของrustcมันมันจะละเว้นการตรวจสอบการยืมและการตรวจสอบความไม่แน่นอนซึ่งช่วยให้ข้อมูลโค้ดของ @ NieDzejkob รวบรวมได้โดยไม่มีข้อผิดพลาด

โปรแกรมนี้จะทำงานกับคอมไพเลอร์ Rust ปกติดังนั้นคุณไม่จำเป็นต้องติดตั้ง mrustc เพื่อทดสอบ

คำแนะนำ

เนื่องจากคำตอบนี้หายไปนานที่สุดโดยไม่ถูกแตกร้าวฉันจะทิ้งคำใบ้ไว้และทำต่อไปเรื่อย ๆ จนกว่ามันจะแตก:

  • ภาษาลับเป็นสองมิติ
  • ดังที่ฉันพูดถึงในความคิดเห็นภาษาไม่ได้อยู่ใน TIO
  • ตัวละครที่เป็นปลาชนิดหนึ่งสีแดงและมีความสำคัญน้อยมาก ไบต์ส่วนใหญ่สามารถใช้แทนได้และโปรแกรมจะยังคงทำงานได้

1
ในขณะที่ขว้างภาษาด้วยวิธีนี้แบบสุ่ม (ไม่พบคำว่า "ascii codepoint 0x12 esolang" มากนัก) ฉันสังเกตว่ามันแสดงผลจริง 15 ใน> <> ดังนั้นมันจึงเรียบร้อย
สตริงที่ไม่เกี่ยวข้อง

1
ดูเหมือนว่าสิ่งนี้จะไม่พิมพ์ 18 ในภาษาใด ๆ บน TIO (โดยไม่มีส่วนหัวท้ายกระดาษหรือแฟล็กบรรทัดคำสั่งใด ๆ ที่เพิ่มอย่างน้อย) ฉันหวังว่าฉันจะไม่พลาดเพราะดูเหมือนว่ามันอาจจะค่อนข้างยากที่จะตรวจสอบทุกอย่างเกี่ยวกับ esolangs, Wikipedia, และรหัส Rosetta ... ฉันเดาได้ดีที่สุดว่านี่เป็นภาษา 2D ประเภทหนึ่งที่ อย่างใดอย่างหนึ่ง@, P, {หรือmเริ่มต้นตัวอักษรตัวอักษรและบางสิ่งบางอย่างหลังจากนั้นพิมพ์ codepoint ในทศนิยม แต่ที่ไม่ได้อธิบายทั้งหมดของ++s ...
ไม่เกี่ยวข้อง String

1
@ UnrelatedString ใช่ฉันจะยืนยันว่าไม่ใช่ภาษาใน TIO
แยกผลไม้

1
ฉันอาจจะเสียเวลาไปกว่า 100 วันใน esolang.org พยายามค้นหาภาษาที่เหมาะกับ ... จากนั้นฉันก็อ่านสิ่งที่ตัวละคร ASCII 18 และรู้ว่าวิธีการของฉันผิดไปหมดเมื่อฉันค้นหาภาษาที่แตกต่างกันโดยสิ้นเชิง ...
IQuick 143

2
@ IQuick143 herrings เป็นสีแดง
เสี้ยวผลไม้

3

Z80Golf , Somme , ???

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

พิมพ์นี้9 ใน Z80Golf , 10 ใน Sommeและ 11 ใน??? .

ขอมอบเครดิตให้ Bubbler สำหรับการถอดรหัสโพสต์ก่อนหน้านี้เป็น Somme ซึ่งใช้ผลรวมของคอลัมน์ตามคำแนะนำ สามคอลัมน์แรกประเมินเป็น

A.;

ซึ่งผลักดัน 10 พิมพ์และออก


3

Somme , Triggerและ ???

[,,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<`

พิมพ์นี้10ใน Somme , 11ในทริกเกอร์และ12ใน ???

เนื่องจากสองภาษาสุดท้ายนั้นง่ายต่อการพูดได้หลายภาษาฉันจึงตัดสินใจผสมผสานภาษานั้น

คำอธิบาย ( โพสต์แตก )

Trigger เห็นรหัสทั้งหมดเป็นชุดโทเค็น (tokenization เป็นโลภ):

  • ไบต์เดียว (แสดงว่าA)
  • สองไบต์เดียวกันตามด้วยไบต์ที่แตกต่าง (แสดงว่าAAB)
  • สามไบต์เดียวกัน (แสดงแทนAAA)
  • สี่ไบต์เดียวกัน (แสดงแทนAAAA)

ในรหัสแหล่งที่มา

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

โทเค็นที่สำคัญคือ((1 11+ 111 111ที่ที่สองคนแรกไม่ได้ทำอะไรและสองคนสุดท้ายพิมพ์ 1 แต่ละ - ดังนั้น 11



3

CHIP-8 , ไคลน์ (100) , ???

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

เอาต์พุต 13 ใน CHIP-8 (ฉันถือว่า), 14 ใน Kleinและ 15 ใน ???

อีกโครงสร้างของไคลน์ tsk tsk ฉันได้เก็บรักษารหัสไว้ก่อนหน้า@นี้เนื่องจากฉันไม่รู้ว่าจะมีผลต่อ CHIP-8 อย่างไร

เบาะแส

ฉันขอโทษพวกนี้เลย ฉันจะลองเพิ่มหนึ่งวัน

  • การลบครึ่งแรก (สามบรรทัดแรก) ของโปรแกรมยังคงทำงานอยู่
  • นี่ไม่ใช่ภาษา 2D
  • ภาษาอยู่ใน TIO
  • nots และsayสามารถถอดออกได้โดยไม่ส่งผลกระทบต่อโปรแกรม

สำหรับการอ้างอิงโปรแกรมที่ไม่มีสิ่งนั้นจะมีลักษณะดังนี้:

 %/    <#> 13
        14
 +   15

ลองออนไลน์!


2
...ฉันกลัว. วิ่งในนี้รูนและเอาท์พุท 16
Draco18s

@ Draco18s เจตนา
Jo King

มันจะไม่หลังจากการปรับปรุงครั้งต่อไปของฉันเนื่องจากฉันเพิ่มการจัดการสตริงที่ดีขึ้นให้กับผู้ประกอบการหลายราย (ปัจจุบัน TIO ปรากฏขึ้น1และสตริงที่ประกอบขึ้นจากบรรทัดแรกและไปที่ "นี่ไม่ใช่ค่า" และยกเลิกพวกเขา การอัพเดตจะต่อกันแม้ว่าฉันจะมีโอเปอเรเตอร์สำหรับการเชื่อมต่อนั้น แต่ concat ก็ยังทำงานกับตัวอักษรและตัวเลขรวมถึงสายอักขระซึ่ง+ถือว่าเป็นตัวเลข ) แต่มันก็เป็นเรื่องน่าขนลุกอย่างยิ่งที่จะเป็นเช่น "ฉันสงสัยว่า ... โอ้พระเจ้านี่อาจจะไม่ถูกแก้ไขและเป็นรายการต่อไป ... ถ้าเพียง แต่ฉันรู้ภาษา ??? ... "
Draco18s

คุณกำหนดครึ่งตัวอักขระบรรทัดหรือสิ่งที่เฉพาะเจาะจง?
NieDzejkob

2
Cracked
Bubbler

3

ไคลน์ (100), นักวิจารณ์ , ???

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

เอาต์พุต14 ใน Klein (100) , 15 ใน Commentator , 16 in ???

ฉันพูดจาไม่ดีอย่างจริงจังกับรูปหลายเหลี่ยม

คำอธิบาย ( โพสต์แตก )

 %/    <#> 13
        14
 +   15

ใน Commentator โทเค็นความคิดเห็นทั่วไปและช่องว่างเป็นคำสั่งที่สำคัญและอักขระอื่น ๆ จะถูกละเว้น

  • พื้นที่เพิ่มขึ้นในเซลล์หน่วยความจำปัจจุบัน
  • <# ทำ XOR 1 ในเซลล์หน่วยความจำปัจจุบัน
  • % ใช้เพื่อรีเซ็ตเซลล์หน่วยความจำปัจจุบันเป็นศูนย์

เดี๋ยวก่อนมีช่องว่าง 16 หลัง%เกิดอะไรขึ้น

จริงๆแล้วมันเป็นบั๊กเล็ก ๆ (หรือฟีเจอร์?) ในล่าม /จะถือว่าเป็นจุดเริ่มต้นของคำสั่ง 2-char ดังนั้นพื้นที่หลังจากที่มีการบริโภค แต่/<space>เป็นคำสั่งที่ไม่ได้กำหนด (ดังนั้นจึงไม่มี op) ดังนั้นพื้นที่จึงถูกข้ามอย่างมีประสิทธิภาพ


โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.