Poliglot yang tumpang tindih


37

Tidak seperti banyak tantangan K&R, ini tidak memerlukan pos perampok yang terpisah; tujuan para perampok adalah untuk memecahkan jawaban sebelumnya dan kemudian mengirim yang baru sebagai polisi.

Sebagai penjawab, Anda akan menulis serangkaian poliglot yang terlihat seperti ini (setiap kolom adalah bahasa, dan setiap entri adalah output dari jawaban dalam bahasa itu):

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

(ruang kosong berarti bahwa tidak ada perilaku yang diperlukan dalam kasus itu).

Setiap jawaban harus bekerja dalam 3 bahasa dan mencetak 3 angka berturut-turut yang berbeda yang masing-masing lebih dari angka-angka yang dicetak oleh jawaban sebelumnya (jawaban cetakan pertama 0, 1dan 2). Setiap jawaban menggunakan dua bahasa dari kiriman sebelumnya, dan bahasa baru ketiga. Penjawab harus mencoba mengaburkan apa bahasa ketiga ini.

Untuk mengirim jawaban baru, Anda harus:

  • Pecahkan jawaban terbaru dengan menemukan apa bahasa ketiganya.
  • Lebih disukai, tambahkan penjelasan untuk celah Anda dan beri tahu poster jawabannya. Setelah kiriman Anda telah di-crack, Anda sebaiknya menambahkan penjelasan juga.
  • Tulis polyglot yang terdiri dari bahasa kedua dan ketiga jawaban ini, bersama dengan bahasa lain pilihan Anda. Buka dua bahasa pertama Anda, tetapi jangan ungkapkan bahasa baru Anda. Ini akan menjadi tujuan poster berikutnya untuk menemukan bahasa ini (atau bahasa lain di mana ia bekerja), jadi Anda harus mencoba mengaburkannya.

Spesifikasi

  • Kriteria untuk bahasa pemrograman yang valid sama dengan kriteria dari The Programming Language Quiz, Mark II - Cops :

  • Setiap jawaban harus berjalan dalam waktu kurang dari satu menit pada PC yang masuk akal.

  • Anda dapat menggunakan kembali bahasa pemrograman, tetapi harus ada setidaknya dua jawaban di antaranya (sehingga jawaban individual tidak dapat menggunakan kembali bahasa).
  • Retak submisi terdiri dari menemukan setiap bahasa pemrograman yang mencetak hasil yang benar, bukan hanya dimaksudkan satu. Jika kiriman dijalankan dalam bahasa apa pun yang tidak dinyatakan atau ditemukan berfungsi, tidak ada persyaratan untuk melakukan apa pun.
  • Anda tidak boleh memposting dua kali (atau lebih) berturut-turut.

Kriteria Kemenangan

Jawaban yang menang adalah jawaban mana saja yang paling membutuhkan waktu untuk dipecahkan. Tantangan tidak akan pernah berakhir, jadi selalu mungkin bagi jawaban yang menang untuk berubah.


2
Dibuka a obrolan untuk diskusi tentang kemungkinan retak dan membangun polyglots.
Bubbler

1
Bisakah jawabannya mengeluarkan hal-hal lain selain dari angka yang diinginkan?
NieDzejkob

1
@NieDzejkob Tidak, program seharusnya hanya menampilkan nomor, dan ya, saya lebih suka jika program berjalan di bawah satu menit.
Buah Esolanging

3
Inilah kueri SEDE yang menghitung jumlah waktu jawaban tetap aman (dalam jam).
NieDzejkob

1
@EmbodimentofIgnorance Ya, Anda dapat meminta flag baris perintah karena pada dasarnya mereka mendefinisikan interpreter yang terpisah, dan ya, program harus mencetak hanya nomor. Program dapat menghasilkan ke STDERR, tetapi hanya output ke STDOUT yang relevan.
Buah Esolanging

Jawaban:


11

Hexagony, Klein (101) dan ???

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

main\

>9.*5,6v

Ini mencetak 7dalam Hexagony , 8di Klein (101) , dan 9di ???.

Ini 9tidak berfungsi jika baris baru ditambahkan di akhir kode. Hati-hati jika Anda menguji secara lokal.

Sunting: Menjadi live selama 20 jam sudah menjadi rekor, jadi saya akan memberikan beberapa petunjuk mulai sekarang. (Juga karena bahasa yang dimaksud adalah IMO belum terkenal.)

