Mokky
Mölkky adalah permainan melempar Finlandia. Para pemain menggunakan pin kayu (juga disebut "mölkky") untuk mencoba menjatuhkan pin kayu dengan dimensi yang hampir sama dengan pin lempar, ditandai dengan angka dari 1 hingga 12. Posisi awal pin adalah sebagai berikut:
(07)(09)(08)
(05)(11)(12)(06)
(03)(10)(04)
(01)(02)
Deskripsi dan aturan di bawah ini didasarkan pada Wikipedia .
Aturan Mölkky yang disederhanakan
Mengetuk lebih dari satu pin akan menghitung jumlah poin yang ditandai pada pin tersebut.
Mengetuk 2 atau lebih pin menghasilkan jumlah pin yang terjatuh (misalnya, merobohkan 3 pin mencetak 3 poin).
Tujuan permainan ini adalah untuk mencapai tepat 50 poin. Mencetak lebih dari 50 dihukum dengan mengembalikan skor menjadi 25 poin.
Untuk tujuan tantangan ini, kami akan membuat asumsi bahwa pin selalu dalam urutan yang tepat seperti dijelaskan di atas. (Dalam permainan nyata, pin berdiri lagi setelah setiap lemparan di lokasi di mana mereka mendarat.)
Semua aturan Mölkky lainnya diabaikan dan hanya satu pemain yang dipertimbangkan.
Memasukkan
Daftar daftar kosong 12 boolean. Setiap daftar boolean menggambarkan hasil lemparan: 1 jika pinnya terjatuh dan 0 sebaliknya. Boolean diberikan sesuai urutan pin, dari kiri atas ke kanan bawah: 7 , 9 , 8 , 5 , 11 , 12 , 6 , 3 , 10 , 4 , 1 , 2 .
Keluaran
Skor setelah semua lemparan dijelaskan dalam input, dihitung dengan menerapkan aturan 1 , 2 dan 3 .
Contoh terperinci
Mari pertimbangkan masukan berikut:
// 07 09 08 05 11 12 06 03 10 04 01 02
[ [ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 ], // scores 5 (rule #1)
[ 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 ], // scores 2 (rule #2), total: 7
[ 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1 ], // scores 7, total: 14
[ 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 ], // scores 12, total: 26
[ 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 ], // scores 12, total: 38
[ 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 ], // scores 11, total: 49
[ 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], // scores 7, total: 56 -> 25 (rule #3)
[ 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ] ] // scores 2, total: 27
Output yang diharapkan adalah 27 .
Aturan tantangan
- Anda dapat mengambil input dalam format apa pun yang masuk akal. Alih-alih daftar boolean, Anda dapat menggunakan bilangan bulat di mana bit paling signifikan adalah pin # 7 dan bit paling signifikan adalah pin # 2. Dalam format ini, contoh di atas akan dilewatkan sebagai
[ 256, 2304, 127, 64, 64, 128, 2048, 3072 ]
. - Daftar input mungkin berisi lemparan di mana tidak ada pin sama sekali terlempar, dalam hal ini skor dibiarkan tidak berubah.
- Anda tidak memiliki hal khusus untuk dilakukan ketika skor mencapai tepat 50 poin. Tetapi Anda dapat mengasumsikan bahwa tidak ada lemparan lain yang akan mengikuti ketika itu terjadi.
- Ini adalah kode-golf , jadi jawaban tersingkat dalam byte menang.
Uji kasus
Menggunakan daftar bilangan bulat sebagai input:
[ 0 ] --> 0
[ 528 ] --> 2
[ 4095 ] --> 12
[ 64, 0, 3208 ] --> 16
[ 16, 1907, 2048 ] --> 18
[ 2023, 2010, 1, 8 ] --> 29
[ 1726, 128, 35, 3136, 1024 ] --> 34
[ 32, 32, 2924, 2, 256, 16 ] --> 28
[ 64, 64, 2434, 1904, 3251, 32, 256 ] --> 25
[ 3659, 2777, 2211, 3957, 64, 2208, 492, 2815 ] --> 25
[ 2047, 1402, 2, 2599, 4, 1024, 2048, 3266 ] --> 50
[ 256, 2304, 127, 64, 64, 128, 2048, 3072 ] --> 27
[ 16, 8, 128, 1, 2048, 1, 2048, 513, 8, 3206 ] --> 30
Anda dapat mengikuti tautan ini untuk mendapatkan test case ini dalam format Boolean.