Фон
Brag - карточная игра, похожая на концепцию, но более простая, чем покер. Рука в хвастовстве состоит из трех карт и ранжируется следующим образом от высшего к низшему:
Три в своем роде - все три карты одного ранга. Назван как "три короля" и т. Д.
Бегущий флеш, иначе стрит-флеш. Все три карты одной масти и последовательных рангов. Эта рука названа тремя картами в порядке возрастания, за которыми следуют слова «на отскоке», чтобы отличить их от простого бега / стрита, например, «десять-джек-дама на отскоке». Обратите внимание, что туз либо высокий, либо низкий, но не оба - «король-туз-два» не является пробежкой.
Беги иначе. Как указано выше, но без требования подбора костюмов. Назван просто как, например, "десять-Джек-королева".
Флеш - все три карты одной масти, названные в честь наивысшего ранга, например "Флеш туз".
Пара - две карты одного ранга вместе с третью другого ранга версии. Назван как "пара тройок" и т. Д.
Любая другая комбинация, названная в честь наивысшего ранга, например, «высокий туз».
Вызов
Если дано три игральных карты, выведите название руки хвастуна, которую они выдают.
Карты будут вводиться либо в виде трех 2-символьных строк, либо объединяться в одну 6-символьную строку (в зависимости от того, что предпочитает ваша реализация), где первая из каждой пары - ранг (2 ... 9, T, J, Q, K, A) и второй означает масть (H, C, D, S).
Применяются стандартные правила игры в гольф - напишите программу или функцию, которая принимает этот ввод и выводит имя руки, как описано выше.
Вы можете предположить, что ввод будет действительным (ранги и масти в указанном выше диапазоне, без повторной карты) и в любом случае, который вы предпочитаете, но не будет в каком-либо конкретном порядке.
Вывод должен быть либо во всех заглавных буквах, либо во всех строчных буквах, либо с разумной заглавной буквы, например, в заглавном или заглавном регистре. Числовые ранги должны быть указаны, например, «десятки», а не 10 с.
Образцы входов и выходов:
2H3C2D => "pair of twos"
TD8C9C => "eight-nine-ten"
4SKS9S => "king flush"
4D4H4S => "three fours"
5H3H2C => "five high"
2D3DAD => "ace-two-three on the bounce"
6D6C6H => "three sixes"
Это моя первая попытка на этом сайте, пожалуйста, предлагайте улучшения, но будьте осторожны :)
источник
"6D6C6S"
в качестве контрольного примера, так как шесть - нечетное множественное числоОтветы:
Руби,
384, 320Принимает массив из двухсимвольных строк.
Переводит значения в пипсах в шестнадцатеричные значения и идентифицирует руки на основе количества различных значений в пипсах.
Аннотированный:
источник
Python 2 ,
788, 715, 559, 556, 554, 546, 568,522 байта* теперь проходит «шестерку» * спасибо Бену Франкелю за сохранение 46 байт!
Попробуйте онлайн!
Спасибо за крутой первый вызов!
источник
D.get(a, b)
означает доступ к значению в dict D по ключу a, со значением по умолчанию b, если ключ не найден. Это то же самое, что писатьD[a] if a in D else b
, что то же самое, что писатьD[a] if a in D.keys() else b
.PHP,
413405398409408406398 байтК сожалению, PHP не поддерживает ссылки на вложенные массивы внутри строк;
это спасло бы еще
65 байтов.Запустите
echo <hand> | php -nR '<code>
или протестируйте его онлайн .сломать
Требуется PHP> = 5.6 (для
e[...]
)источник
Python 2 - 583 байта
Я слишком новичок, чтобы комментировать сообщения, поэтому я просто публикую свою версию Python Solusion.
Исправлена проблема с 'es' для пары и трех из шестерок. Благодаря не этому Чарльзу
Чуть более читабелен с некоторыми комментариями
источник
j=0; if [z]*3==v:r="three %ss"%i(z)
наif [z]*3==v:r="three %ss"%d[z][0]
Но это сохраняет всего 1 байт