Catatan : Tantangan ini sekarang tertutup untuk pengiriman polisi baru. Ini untuk memastikan bahwa tidak ada yang dapat memposting pengiriman yang hanya tetap tidak terpecahkan karena tidak ada lagi perampok yang tertarik pada tantangan.
Dalam permainan polisi dan perampok ini, setiap polisi akan menulis sebuah program sederhana untuk memberikan hasil tunggal. Mereka kemudian akan mempublikasikan empat hal tentang program mereka:
- Bahasa
- Durasi program
- Output yang diinginkan
- Versi acak dari kode sumber
Kemudian, para perampok harus menguraikan kode sumber sehingga program mereka berfungsi seperti aslinya.
Aturan Cop
Anda harus menulis program sederhana, yang akan dicoba diciptakan ulang oleh perampok.
Program asli Anda harus memiliki fungsi sederhana: setelah dieksekusi, ia mengeluarkan satu string / angka dan berhenti. Ini harus memberikan output yang sama terlepas dari kapan / di mana itu dijalankan, dan tidak harus bergantung pada perpustakaan tambahan atau internet.
Program dan hasil Anda harus menggunakan ASCII yang dapat dicetak (baris baru dan spasi diizinkan). Outputnya harus tidak lebih dari 100 karakter, dan program harus memakan waktu kurang dari 5 detik untuk berjalan pada mesin yang masuk akal. Anda juga tidak diperbolehkan menggunakan hashing (atau fungsi kriptografi lainnya) dalam program Anda
Kemudian, Anda memberikan versi acak dari kode sumber dan output yang diperlukan. Anda dapat mengacak kode sumber Anda sesuka Anda, selama karakter dilestarikan.
Skor Anda adalah program terpendek yang Anda kirimkan yang belum retak. Setelah periode satu minggu, pengiriman yang tidak terputus akan menjadi kebal. Untuk mengklaim kekebalan ini, Anda harus mengedit jawaban Anda untuk menunjukkan jawaban yang benar. (Klarifikasi: Sampai Anda mengungkapkan jawabannya, Anda tidak kebal dan masih bisa di-crack.) Skor terendah menang.
Contoh Sederhana Jawaban Cop
Perl, 20
ellir"lnto Wo d";prH
Hello World
Atau...
Perl, 15
*3i)xp3rn3*x3t(
272727
Aturan Perampok
Perampok akan memposting upaya cracking mereka sebagai jawaban di utas terpisah, terletak di sini .
Anda memiliki satu upaya untuk memecahkan setiap pengiriman. Upaya cracking Anda akan menjadi versi kode sumber yang tidak diacak. Jika tebakan Anda cocok dengan deskripsi (karakter yang sama, output, dan tentu saja bahasa), dan Anda adalah tebakan yang benar pertama, maka Anda memenangkan poin. Penting untuk dicatat bahwa program Anda tidak harus sama persis dengan aslinya, cukup gunakan karakter yang sama dan memiliki fungsi yang sama. Ini berarti ada lebih dari satu jawaban yang benar.
Perampok dengan poin terbanyak (crack sukses) menang.
Contoh Sederhana Jawaban Perampok
Program Anda dulu
print "Hello World";
. (Meskipunprint"Hello World" ;
bisa juga bekerja.)Program Anda dulu
print(3**3x3)x3
Pengajuan yang Aman
- ASP / ASP.Net, 14 (Jamie Barker)
- Befunge-98, 15 (FireFly)
- GolfScript, 16 (Peter Taylor)
- CJam, 19 (DLosc)
- GolfScript, 20 (user23013)
- Perl, 21 (primo)
- Python, 23 (mbomb007)
- Ruby, 27 (histokrat)
- SAS, 28 (ConMan)
- Ruby, 29 (histokrat)
- Python, 30 (mbomb007)
- JavaScript, 31 (hsl)
- Ruby, 33 (histokrat)
- Marbelous, 37 (es1024)
- Ruby, 43 (histokrat)
- PHP, 44 (kenorb)
- Ruby, 45 (histokrat)
- Marbelous, 45 (es1024)
- Python 2, 45 (Emil)
- PHP, 46 (Ismael Miguel)
- Haskell, 48 (nooodl)
- Python, 51 (DLosc)
- Python, 60 (Sp3000)
- Python 2, 62 (muddyfish)
- JavaScript, 68 (Jamie Barker)
- Mathematica, 73 (Arcinde)
- Haskell, 77 (proudhaskeller)
- Python, 90 (DLosc)
- C ++, 104 (user23013)
- ECMAScript 6, 116 (Mateon1)
- C ++ 11, 121 (es1024)
- Rumput, 134 (user23013)
- PowerShell, 182 (christopherw)
Pengajuan yang belum terpecahkan
Sesuai urutan waktu pengiriman. Daftar ini milik banyak pengguna.
- CoffeeScript, 96 (soktinpk)
- Python 3, 70 (Sp3000)
- TinyMUSH 3.1, 20 (Muqo)
- GolfScript, 32 (Peluruhan Beta)
- Python 2, 101 (Mateon1)
- Lua, 49 (ChipperNickel)
- Python, 61 (imallett)
- Java 6+, 218 (nhahtdh)
- CJam, 51 (Martin Büttner)
- J, 22 (FireFly)
- Marbelous, 106 (es1024)
- Marbelous, 107 (es1024)
- JavaScript, 79 (FireFly)
- CJam, 47 (user23013)
- Rust, 118 + Clojure, 106 + lainnya (Vi.) - versi 2
- Marbelous, 144 (es1024)
- Python 2, 80 (MrWerlang)
- Perl, 53 (DLosc)
- Perl, 26 (primo)
- Mathematica, 31 (Arcinde)
- Marbelous, 144 (es1024)
- Majelis, 78 (krzygorz)
- J, 14 (algoritme hiu)
- Java 8, 157 (TheBestOne)
Alat kecil untuk memverifikasi solusi, milik n̴̖̋h̷͉̃a̷̭̿h̸̡̅ẗ̵̨́d̷̰̀ĥ̷̳
sumber
Jawaban:
Python 3, ukuran 74 ( Retak )
Python tidak sama setelah dididik ulang oleh Big Brother.
Memasukkan:
Ada dua baris baru di akhir baris 1 dan 2.
Keluaran:
Perhatikan bahwa masing-masing
True
berada di jalurnya sendiri.sumber
2+2==5
pernyataan keempat sampai saya menemukan bahwa=
membuatnya terlalu mudah.Python 3, ukuran 12 ( Retak )
Program saya tidak menghasilkan output dan tidak ada kesalahan.
sumber
int
sementara waktu.python
dan kemudian ketik solusi saya di prompt. Tapi itu berhasil, jika saya meletakkan solusi saya dalam file dan ketikpython file
.CJam, ukuran 20 ( Retak )
Kode
Keluaran
sumber
Python 2, ukuran 50
Retak
Kita sudah tahu Jawaban atas Pertanyaan, tetapi apa Pertanyaannya?
Kode
Perhatikan bahwa tidak ada spasi tambahan atau baris baru. Satu-satunya karakter spasi putih adalah spasi tunggal setelahnya
print
.Keluaran
Saya telah mencoba menyeimbangkan panjang dan kesulitan kode, tetapi itu tidak akan mengejutkan saya jika saya sedikit melewatkannya. Semoga itu cukup untuk mencegah kekerasan, setidaknya.
sumber
Pyth - 71 Cracked
Kode
Keluaran
* Awalnya, George Lucas menyuruh Han menyela C3-PO. **
** Dia menyebut ini ide terbesarnya sejak Jar-Jar.
Catatan menarik: terlepas dari semua perubahan yang dilakukan Pyth, masih ada jawaban yang valid di sini!
Asli
Penjelasan
Diperbarui
Maaf untuk format penjelasan yang buruk, saya tidak tahu cara menggunakan blok spoiler: S (@ Sp3000 membuatnya sedikit lebih baik untuk Anda,)
Sekarang Anda dapat menjalankan Pyth online! Coba di sini. Terima kasih @isaacg :)
sumber
<br>
CJam, ukuran 51 [AMAN]
Kode
Keluaran
Anda dapat bermain-main dengannya di penerjemah online .
Ini harus lebih mudah retak daripada yang terlihat.
Petunjuk
Larutan
sumber
Befunge-98, ukuran 15 [AMAN]
Kode
Keluaran
Asli
sumber
3312
,3300
dan beberapa lainnya dekat3314
. Begitu dekat ...GolfScript (16 byte) [SAFE]
Output yang diharapkan:
Sumber asli:
sumber
:
.Ruby, 17 ( Retak )
Pergi untuk sesuatu yang sangat singkat kali ini.
Keluaran:
sumber
Python, 69 karakter [ dipecahkan oleh grc ]
Diacak:
Keluaran:
Yang ini hanya sedikit kesenangan yang tidak berbahaya :) Diuji pada CPython 2.7.8, 3.3.2 dan untuk itu PyPy3 2.3.1.
Penjelasan
sumber
Python, ukuran 56 ( retak )
Kode
for i in "iprint()".join(([2,3,7,0,9,chr((-7+732^70)])))
Keluaran
hi mom
sumber
Python 3, 70 karakter
Diacak:
Output (panjang 99 karakter):
Memperbarui
Sudah seminggu, jadi alih-alih memposting jawabannya, inilah sebuah petunjuk:
sumber
Pyth , 11
Keluaran:
sumber
JavaScript, 94 Retak oleh FireFly
Keluaran
Asli
sumber
alert
pertama, karena indeks cocok dengan karakter yang dibutuhkan. Kebetulan yang menarik.Syntax Error: Unexpected String
Ruby, 38 - dipecahkan oleh Martin Büttner
Keluaran:
Asli:
sumber
print
dandowncase!
adalah ikan haring merah. Saya mengharapkan jawaban untuk digunakanputs
, tidak memikirkan$><<
.Python 3, ukuran 16 ( Retak )
Kode:
Output (dengan baris baru di akhir):
sumber
hello
itu adalah anagramimport
. ^^Perl - 47 ( retak oleh grc )
Kode (ada satu ruang di sana juga)
Keluaran:
Anda dapat menjalankannya secara online di sini dan berfungsi di bawah
strict
danwarnings
.sumber
strict
danwarnings
beri tahu saya.Ruby, 33 - dipecahkan oleh user23013
Keluaran:
Asli:
sumber
puts
jelas akan menjadi hal pertama di sana,.next
adalah kata kunci lain yang dapat digunakan, dan sisanya adalah semacam sihir dengan$
variabel ruby dan pembuatan array karakter .... +1Python2, 132 karakter
Output (dengan baris baru):
Versi terbaru, 96 karakter
Jawaban untuk versi asli menyarankan
exec
bukancompile
+eval
, jadi di sini adalah versi yang disederhanakan:Pembaruan: retak
Sepenuhnya retak oleh Alex Van Liew dan KennyTM . Solusi aslinya adalah (gulir ke kanan untuk menampilkan spoiler):
sumber
\n
string dalam literal). Dengan baris baru, kode bisa lebih pendek.x
danc
bagi saya untuk melakukan apa yang ingin saya lakukan: PDon't count ones which exist. Count ones which do not exist
.Ruby, 29 [aman]
Mencoba melihat seberapa pendek saya dapat masuk ke Ruby tanpa menjadi retak.
Kode
Keluaran
Asli
Penjelasan
sumber
PHP, ukuran 49 [ Cracked oleh Martin Büttner ]
Kode
Keluaran
sumber
MATLAB, 41 byte
Retak oleh feersum
Keluaran
sumber
Perl, 36 ← retak oleh grc
Kode
Keluaran
Diuji di sini
sumber
Haskell, 100 Chars (Tidak valid, output terlalu panjang)
Kode
Keluaran:
"\er\\e\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"\\\\\\\\\\\\\\\\\\\\\\\\\\"\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"\\\\\\\\\\\\"\\\\\\\\\\\\\"\\\\\\\
Asli
sumber
fix show
. Jelas tidak bisaJ, 22 byte
Kode
Output (97 karakter)
Saya berharap ini praktis mustahil ...
sumber
CJam, 32 byte ( retak )
Sumber acak
Keluaran
sumber
Pyth - 35 - Cracked
Dalam semangat @ MartinBüttner:
Kode
Keluaran
Coba decode secara online di sini.
sumber
TinyMUSH 3.1 , 20
Diacak:
Keluaran:
sumber
Python 3, panjang 110 [ dipecahkan oleh grc ]
Scrambled (
\n
menunjukkan baris baru)Keluaran:
Inilah satu lagi kesenangan - tidak dimaksudkan untuk menjadi sulit, tetapi hanya sesuatu yang tidak biasa dan membingungkan. :)
Penjelasan
sumber
Javascript, 29 - Cracked
Jalankan di konsol browser Chrome
Kode
Keluaran
Kode asli
sumber