Натхненний цим викликом і пов'язаний з цим .
Фон
Badugi [bæduːɡiː] - варіант гри в покер з низьким балом.
Всесвітній Кубок Pokerstars з онлайн-покеру в $ 1К розпочинається протягом 3 годин, і мені потрібно знати, наскільки хороші мої руки!
У грі використовується стандартна колода з 52 карт з чотирма костюмами та тринадцятьма званнями. Костюми не мають упорядкованого характеру та мають маркування cdhs
; чини - упорядковані від найвищої K
до найнижчої A
- є KQJT98765432A
. Таким чином, повна колода може бути представлена наступним чином (пробіл розділений):
Kc Kd Kh Ks Qc Qd Qh Qs Jc Jd Jh Js Tc Td Th Ts 9c 9d 9h 9s 8c 8d 8h 8s 7c 7d 7h 7s 6c 6d 6h 6s 5c 5d 5h 5s 4c 4d 4h 4s 3c 3d 3h 3s 2c 2d 2h 2s Ac Ad Ah As
Кожному гравцеві вилучається чотири картки з колоди, є чотири раунди ставок з трьома розіграшами між собою (у гравця завжди є чотири карти; у них є можливість змінити 0-4 своїх карт на нові від ділера на кожній з трьох раундів малювання).
Якщо більш ніж один гравець все ще активний після всіх цих раундів, відбудеться розбір, після чого найсильніша рука (і) виграє ставку, що склалася.
У грі проводиться низький м'яч, тому виграє найнижча рука, а як було сказано вище A
(туз) низький. Крім того, рейтинг рук відрізняється від інших форм покеру і може бути дещо заплутаним для початківців.
"Рука", що грається, - це комбінація з найнижчою позицією, яка складається з найбільшої кількості можливих карток "поза костюмом" (всі різні костюми) та "поза рангами" (для всіх різних категорій) (з чотирьох карт, що утримуються ). Тобто: якщо утримується чотири картки як відмінних костюмів, так і чітких рангів, одна рука має 4 карти (називається "бадуги"); якщо у вас немає руки з 4 картками, але вона має набір або набір з трьох карток як різних костюмів, так і різних рангів, одна має 3-карту (одна обирає найкращі); якщо у вас немає ні 4-карткової, ні 3-карткової, ймовірно, вона має дві картки, але якщо ні одна - це 1-картка.
Найкращою можливою рукою є рука з 4 картками
4-3-2-A
- найнижчі позаштатні картки з чотирьох різних костюмів , які часто називають «числом-1». Найслабшою можливою рукою була б рука з 1 карткою,K
і це можливо лише утримуючи точноKc Kd Kh Ks
.Зверніть увагу , що
4c 3h 2c As
це НЕ «Номери-1», так як4c
і2c
в тій же масті, але це є найсильнішим з рук 3-карти,3-2-A
вона малює з іншими3-2-1
с (якKh 3d 2s Ah
) і б'є всі інші руки 3-карти , але втрачає всі руки на 4 картках (що може бути настільки ж слабкимK-Q-J-T
).- Інша можлива рука з 3 карт, яку можна було б зробити,
4c 3h 2c As
є4-3-A
, але вона слабша (вище), тому не обрана.
- Інша можлива рука з 3 карт, яку можна було б зробити,
Аналогічно,
8d 6h 3s 2h
грається рука з 3 картками8-3-2
- є дві позаштатні комбіновані костюми розміром 3 і8-3-2
краще (нижче), ніж8-6-3
оскільки три (або "трей") нижче шести.
Порівнюючи руки один з одним слід за тією ж логікою - будь-яка 4-картка б'є будь-яку 3-карту, будь-яку 3-карту, будь-яку 2-карту, а будь-яку 2-карту б'є будь-яку 1-карту, тоді як руки однакової кількості використаних карт по порівнянні з найвищого рангу аж до їх самих низьких (наприклад , 8-4-2
ударів , 8-5-A
але не будь-який з 8-4-A
, 8-3-2
або 7-6-5
)
Змагання:
Враховуючи дві невпорядковані колекції з кожної з чотирьох карт, визначте одну (и), яка (і) виграє "Бадуджі" (визначте обидві, якщо це нічия).
Вхід може бути будь-яким розумним:
- один рядок з усіх восьми карток, позначених вище (з пробілами або без), при цьому ліва четвірка - одна рука, а права - друга (з додатковим роздільником); або список символів таким же чином
- список двох рядків - по одній на руку, або список списків символів однаково
- два окремих рядки або входи списку, по одному на руку
- Картки в руках можуть бути розділені вже занадто (тому список списків - це добре)
Однак зверніть увагу:
- картки не можуть бути впорядковані в будь-якому порядку до введення
- ... і костюми та ранги фіксуються як зазначені тут позначки символів. Якщо ваша мова не підтримує такі конструкції, просто підкажіть щось розумне і запитайте, чи це прийнятна альтернатива, враховуючи ваші мовні обмеження.
Вихід повинен бути або
- відформатоване так само, як введення або його друковане представлення; або
- бути один з трьох різних і послідовних результатів (наприклад:
"left"
,"right"
,"both"
, або1
,2
,3
, і т.д.)
Дійсно - до тих пір, поки зрозуміло, який із двох входів визначають, це повинно бути добре.
Тестові справи
input -> output
(notes)
----------------------------------------------------------------------------
3c 2s 4d Ah - As 3h 2d 4h -> 3c 2s 4d Ah
(4-card 4-3-2-A beats 3-card 3-2-A)
3c 2s 4d Ah - As 2c 3d 4h -> 3c 2s 4d Ah - As 2c 3d 4h
(4-card 4-3-2-A draws with 4-card 4-3-2-A)
2d Ac 4h 3c - Kh Ad 9s 2c -> Kh Ad 9s 2c
(3-card 4-2-A loses to 4-card K-9-2-A)
Kc Tc Qc Jc - Ac Ad Ah As -> Ac Ad Ah As
(1-card T loses to 1-card A)
9c 9h Qc Qh - Qs Kh Jh Kd -> Qs Kh Jh Kd
(2-card Q-9 loses to 3-card K-Q-J)
2d 5h 7c 5s - 2h 3c 8d 6c -> 2d 5h 7c 5s
(3-card 7-5-2 beats 3-card 8-3-2)
3s 6c 2d Js - 6h Jd 3c 2s -> 6h Jd 3c 2s
(3-card 6-3-2 loses to 4-card J-6-3-2)
Ah 6d 4d Ac - 3h 2c 3s 2s -> 3h 2c 3s 2s
(2-card 4-A loses to 2-card 3-2)
2h 8h 6h 4h - 6d 2d 5d 8d -> 2h 8h 6h 4h - 6d 2d 5d 8d
(1-card 2 = 1-card 2)
Це є код-гольф, тож найкоротший код у байтах виграє кожну мову, а найкоротший - загальний виграє. Не дозволяйте мовам гольфу відкладати подання іншими мовами, і ... весело провести час!
O
фронту.
[['3c', '2s', '4d', 'Ah'], ['As', '3h', '2d', '4h']]
розумного?