Mölkky
Mölkky bir Fin fırlatma oyunudur. Oyuncular, 1 ile 12 arasında sayılarla işaretlenen, fırlatma pimi ile neredeyse aynı boyuttaki tahta pimlerini vurmaya çalışmak için bir tahta pimi ("mölkky" olarak da adlandırılır) kullanırlar.
(07)(09)(08)
(05)(11)(12)(06)
(03)(10)(04)
(01)(02)
Bu açıklama ve aşağıdaki kurallar Wikipedia'ya dayanmaktadır .
Basitleştirilmiş Mölkky kuralları
Bir iğneyi vurmak, iğnede işaretli noktaların sayısını alır.
2 veya daha fazla pin vurmak, devirilen pinlerin sayısını belirtir (örneğin, 3 pinten 3 puan kazanmak).
Oyunun amacı tam olarak 50 puana ulaşmak . Skoru 25 puana geri ayarlayarak 50'den fazla puanlama cezalandırılır .
Bu zorluğun amacı için, pimlerin her zaman yukarıda açıklanan sırayla olduğu varsayımını yapacağız . (Gerçek bir oyunda, iğneler indikleri yerde her atıştan sonra tekrar ayağa kalkar.)
Diğer tüm Mölkky kuralları dikkate alınmaz ve sadece bir oyuncu kabul edilir.
Giriş
Boş olmayan 12 booleans listesinin listesi. Boole Her liste bir atış sonucunu açıklar: 1 pimi devirmiş ve eğer 0 aksi. Boolean'ler pimlerin tam olarak sırasıyla soldan aşağı sağa doğru verilmiştir: 7 , 9 , 8 , 5 , 11 , 12 , 6 , 3 , 10 , 4 , 1 , 2 .
Çıktı
Girişte açıklanan tüm atışlardan sonraki puan, kural 1 , 2 ve 3 uygulanarak hesaplanır .
Detaylı örnek
Aşağıdaki girişi düşünelim:
// 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
Beklenen çıktı 27 .
Meydan okuma kuralları
- Herhangi bir makul formatta girdi alabilirsiniz. Boolean listeleri yerine, en önemli bitin pim # 7 ve en az anlamlı bitin pim # 2 olduğu tam sayıları kullanabilirsiniz. Bu formatta, yukarıdaki örnek olarak iletilecektir
[ 256, 2304, 127, 64, 64, 128, 2048, 3072 ]
. - Giriş listesi, hiçbir pimin çarpılmadığı yerlerde atmalar içerebilir; bu durumda puan değişmez.
- Skor tam 50 puana ulaştığında yapacak özel bir şeyin yok . Ancak, gerçekleştiğinde başka bir atış izlemeyeceğini varsayabilirsiniz.
- Bu kod golf , yani bayt cinsinden en kısa cevap kazanır.
Test durumları
Tamsayı listelerini giriş olarak kullanma:
[ 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
Bu test durumlarını Boolean biçiminde almak için bu bağlantıyı takip edebilirsiniz .