Ini adalah utas Polisi. Utas perampok ada di sini .
Latar Belakang
Boggle adalah permainan papan di mana para pemain harus menemukan kata-kata bahasa Inggris di papan 4-oleh-4 huruf acak. Kata-kata dapat dibangun dengan memilih sel-sel yang berdekatan secara berurutan di papan tulis. ("berdekatan" berarti berdekatan secara horizontal, vertikal atau diagonal.) Juga, sel yang sama tidak dapat digunakan lebih dari sekali dalam sebuah kata.
Berikut ini adalah contoh papan:
I L A W
B N G E
I U A O
A S R L
Di papan ini BINGO
,, ORANGE
dan WEARS
merupakan kata yang valid, tetapi SURGE
dan RUSSIA
tidak:
SURGE
: Tidak ada pasangan yang berdekatan di papan memilikiRG
.RUSSIA
:S
tidak dapat digunakan dua kali.
Modifikasi Boggle adalah versi modifikasi Boggle, dengan aturan berikut:
- Ukuran papan adalah
m
-dengan-n
, di manam
dann
dapat berupa bilangan bulat positif. - Setiap sel dapat berisi satu byte antara 0 dan 255 inklusif.
- Sel dapat digunakan lebih dari sekali, tetapi tidak dua kali berturut-turut.
Menggunakan contoh papan di atas, sebagai tambahan BINGO
, ORANGE
dan WEARS
, LANGUAGE
menjadi string yang valid (karena G
digunakan dua kali, tetapi tidak dua kali berturut-turut) tetapi RUSSIA
masih tidak (karena SS
berpasangan).
Berikut adalah contoh lain menggunakan fragmen kode. String from itertools import*\n
dapat ditemukan di papan berikut, tetapi tidak from itertoosl import*
atau from itertools import *
:
f i ' ' s
r t m l
e o o p
\n * t r
Perhatikan bahwa Anda perlu dua o
untuk mencocokkan oo
urutan.
Tantangan polisi
Tulis program lengkap dalam bahasa pilihan Anda yang memenuhi aturan berikut:
- Program harus mencetak sesuatu yang konsisten selama beberapa kali proses.
- Program harus selesai dalam waktu sekitar 5 detik.
- Program tidak boleh mengambil input apa pun.
- Baik program dan outputnya harus minimal 2 byte.
- Apa pun yang terkait dengan fungsi hash, PRNG, atau kriptografi tidak diizinkan.
Kemudian, susun program dan hasil Anda menjadi dua papan boggle yang dimodifikasi . Setiap papan bisa berupa kotak. Perhatikan bahwa papan 1-by-N dan 2-by-N dapat menimbulkan tantangan khusus bagi polisi dan perampok. Jika Anda ingin beberapa sel di papan tidak dapat digunakan (untuk menambah lebih banyak pembatasan), Anda dapat memilih beberapa byte yang tidak berguna dan mengisi lubang dengannya.
Misalnya, jika Anda menginginkan kisi 2x2 dengan gerakan horizontal / vertikal saja, Anda dapat melakukan ini sebagai gantinya:
a b
c d
-----------
X a X
c X b
X d X
Dalam kiriman Anda, tentukan bahasa yang Anda gunakan, panjang kode sumber dan output, dan dua papan boggle. Perhatikan bahwa kode yang lebih pendek dan / atau keluaran yang lebih panjang diperbolehkan untuk perampok , sehingga Anda dapat memilih untuk memberikan ruang untuk jumlah byte (yaitu tentukan kode yang lebih panjang dan / atau keluaran yang lebih pendek dari solusi Anda yang sebenarnya).
Jika papan Anda mengandung beberapa karakter yang tidak dapat dicetak, Anda dapat menentukan papan sebagai nilai byte.
Setelah seminggu seorang polisi diposting, itu dapat ditandai dengan aman oleh poster jika tidak retak sampai saat itu. Polisi masih terbuka untuk perampok sampai benar-benar ditandai aman. Polisi yang aman tidak dapat dipecahkan, dan poster harus mengungkapkan solusi yang dimaksud.
Anda harus mengaburkan papan sebanyak mungkin, karena tantangan perampok adalah untuk memecahkan kiriman Anda dengan menemukan kode dan hasilnya di papan. Jika Anda ingin menjejalkan kode panjang ke papan kecil, jawaban untuk tantangan Modifikasi Boggle asli dapat memberikan beberapa wawasan.
Mencetak angka untuk polisi
Karena sulit untuk mengatakan apakah papan yang lebih besar atau lebih kecil lebih sulit untuk ditembus, setiap pengiriman polisi yang aman dihitung sebagai skor 1. Pengguna dengan skor tertinggi menang. Disarankan untuk berpartisipasi dengan berbagai bahasa dan pendekatan kreatif.
Contoh cop & format
# Japt, code 9 bytes, output 20 bytes
Code board: 2 rows, 2 columns
`l
íÏ
As byte values:
96 108
237 207
Output board: 3 rows, 3 columns
175
120
643
Skrip verifikasi Kericuhan yang dimodifikasi
Semua skrip di bawah ini memiliki input contoh dengan itu.
Script untuk string karakter (kode / output) & boggle. Ini tidak mendukung string multi-line. Format input adalah
- satu baris string (baik kode atau output), diikuti oleh
- papan boggle mentah.
Script untuk string karakter dengan boggle nilai-byte. Gunakan ini jika string target dapat dicetak tetapi memiliki satu atau lebih baris baru di dalamnya. Format input adalah
- jumlah garis untuk string,
- string mentah (mungkin multi-line), lalu
- papan boggle sebagai nilai byte.
Skrip untuk byte-value string & boggle. Gunakan ini jika string target berisi satu atau lebih karakter yang tidak dapat dicetak. Format input adalah
- satu baris string (baik kode atau output) sebagai nilai byte, diikuti oleh
- papan boggle sebagai nilai byte.
sumber
[]+.
, tapi saya pikir itu mungkin tidak mungkin. Adakah yang mau mencoba?Jawaban:
JavaScript, kode 1443 bytes, 3 bytes output, di- crack oleh @ShieruAsakoto
Papan kode, 3 baris dengan 4 kolom
Papan keluaran, 1 baris demi 2 kolom
Agak jelas apa outputnya.
Ini akan menjadi kode yang menyenangkan untuk dipecahkan.Lupa menyebutkan bahwa itu dimaksudkan untuk menjadi program penuh (dan agak menyiratkan bahwa itu tidak; lihat paragraf di bawah). Untuk tantangan nyata, lihat jawaban saya yang lain .Saya tidak berpikir ini Node.js, tetapi pengetahuan saya di bidang ini nol. Apa yang bisa saya katakan adalah itu berjalan di konsol saya di Edge dan Chrome.
sumber
NaN
JavaScript (Node.js), kode 53 byte, menghasilkan 41 byte, diretas oleh Arnauld
Papan Kode: 3 baris dengan 6 kolom:
Papan Keluaran: 4 baris dengan 6 kolom:
Petunjuk: kode hanya berfungsi pada mesin V8 JS, versi 6.7 atau yang lebih baru
Milik saya
console.log(1n+1n+1n<<(1n+1n+1n+1n<<1n+1n+1n+1n+1n));
dengan tanda titik koma (jangan tanya mengapa) dan hasilnya adalah ya,3 * 2**128
dengan trailingn
menandai nomor sebagai literal BigInt.sumber
console.log
, saya akan sangat terkesanconsole
tidak tersedia kecuali saat awal, tidak ada tugas, tidak ada string literal, tidak ada tanda kurung (sehingga tidak ada array literal atau pengindeksan). Saya bahkan memeriksa Node global danconsole
properti, tetapi tidak ada yang cocok di sana.JavaScript (Node.js), kode 88 byte, output 2 byte, diretas oleh Arnauld dengan 27-byte
Papan Kode: 7 baris dengan 9 kolom:
Papan Keluaran: 1 baris dengan 2 kolom:
Outputnya jelas, tetapi kodenya tidak. ;)
Jawaban asli saya adalah tes LL dari M 127 , yang
Jawaban Arnauld menggunakan titik koma untuk menjembatani celah yang lebih pendek, dan saya sama sekali tidak mengharapkan (atau menyadari)
s%=s
bagian itu:Oh, omong-omong 3 posting saya sama sekali tidak ada hubungannya dengan fungsi hash, PRNGs atau kriptografi. Saya bersumpah ketiga ini hanya tentang manipulasi angka.
ada byte yang tidak digunakan di papan kode
sumber
MathGolf, kode 42 byte, menghasilkan 22 byte
Papan Kode: 3 baris dengan 7 kolom
Papan Keluaran: 3 baris dengan 6 kolom:
Ini agak lebih lama, tapi saya akan memberikan sedikit petunjuk: Papan kode seharusnya menyerupai bowtie, dan Anda mungkin perlu "mengikat" itu beberapa kali.
sumber
JavaScript, 1443 kode byte, 3 byte output, crack oleh @Bubbler
Program lengkap.
Papan kode, 3 baris dengan 4 kolom
Papan keluaran, 1 baris demi 2 kolom
Agak jelas apa outputnya. Ini akan menjadi kode yang menyenangkan untuk dipecahkan.
Saya tidak berpikir ini Node.js, tetapi pengetahuan saya di bidang ini nol. Apa yang bisa saya katakan adalah bahwa itu berjalan di Edge dan Chrome. Maksudnya "program penuh" yang saya maksudkan saat dijalankan antara
<script>
dan</script>
di dalam file HTML.sumber
Python 3, kode 56 byte, keluaran 69 byte, AMAN
Papan Kode: 4 baris dengan 10 kolom:
Papan Keluaran: 7 baris dengan 7 kolom:
Jauh lebih sulit daripada tantangan pertamaku;)
Kode dan Output yang Diharapkan:
sumber
10^lots
.)l=lambda a,b:+l(a-1,a*b)if a else b;print(l(11,1))
... Tapi aku tidak bisa menemukannya.MathGolf, kode 7 byte, menghasilkan 12 byte
Hanya tantangan mudah pertama, jika Anda ingin masuk ke MathGolf!
Papan Kode: 2 baris dengan 4 kolom
Papan Keluaran: 2 baris dengan 3 kolom
sumber
Jelly, kode 17 byte, output 19 byte
Metode umum seharusnya tidak terlalu sulit untuk dipilih.
Papan kode
Papan keluaran
sumber
J (REPL), kode 9 byte, menghasilkan 10.000 byte
Papan kode: 3 baris, 3 kolom
Papan keluaran: 3 baris, 2 kolom, sebagai nilai byte
Intinya,
\n\n
/01
/<space><don't use>
.Solusi yang dimaksudkan memberikan output 20008-byte.
sumber