Мне нравятся такие проблемы, я надеюсь, скоро отправлю ответ.
Какой игрок имеет лучшую руку с 7 картами?
Учитывая неупорядоченный список из 9 карт (разделенных пробелом), выясните, какой игрок имеет лучшую покерную комбинацию. Вот список рангов в покере. Пример ввода:
2C 5H AS KS 2D 4D QD KH 3S
(ie: [[2C 5H] [AS KS] [2D 4D QD KH 3S]])
Первые 2 карты в массиве представляют игрока 1 руку, вторая 2 в массиве представляет руку игрока 2. Последние 5 карт представляют собой общие карты, которые разделяют обе игроки. По сути, у обоих игроков есть 7 карт, и вы должны определить, у какого игрока есть лучшая 5-карточная покерная комбинация.
Карта определяется как строка, с первым символом, представляющим значение карты, и вторым значением, представляющим костюм. Всегда в верхнем регистре. Карта не может отображаться дважды.
Функция будет вычислять, если рука - ничья или выигрыш для любого игрока. Он будет выводить итоговые значения в конце ввода. Формат вывода определяется позже в этом сообщении.
<сильные > Примеры
2C 5H AS KS 2D 4D QD KH 3S
(ie: [[2C 5H] [AS KS] [2D 4D QD KH 3S]])
Player 2 wins this hand. Player 1 has a pair of 2's, player 2 has a pair of kings.
5S 6S 8H 9D 7S 8S JH TS 2H
(ie: [[5S 6S] [8H 9D] [7S 8S JH TS 2H]])
Player 1 wins this hand Player 1 has a flush, player 2 has a straight.
2S 2H AC AS 2C AH 9H TS 2D
(ie: [[2S 2H] [AC AS] [2C AH 9H TS 2D]])
Player 1 wins this hand. Player 1 has quads, player 2 has a full house
5S 6S 2D 4D 9S AS KD JC 9D
(ie: [[5S 6S] [2D 4D] [9S AS KD JC 9D]])
A draw. Both players have Ace high.
Дополнительная информация
Благодаря mgroves для следующей ссылки на Project Euler, которая имеет аналогичную проблему: http://projecteuler.net/index.php?section=problems&id=54
Данные тестирования
Мы будем использовать тестовые данные Project Euler:
http://projecteuler.net/project/poker.txt
Ваше решение должно принять этот текстовый файл в качестве входных данных и вывести итоговые выигрыши и розыгрыши.
Результат
Выход должен быть в таком формате:
1: 45
2: 32
D: 12
Игрок 1 выиграл 45 рук, игрок 2 выиграл 32 руки, и было 12 ничьих. (Не фактические результаты)
Правила
- Не нужно возвращать тип выигрышной руки, только выиграет, если кто-то
- Вход в список карт не имеет особого порядка.
- Карта не отображается дважды на вкладке
- Вход всегда заглавными.
- Принимает тестовые данные Project Euler как входные данные
- Выводит счет, из которого игрок выиграл больше всего рук и итоговые ничьи в указанном формате выше