Petunjuk

  1. "Itu 9 tidak berfungsi jika baris baru ditambahkan di akhir" sangat signifikan, serta dua spasi pertama (yang diabaikan oleh Hexagony dan Klein).
  2. Bahasanya ada di TIO.
  3. Dua spasi pertama membuat program melompat ke baris terakhir. (Nya bukan bahasa 2D.)
  4. Tidak ada perintah keluaran eksplisit, dan v perintah itu mengakhiri program.

Penjelasan ( pos retak )

Dalam kode sumber

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

Instruksi yang relevan dalam Klein (101) adalah:

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

Klein adalah bahasa 2D mirip jamur di mana melintasi batas area kode (yang merupakan bujur sangkar) tergantung pada topologi Klein. /dan \merupakan cermin.

IP mulai di sudut kiri atas menghadap ke kanan. Ini memenuhi cermin menuju batas atas, dan memasuki kembali area kode di sisi kanan seperti yang ditunjukkan di atas. Kemudian menyentuh cermin lagi, 8 didorong, dan kemudian (setelah melewati batas beberapa kali) berhenti di @. Kemudian isi tumpukan dicetak ke stdout, yang merupakan 8 tunggal.



9

Befunge-96, Hexagony dan ???

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

Ini mencetak 6dalam Befunge-96 , 7dalam heksagoni dan 8dalam ???.

Penjelasan

Kode hexagony, ketika "prettified" adalah:

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

