Mölkky
Mölkky ist ein finnisches Wurfspiel. Die Spieler benutzen eine Holznadel (auch "mölkky" genannt), um mit der Wurfnadel, die mit Nummern von 1 bis 12 gekennzeichnet ist, Holznadeln mit fast ähnlichen Abmessungen umzuwerfen. Die Ausgangsposition der Nadeln ist wie folgt:
(07)(09)(08)
(05)(11)(12)(06)
(03)(10)(04)
(01)(02)
Diese Beschreibung und die folgenden Regeln basieren auf Wikipedia .
Vereinfachte Mölkky-Regeln
Wenn Sie einen Pin umwerfen, wird die Anzahl der auf dem Pin markierten Punkte gewertet.
Wenn Sie 2 oder mehr Stifte umwerfen, erhalten Sie die Anzahl der umgeworfenen Stifte (z. B. wenn Sie 3 Stifte umwerfen, erhalten Sie 3 Punkte).
Ziel des Spiels ist es, genau 50 Punkte zu erreichen . Wenn Sie mehr als 50 Punkte erzielen, wird dies bestraft, indem Sie die Punktzahl auf 25 zurücksetzen.
Für diese Herausforderung nehmen wir an, dass sich die Stifte immer in der oben beschriebenen genauen Reihenfolge befinden. (In einem echten Spiel werden die Stifte nach jedem Wurf an der Stelle, an der sie gelandet sind, wieder aufgerichtet.)
Alle anderen Mölkky-Regeln werden ignoriert und nur ein einzelner Spieler wird berücksichtigt.
Eingang
Eine nicht leere Liste von Listen mit 12 Booleschen Werten. Jede Liste von Booleschen Werten beschreibt das Ergebnis eines Wurfs: 1, wenn die Nadel umgeworfen wurde, und 0, wenn dies nicht der Fall ist . Die Booleschen Werte werden in der genauen Reihenfolge der Stifte von links oben nach rechts unten angegeben: 7 , 9 , 8 , 5 , 11 , 12 , 6 , 3 , 10 , 4 , 1 , 2 .
Ausgabe
Die Punktzahl nach allen in der Eingabe beschriebenen Würfen, berechnet nach den Regeln 1 , 2 und 3 .
Ausführliches Beispiel
Betrachten wir die folgende Eingabe:
// 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
Die erwartete Ausgabe ist 27 .
Herausforderungsregeln
- Sie können Eingaben in jedem vernünftigen Format vornehmen. Anstelle von Listen mit Booleschen Werten können Sie Ganzzahlen verwenden, bei denen das höchstwertige Bit Pin 7 und das niedrigstwertige Bit Pin 2 ist. In diesem Format würde das obige Beispiel als übergeben
[ 256, 2304, 127, 64, 64, 128, 2048, 3072 ]
. - Die Eingabeliste kann Würfe enthalten, bei denen überhaupt keine Nadel umgeworfen wird. In diesem Fall wird die Punktzahl unverändert gelassen.
- Sie haben nichts Besonderes zu tun, wenn die Punktzahl genau 50 Punkte erreicht. Sie können jedoch davon ausgehen, dass kein weiterer Wurf folgen wird, wenn dies geschieht.
- Das ist Code-Golf , also gewinnt die kürzeste Antwort in Bytes.
Testfälle
Verwenden von Ganzzahllisten als Eingabe:
[ 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
Sie können diesem Link folgen , um diese Testfälle im Booleschen Format abzurufen.