Mölkky
Mölkky est un jeu de lancer finlandais. Les joueurs utilisent une goupille en bois (également appelée "mölkky") pour tenter de renverser des goupilles en bois de dimensions presque similaires avec la goupille de lancer, portant les chiffres de 1 à 12. La position initiale des goupilles est la suivante:
(07)(09)(08)
(05)(11)(12)(06)
(03)(10)(04)
(01)(02)
Cette description et les règles ci-dessous sont basées sur Wikipedia .
Règles Mölkky simplifiées
Le renversement d' une épingle marque le nombre de points marqués sur l'épingle.
Frapper deux ou plus de quilles marque le nombre de quilles renversées (par exemple, frapper sur trois quilles rapporte 3 points).
Le but du jeu est d’atteindre exactement 50 points. Marquer plus de 50 est pénalisé en ramenant le score à 25 points.
Pour les besoins de ce défi, nous supposerons que les broches sont toujours dans l'ordre exact décrit ci-dessus. (Dans un vrai jeu, les quilles sont relevées après chaque lancer à l'endroit où elles ont atterri.)
Toutes les autres règles de Mölkky sont ignorées et un seul joueur est pris en compte.
Contribution
Une liste non vide de listes de 12 booléens. Chaque liste de booléens décrit le résultat d'un lancer: 1 si l'épingle a été renversée et 0 sinon. Les booléens sont donnés dans l'ordre exact des quilles, de haut en bas à droite: 7 , 9 , 8 , 5 , 11 , 12 , 6 , 3 , 10 , 4 , 1 , 2 .
Sortie
Le score après tous les jets décrits dans l’entrée, calculé en appliquant les règles 1 , 2 et 3 .
Exemple détaillé
Considérons l'entrée suivante:
// 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
La sortie attendue est 27 .
Règles du challenge
- Vous pouvez prendre des entrées dans n'importe quel format raisonnable. Au lieu de listes de booléens, vous pouvez utiliser des entiers où le bit le plus significatif est la broche n ° 7 et le bit le moins significatif est la broche n ° 2. Dans ce format, l'exemple ci-dessus serait transmis en tant que
[ 256, 2304, 127, 64, 64, 128, 2048, 3072 ]
. - La liste de saisie peut contenir des jets où aucune broche n'est renversée, auquel cas le score reste inchangé.
- Vous n'avez rien de spécial à faire lorsque le score atteint exactement 50 points. Mais vous pouvez supposer qu’aucun autre coup ne suivra quand cela se produira.
- C'est du code-golf , donc la réponse la plus courte en octets est gagnante.
Cas de test
Utiliser des listes d'entiers en entrée:
[ 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
Vous pouvez suivre ce lien pour obtenir ces cas de test au format booléen.