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
, 1
dan 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 :
- Ini memiliki artikel Wikipedia bahasa Inggris , artikel esolang atau artikel Kode Rosetta pada saat tantangan ini diposting, atau ada di Try It Online! . Memiliki penerjemah yang ditautkan di salah satu halaman ini membuat penerjemah tersebut sepenuhnya sah.
- Itu harus memenuhi aturan kami tentang apa yang merupakan bahasa pemrograman .
- Itu harus memiliki juru bahasa gratis (seperti dalam bir). Gratis di sini berarti siapa pun dapat menggunakan program tanpa harus membayar untuk melakukannya.
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.
sumber
Jawaban:
Hexagony, Klein (101) dan ???
Ini mencetak
7
dalam Hexagony ,8
di Klein (101) , dan9
di ???.Ini
9
tidak 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
9
tidak berfungsi jika baris baru ditambahkan di akhir" sangat signifikan, serta dua spasi pertama (yang diabaikan oleh Hexagony dan Klein).v
perintah itu mengakhiri program.Penjelasan ( pos retak )
Dalam kode sumber
Instruksi yang relevan dalam Klein (101) adalah:
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.sumber
Befunge-96, Hexagony dan ???
Ini mencetak
6
dalam Befunge-96 ,7
dalam heksagoni dan8
dalam ???.Penjelasan
Kode hexagony, ketika "prettified" adalah:
Jalur eksekusi dimulai di kiri atas menuju Timur. Baris atas tidak banyak membantu.
-
mengubah tepi memori saat ini sehingga nilai di dalamnya adalah0
. Eksekusi terus menuju ke timur di baris tengah di mana7!
beban7
di tepi memori saat ini dan cetakan adalah sebagai bilangan bulat.[
mengubah penunjuk instruksi ke Timur Laut mulai dari7
. Setelah7+3
, eksekusi kemudian mencapai[
yang mengubah penunjuk instruksi ke Barat Laut mulai di sudut Tenggara. Akhirnya path adalah..@
tempat@
mengakhiri program.sumber
Lua, brainfuck, ???
Mencetak 3 in Lua, 4 in brainfuck dan 5 in ???.
Penjelasan untuk postingan yang retak :
3--(-1)
adalah 2, jadiprint(f)
mencetak 2 (hal-hal lain tidak perlu)--
lagi adalah komentar, jadi3--(-1)
hanya 3, jadiprint(f)
cetak 3 (hal-hal lain tidak perlu lagi).
karakter keluaran 52 yaitu 4.sumber
Pemicu , JavaScript , dan ???
Mencetak
11
dalam Pemicu ,12
dalam JavaScript , dan13
dalamREDACTED
.Karena ini belum dipecahkan lebih lama dari jawaban lain sejauh ini, berikut adalah beberapa petunjuk:
Т
danе
pada baris pertama adalah karakter multibyte.[ //
dan\\ ][ //
tidak ada op.-²52
, adalah kode mati.²6
membentuk loop tak terbatas.²
, bersama dengan6
, membentuk loop tak terbatas./!'!/
Penjelasan
Nah, ini butuh waktu untuk retak. Mari kita lihat bagaimana kodenya:
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.
sumber
Python 2, Python 3, ???
Ini mencetak 1 dalam Python 2, 2 dalam Python 3, dan 3 dalam ???.
Penjelasan retak (Retak posting) :
0
: C: Baris pertama mendefinisikan makro seperti fungsiprint
yang mengabaikan argumen tunggal dan mengevaluasimain(){puts("0");}
, program lengkap yang mencetak0
dan keluar. Seluruh ekspresi1+bool(1/2)
diabaikan ketikaprint( )
makro di baris kedua diperluas kemain(){puts("0");}
.1
: Python 2: Baris pertama adalah komentar.1/2
menggunakan pembagian integer di Python 2, memberikan 0. Nilai ini kemudian ditafsirkan sebagai boolean (bool(0)
->False
) dan kemudian ditambahkan ke1
(1+False
->1
), dan kemudian dicetak.2
: Python 3: Baris pertama adalah komentar.1/2
menggunakan 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.sumber
JavaScript , CHIP-8 , dan ???
12
dalam JavaScript ,13
dalam CHIP-8, dan14
dalam ???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):
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,
sprite
perintah yang mencetak nomor, jumlah sampah yang benar di sana-sini, dan yang berikut:Untuk melihat apa yang diwakilinya, Anda dapat mengklik "Editor Sprite" dan menempelkan heksadesimal ini ke dalam kotak di bawahnya. Anda akan melihat jawabannya:
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.
sumber
C, Python 2, ???
Ini mencetak
0
dalam C,1
dalam Python 2, dan2
dalam ???.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).
sumber
Python 3, Lua, ???
Mencetak 2 dengan Python 3, 3 di Lua dan 4 in ???.
Penjelasan untuk postingan yang retak :
sumber
> <>, Befunge-96 dan ???
Ini mencetak 5 in
><>
, 6 inBefunge-96
dan7
in ???.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 untuk6
.sumber
Komentator , Beatnik , ???
Keluaran 15 di Komentator , 16 di Beatnik , dan 17 di semoga satu bahasa yang seharusnya Anda temukan.
Oke, saatnya petunjuk:
sumber
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 digunakanfn
sebagai pengidentifikasi fungsi.Brainfuck,> <>, dan ???
Mencetak
4
di Brainfuck,5
di> <>, dan6
di ???v
alihkan aliran program ke bawah. Then
adalah n keluaran umeric.;
mengakhiri eksekusi.sumber
Klein (101), Z80Golf, ???
Mencetak
8
di Klein (101) ,9
di Z80Golf , dan10
di ??? .sumber
Beatnik , Rust , ???
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 valid
rustc
, 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:
�
karakter adalah ikan merah dan memiliki sangat sedikit signifikansi. Sebagian besar byte dapat diganti tempatnya dan program masih akan bekerja.sumber
@
,P
,{
, ataum
memulai literal karakter dan sesuatu setelah mencetak codepoint di desimal, tapi itu tidak menjelaskan semua++
s ...Z80Golf , Somme , ???
Ini mencetak 9 di Z80Golf , 10 di Somme dan 11 di ??? .
Beri kredit pada Bubbler karena memecahkan pos sebelumnya sebagai Somme, yang mengambil jumlah kolom sebagai instruksi. Tiga kolom pertama dievaluasi
Yang mendorong 10, mencetaknya dan keluar.
sumber
Somme , Pemicu dan ???
Ini mencetak
10
dalam Somme ,11
di Trigger , dan12
dalam ???.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):
A
)AAB
)AAA
)AAAA
)Dalam kode sumber
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.sumber
CHIP-8 , Klein (100) , ???
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.
not
s dansay
dapat dihapus tanpa mempengaruhi programSebagai referensi, program tanpa hal-hal itu terlihat seperti ini:
Cobalah online!
sumber
1
dan 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 ??? ..."Klein (100), Komentator , ???
Keluaran 14 di Klein (100) , 15 di Komentator , 16 di ???
Saya benar-benar buruk dalam mengaburkan poliglot.
Penjelasan ( Retak pos )
Di Komentator, token dan spasi komentar yang umum adalah perintah penting, dan karakter lainnya diabaikan.
<#
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.sumber