メルキー
Mölkkyはフィンランドの投げゲームです。プレーヤーは木製ピン(「メルキー」とも呼ばれます)を使用して、1〜12の数字でマークされたスローイングピンとほぼ同じ寸法の木製ピンを倒します。ピンの初期位置は次のとおりです。
(07)(09)(08)
(05)(11)(12)(06)
(03)(10)(04)
(01)(02)
この説明と以下のルールはウィキペディアに基づいています。
簡略化されたMölkkyルール
1本のピンをノックすると、ピンにマークされたポイントの数が決まります。
ノッキング2つの以上のピンのピンの数は上ノックスコア(例えば、3つのピンスコア3点にわたってノッキング)。
ゲームの目的は、正確に50ポイントに到達することです。スコアを25ポイントに戻すと、50を超えるスコアがペナルティになります。
この課題のために、ピンは常に上記の正確な順序であると仮定します。(実際のゲームでは、ピンは着地した場所に投げるたびに再び立ち上がります。)
他のすべてのMölkkyルールは無視され、1人のプレーヤーのみが考慮されます。
入力
12個のブール値のリストの空でないリスト。ブール値の各リストは、スローの結果を表します。ピンがノックオーバーされた場合は1、そうでない場合は0です。:ブール値は、左上から右下へのピンの正確な順序で与えられている7、9、8、5、11、12、6、3、10、4、1、2。
出力
すべての後のスコアは、ルールを適用して算出、入力に記載のスロー1、2及び3。
詳細な例
次の入力を考えてみましょう。
// 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
予想される出力は27です。
チャレンジルール
- 妥当な形式で入力できます。ブール値のリストの代わりに、最上位ビットがピン#7で、最下位ビットがピン#2である整数を使用できます。この形式では、上記の例はとして渡され
[ 256, 2304, 127, 64, 64, 128, 2048, 3072 ]
ます。 - 入力リストには、ピンがまったくノックオーバーされないスローが含まれる場合があります。その場合、スコアは変更されません。
- スコアが正確に 50ポイントに達したときに特別なことはありません。しかし、それが起こった場合、他のスローは続かないと仮定できます。
- これはcode-golfであるため、バイト単位の最短回答が優先されます。
テストケース
入力として整数のリストを使用する:
[ 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