Jalur eksekusi dimulai di kiri atas menuju Timur. Baris atas tidak banyak membantu. -mengubah tepi memori saat ini sehingga nilai di dalamnya adalah 0. Eksekusi terus menuju ke timur di baris tengah di mana 7!beban 7di tepi memori saat ini dan cetakan adalah sebagai bilangan bulat. [mengubah penunjuk instruksi ke Timur Laut mulai dari 7. Setelah 7+3, eksekusi kemudian mencapai [yang mengubah penunjuk instruksi ke Barat Laut mulai di sudut Tenggara. Akhirnya path adalah ..@tempat @mengakhiri program.



8

Lua, brainfuck, ???

abcd = {} - taktik menghindari kesalahan dalam C ++
abcd [false] = 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + 10 + 11 + 12 + 13 + 14
cetak (abcd [0> 1 + 2 + 3 dan 4 + 5 + 6 <0-0] // 35)
jika 0> 1 maka a.next = ';' akhir

Mencetak 3 in Lua, 4 in brainfuck dan 5 in ???.

Penjelasan untuk postingan yang retak :

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 + 1.
cetak (f)
  • Dalam Python 3, 3--(-1)adalah 2, jadi print(f)mencetak 2 (hal-hal lain tidak perlu)
  • Di Lua, --lagi adalah komentar, jadi 3--(-1)hanya 3, jadi print(f)cetak 3 (hal-hal lain tidak perlu lagi)
  • Di brainfuck, ada 57 plusses dan 5 minus yang mengatur sel pertama pada rekaman menjadi 52, dan .karakter keluaran 52 yaitu 4.

+1 dan Cracked
Zacharý

8

Pemicu , JavaScript , dan ???

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

Mencetak 11dalam Pemicu , 12dalam JavaScript , dan 13dalamREDACTED .

Karena ini belum dipecahkan lebih lama dari jawaban lain sejauh ini, berikut adalah beberapa petunjuk:

  • Jika Anda tidak memperhatikan, maka Тdan еpada baris pertama adalah karakter multibyte.
  • [ //dan \\ ][ //tidak ada op.
  • Baris kedua, juga -²52, adalah kode mati.
  • Bahasa tidak memiliki konsep pengakhiran, sehingga ²6membentuk loop tak terbatas.
  • Untuk lebih spesifik, byte kedua dari pengkodean UTF-8 ², bersama dengan 6, membentuk loop tak terbatas.
  • Angka yang dikeluarkan dikodekan oleh /!'!/
  • Bahasa ini bukan pada Try It Online, Rosetta Code atau Esolangs.
  • Satu-satunya bentuk output yang tersedia adalah layar 1bpp.
  • Rasio aspek layar adalah 2.
  • Sementara bahasa awalnya tidak dimaksudkan sebagai kode mesin, implementasi FPGA memang ada.
  • Menurut Wikipedia, tujuan bahasa yang dimaksudkan adalah video game.
  • Satu-satunya cara untuk mengakses layar adalah instruksi khusus, yang mengambil koordinat dalam register yang dapat dipilih, dan ketinggian sebagai langsung, dan XORs 8 by n bitmap ke layar. Untuk membuat deteksi tabrakan lebih mudah, dan juga memungkinkan untuk menghapus layar, salah satu register akan diatur ketika setiap piksel diatur kembali ke mati.

Penjelasan

Nah, ini butuh waktu untuk retak. Mari kita lihat bagaimana kodenya:

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.

Ini berarti bahwa, sementara banyak emulator yang tersedia berperilaku dengan benar, implementasi menurut aturan terkait dengan kalimat kedua dari halaman Wikipedia . Tentu saja, itu tidak dapat dijalankan secara langsung pada PC rata-rata, tetapi saya telah menemukan emulator Emma 02 yang ditautkan pada halaman VIP COSMAC berfungsi dengan baik.

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.

Jangan bilang ini kode mesin pada beberapa prosesor.
SIGSTACKFAULT

1
@ Blacksilver Saya sudah berasumsi demikian sejak dua petunjuk yang lalu - apa lagi yang akan terlihat seperti ini, tidak ada di Esolang, tapi masih cukup terkenal untuk Wikipedia?
Ørjan Johansen

@ Blacksilver OK.
NieDzejkob

@ ngm maaf, tapi tidak
NieDzejkob

retak , saya percaya, sesuai aturan.
ngm

7

Python 2, Python 3, ???

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

Ini mencetak 1 dalam Python 2, 2 dalam Python 3, dan 3 dalam ???.

Penjelasan retak (Retak posting) :

#define print(A) main(){puts("0");}
print(1+bool(1/2))
  • 0: C: Baris pertama mendefinisikan makro seperti fungsi printyang mengabaikan argumen tunggal dan mengevaluasi main(){puts("0");}, program lengkap yang mencetak 0dan keluar. Seluruh ekspresi 1+bool(1/2)diabaikan ketika print( )makro di baris kedua diperluas ke main(){puts("0");}.

  • 1: Python 2: Baris pertama adalah komentar. 1/2menggunakan pembagian integer di Python 2, memberikan 0. Nilai ini kemudian ditafsirkan sebagai boolean ( bool(0)-> False) dan kemudian ditambahkan ke 1( 1+False-> 1), dan kemudian dicetak.

  • 2: Python 3: Baris pertama adalah komentar. 1/2menggunakan divisi float di Python 3, memberikan 0,5. Nilai ini kemudian diartikan sebagai boolean ( bool(0.5)-> True) dan kemudian ditambahkan ke1 ( 1+True-> 2), dan kemudian dicetak.



7

JavaScript , CHIP-8 , dan ???

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

12dalam JavaScript , 13dalam CHIP-8, dan 14dalam ???

Saya akan pergi mengambil risiko dan menyebutnya retak, meskipun saya tidak bisa membuatnya bekerja saya yakin dengan bahasa (yang tampaknya menjadi apa yang diminta aturan.)

Berikut ini penjelasan yang tidak sempurna dari pos yang retak

Kode dalam heksadesimal "is" (saya mungkin sedikit tidak aktif):

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

Anda bisa pergi sini , klik "Binary Tools" dan rekatkan ini ke dalam kotak array byte. Klik "Dekompilasi".

Elemen-elemen kunci dari kode adalah: instruksi untuk mengatakan di mana "angka" itu, spriteperintah yang mencetak nomor, jumlah sampah yang benar di sana-sini, dan yang berikut:

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

Untuk melihat apa yang diwakilinya, Anda dapat mengklik "Editor Sprite" dan menempelkan heksadesimal ini ke dalam kotak di bawahnya. Anda akan melihat jawabannya:

masukkan deskripsi gambar di sini

Saya cukup yakin Anda bisa meletakkan apa pun yang Anda suka di akhir dan hasil CHIP-8 tidak akan berubah, karenanya entri baru.

Saya akan senang jika seseorang bisa mendapatkan ini sepenuhnya berfungsi, daripada "bukti" dari jawaban yang saya berikan di sini.


Aku akan membiarkan itu . Saya akan mengedit penjelasan hari ini juga. Kerja bagus.
NieDzejkob


Juga, heksadesimal Anda pasti salah karena tidak diterjemahkan sebagai UTF-8 yang valid ...
NieDzejkob

5

C, Python 2, ???

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

Ini mencetak 0dalam C, 1dalam Python 2, dan 2dalam ???.

Ini akan sangat mudah dipecahkan untuk orang yang tahu Python, tapi saya ingin titik awal untuk jawaban lain. Jawaban selanjutnya harus mencoba mengaburkan bahasa ketiga (saya tidak melakukan ini).


Retak . Tantangan besar 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)

Mencetak 2 dengan Python 3, 3 di Lua dan 4 in ???.

Penjelasan untuk postingan yang retak :

a={1,2}
print(1+#a
--bool(1/2)
)
  • Dalam Lua, - adalah komentar. Dalam Python 2 dan 3, - menunjukkan ganda negatif dalam aritmatika.
  • Dalam Python 2 dan 3, # adalah komentar. Di Lua, # adalah operator panjang.
  • Dalam Python 2, 1/2 adalah pembagian lantai, sehingga mengevaluasi menjadi nol. Dalam Python 3 ini bukan itu masalahnya. Karena kedua versi Python mengevaluasi 0 ke False, bool (1/2) mengevaluasi ke False di Python 2 dan True dalam Python 3. Ketika digunakan dalam aritmatika, False dilemparkan ke 0 dan True dilemparkan ke 1.


5

> <>, Befunge-96 dan ???

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

Ini mencetak 5 in><> , 6 inBefunge-96 dan 7in ???.

Saya tahu solusi yang dimaksud adalah Befunge-93, tetapi saya tidak bisa menolak.

Penjelasan:

Befunge-96 mengikuti jalur yang sama dengan ><>, tetapi mengabaikan instruksi yang tidak diketahui, akhirnya menambahkan satu ke 5 dan mengalikannya dengan 9 untuk mendapatkan 54, kode ascii untuk 6.



5

Komentator , 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();
}

Keluaran 15 di Komentator , 16 di Beatnik , dan 17 di semoga satu bahasa yang seharusnya Anda temukan.

Oke, saatnya petunjuk:

  • Nama bahasa mengacu pada gabungan dua elemen, yang keduanya membentuk tubuh Anda, tetapi dengan persentase yang sangat bervariasi (yang tergantung pada apakah Anda robot).
  • Bahasa itu sendiri ada di TIO, tetapi implementasinya tidak.
  • Oh ayolah.

1
Sepertinya Rust ( fn main(), antara lain), tetapi sebenarnya tidak berjalan di Rust ( explicit lifetime required in the type of 's'), baik pada TIO maupun penerjemah lain yang saya temukan. Dan saya tidak dapat menemukan bahasa lain yang digunakan fnsebagai pengidentifikasi fungsi.
Draco18s

Huh, bahkan petunjuknya seperti Rust, yang merupakan gabungan dari Fe dan O. Saya tidak bisa memikirkan hal lain. Mungkin versi kompiler yang berbeda?
Bubbler

1
Saya menduga ini mungkin Rust dikompilasi dengan mrustc , yang pada dasarnya adalah Rust tanpa pemeriksa pinjaman.
Buah Esolanging

@EsolangingFruit mencobanya
NieDzejkob

Tiga bulan kemudian, saya akhirnya memecahkan ini
Buah Esolanging

4

Brainfuck,> <>, dan ???

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

Mencetak 4di Brainfuck, 5di> <>, dan 6di ???

  • Dalam brainfuck, tidak ada yang berubah.
  • Di> <>, valihkan aliran program ke bawah. The nadalah n keluaran umeric. ;mengakhiri eksekusi.



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

Ini mencetak 16 di Beatnik, 17 di Rust, dan 18 di ???.

Itu karakter pada baris 4 harus diganti dengan karakter ASCII 18 (ini tidak dilakukan dalam link TIO karena itu tidak relevan dengan salah satu dari mereka).

Penjelasan ( retak) ):

Bahasa jawaban sebelumnya adalah Rust: khusus, Rust dikompilasi dengan mrustc . mrustc adalah kompiler eksperimental, dan karena kebanyakan ditujukan untuk bootstrap versi yang validrustc , mrustc mengabaikan pemeriksaan pinjaman dan pemeriksaan mutabilitas, memungkinkan cuplikan @ NieDzejkob untuk dikompilasi tanpa kesalahan.

Program ini akan bekerja dengan kompiler Rust normal, jadi Anda tidak perlu menginstal mrustc untuk mengujinya.

Petunjuk

Karena jawaban ini sekarang menjadi yang terpanjang tanpa retak, saya akan meninggalkan petunjuk, dan terus melakukannya secara teratur sampai retak:

  • Bahasa rahasianya adalah dua dimensi.
  • Seperti yang saya sebutkan di komentar, bahasa tidak ada di TIO.
  • The karakter adalah ikan merah dan memiliki sangat sedikit signifikansi. Sebagian besar byte dapat diganti tempatnya dan program masih akan bekerja.

1
Sambil melempar bahasa dengan cara ini secara acak (karena tidak menemukan banyak pencarian "ascii codepoint 0x12 esolang"), saya perhatikan bahwa itu sebenarnya menghasilkan 15 dalam> <>, jadi itu rapi
Unrelated String

1
Tampaknya ini tidak mencetak 18 dalam bahasa apa pun di TIO (tanpa header, footer, atau flag baris perintah ditambahkan setidaknya). Saya harap saya tidak melewatkan apa pun, karena sepertinya akan sedikit lebih sulit untuk memeriksa semua yang ada di esolang, Wikipedia, dan Rosetta Code ... Tebakan terbaik saya adalah ini semacam bahasa 2D di mana baik @, P, {, atau mmemulai literal karakter dan sesuatu setelah mencetak codepoint di desimal, tapi itu tidak menjelaskan semua ++s ...
tidak terkait String

1
@UnrelatedString Ya, saya akan mengkonfirmasi bahwa itu bukan bahasa di TIO.
Buah Esolanging

1
Yah, saya mungkin telah menyia-nyiakan satu hari melalui 100 bahasa di esolang.org mencoba menemukan satu yang cocok ... Kemudian saya membaca hal karakter ASCII 18 dan menyadari pendekatan saya benar-benar salah ketika saya mencari kelas bahasa yang sama sekali berbeda ...
IQuick 143

2
@ IQuick143 ikan haring berwarna merah
Buah Esolanging


3

Somme , Pemicu dan ???

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

Ini mencetak 10dalam Somme , 11di Trigger , dan 12dalam ???.

Karena dua bahasa terakhir mudah di polyglot, saya memutuskan untuk mencampur bahasa itu menjadi .

Penjelasan ( pos retak )

Trigger melihat seluruh kode sebagai serangkaian token (tokenization serakah):

  • Byte tunggal (menunjukkan A)
  • Dua byte yang sama diikuti oleh byte yang berbeda (menunjukkan AAB)
  • Tiga byte yang sama (dilambangkan AAA)
  • Empat byte yang sama (dilambangkan AAAA)

Dalam kode sumber

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

token penting adalah ((1 11+ 111 111, di mana dua yang pertama tidak melakukan apa-apa dan dua yang terakhir mencetak masing-masing 1 - dengan demikian 11.



3

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

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

Output 13 di CHIP-8 (saya berasumsi), 14 di Klein , dan 15 di ???.

Topologi Klein lain , tsk tsk. Saya telah menyimpan kode sebelum@ , karena saya tidak tahu apa yang akan mempengaruhi CHIP-8.

Petunjuk

Saya agak terlambat untuk ini, maaf. Saya akan mencoba dan menambahkan satu hari.

  • Menghapus paruh pertama (tiga baris pertama) dari program masih berfungsi.
  • Ini bukan bahasa 2D
  • Bahasanya ada di TIO
  • The nots dan saydapat dihapus tanpa mempengaruhi program

Sebagai referensi, program tanpa hal-hal itu terlihat seperti ini:

 %/    <#> 13
        14
 +   15

Cobalah online!


2
...Saya takut. Ini berjalan dalam Runic dan output 16 .
Draco18s

@ Draco18s Disengaja
Jo King

Itu tidak akan setelah pembaruan saya berikutnya, karena saya menambahkan beberapa penanganan string yang lebih baik ke beberapa operator (saat ini TIO muncul 1dan string yang dibuat dari baris pertama dan pergi "ini bukan nilai" dan membuangnya, pembaruan akan concat, meskipun saya memiliki operator untuk itu, tetapi concat beroperasi pada karakter dan angka serta string, di mana +memperlakukannya sebagai angka ). Tapi itu sangat menyeramkan seperti "Aku ingin tahu apa ... oh tuhan, ini bisa dibiarkan tidak dimodifikasi dan menjadi entri berikutnya ... kalau saja aku tahu bahasa ??? ..."
Draco18s

Apakah Anda mendefinisikan setengah byte, karakter, garis, atau sesuatu yang spesifik?
NieDzejkob


3

Klein (100), Komentator , ???

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

Keluaran 14 di Klein (100) , 15 di Komentator , 16 di ???

Saya benar-benar buruk dalam mengaburkan poliglot.

Penjelasan ( Retak pos )

 %/    <#> 13
        14
 +   15

Di Komentator, token dan spasi komentar yang umum adalah perintah penting, dan karakter lainnya diabaikan.

  • Ruang menambah sel memori saat ini.
  • <# apakah XOR 1 pada sel memori saat ini.
  • % digunakan untuk mengatur ulang sel memori saat ini ke nol.

Tunggu, ada 16 spasi setelahnya %, apa yang terjadi?

Ini sebenarnya adalah bug kecil (atau fitur?) Pada penerjemah. /diperlakukan sebagai awal dari perintah 2-char, jadi ruang setelah dikonsumsi. Tapi /<space>ini perintah yang tidak terdefinisi (dengan demikian no-op), sehingga ruang dilewati secara efektif.


Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.