Mölkky
Mölkky - фінська гра в метання. Гравці використовують дерев'яну шпильку (також її називають "mölkky"), щоб спробувати стукати по дерев’яних штифтах майже подібних розмірів за допомогою метальної шпильки, позначеної цифрами від 1 до 12. Початкове положення штирів таке:
(07)(09)(08)
(05)(11)(12)(06)
(03)(10)(04)
(01)(02)
Цей опис та правила нижче базуються на Вікіпедії .
Спрощені правила Мелька
При постукуванні однієї шпильки набирається кількість очок, позначених на шпильці.
Удар 2 або більше штифтів набирає кількість збитих штифтів (наприклад, перекидання 3-х штифтів набирає 3 бали).
Мета гри - досягти рівно 50 очок. Набравши більше 50, карається тим, що оцінка повертається до 25 балів.
Для цієї задачі ми зробимо припущення, що штифти завжди в точно описаному вище порядку. (У реальній грі шпильки встають знову після кожного кидка в тому місці, де вони приземлилися.)
Усі інші правила Мьолккі ігноруються і розглядається лише один гравець.
Вхідні дані
Непорожній список зі списків із 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 балів. Але ви можете припустити, що жоден інший кидок не відбудеться, коли це станеться.
- Це код-гольф , тому найкоротша відповідь у байтах виграє.
Тестові справи
Використання списків цілих чисел як вхідних даних:
[ 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
Ви можете перейти за цим посиланням, щоб отримати ці тестові приклади у булевому форматі.