Завтра праздник середины осени, и в духе этого праздника я представлю азартную игру, в которую мы (жители Сямыня ) играем во время праздника!
правила
Игра ведется шестью шестигранными кубиками. Различные комбинации чисел имеют разные ранги, с особым акцентом на четверки и единицы. Ваша задача - написать программу / функцию, которая оценит раздачу, учитывая бросок 6 кубиков. Вот ряды (я немного изменил / упростил правила):
Я думаю, что только китайцы могут сделать этот вызов! Хорошо, хорошо, вот несколько английских объяснений.
- 0: 4 четверки и 2 единицы.
- 1: 6 четверок.
- 2: 6
- 3: 6 любого вида, кроме четверок и единиц.
- 4: 5
- 5: 5 любого вида, кроме четверок.
- 6: 4
- 7: прямо. (1-6)
- 8: 3
- 9: 4 любого вида, кроме 4.
- 10: 2 четверок.
- 11:14.
- 12: ничего.
вход
6 чисел, массив из 6 чисел или строка из 6 чисел, представляющих значения 6 бросков костей от 1 до 6
Выход
Ваша программа / функция может возвращать / выводить все, что указывает на ранг, при условии, что каждый ранг указывается одним выходом, и наоборот. Ex. Используя цифры 0-12, 1-13 и т. Д.
Примеры (Использование 0-12 в качестве выходных данных)
[1,1,1,1,1,1]->2
[1,4,4,4,1,4]->0
[3,6,5,1,4,2]->7
[1,2,3,5,6,6]->12
[3,6,3,3,3,3]->5
[4,5,5,5,5,5]->5
Это код-гольф, поэтому выигрывает самое короткое число байтов!
[1,2,3,5,6,6]->13
??10
не пропускается.Ответы:
Древесный уголь , 55 байт
Попробуйте онлайн! Ссылка на подробную версию кода. Не пропускает 10. Объяснение:
Рассчитайте максимальную частоту любой цифры.
Если есть 6 типа, то вычтите положение цифры в строке
14
из 2. Это дает 1 для 6 4s, 2 для 6 1s и 3 для 6 из всего остального.Если есть 5 типа, то результат равен 5, если нет 5 4, в этом случае 1 вычитается.
Если есть 4 типа, то если есть 4 4, то результат равен 6, если нет 2 1, в этом случае результат равен 0, в противном случае результат равен 9.
Если все цифры разные, то результат 7.
В противном случае результат будет 12 - (4 >> (3 - # из 4s)).
источник
JavaScript (ES6), 88 байт
Попробуйте онлайн! или проверить все возможные броски!
Выводит целое число в соответствии со следующим отображением:
Как?
метод
Выход вычисляется путем выполнения побитового ИЛИ между:
Исключения:
Стол
пример
комментарии
источник
R , 100 байт
Закодируйте счет как набор проиндексированных условных выражений. Проще, чем мой первый подход stringy-regex.
Edit - исправлена ошибка и теперь ранжируются все броски.
Попробуйте онлайн!
источник
JavaScript (Node.js) , 169 байт
Попробуйте онлайн!
Возвращает
1..13
источник
Python 2 ,
148119 байт-27 байт благодаря ovs's (1. использование
.count
разрешенияmap
для использования; 2. удаление избыточного0
в срезе; 3. использованиеin
вместо amax
; 4. сокращено(F==4)*O==2
доF==4>O==2
[так как игра в гольфF>3>O>1
])Попробуйте онлайн!
источник
d
нужен только один, это короче как полная программа .Pyth, 60 байт
Карты в обратном ранге, 0-12. Попробуйте онлайн здесь или проверьте все тестовые примеры сразу здесь .
Полное сопоставление используется следующим образом:
Это работает путем отображения значений костей на частоты, затем расчета значения нескольких правил и получения максимума из набора.
источник
Сетчатка ,
137126 байт-11 байт благодаря @Neil .
Вывод 0-indexed (
0..12
).Попробуйте онлайн или проверьте все контрольные примеры .
Объяснение:
Замените каждые 4 на 'A':
Сортируйте все входные цифры (буквы А будут сзади):
Каждые две другие строки заменяют ввод ожидаемым выводом:
источник
4
что-то за пределами диапазона,1-6
чтобы заставить его сортироваться на одном конце автоматически (не уверен, имеет ли это значение, к какому концу вы сортируете).05AB1E ,
5755 байтПорт ответа @Neil 's Charcoal , потому что мой первоначальный подход был уже на 60 байтах, а я еще не закончил. Мой текущий ответ, вероятно, может быть еще в гольфе.
Ввод в виде списка цифр.
Попробуйте онлайн или проверьте все контрольные примеры .
Объяснение:
источник
Рубин , 100 байт
Попробуйте онлайн!
Как это работает:
Подсчитайте вхождения каждого числа в массиве, добавьте число 1 и добавьте число 4.
После этого попробуйте сопоставить с различными шаблонами регулярных выражений.
источник