Алгоритм распознавания покерных комбинаций Holdem
Разработка на Pascal/Delphi
начальные данные массив карт:
card[1..7,1..2] - итого имеем 7 карт, для каждой карты масть, буба=1, чирва=2, крестя=3, пика=4.
карты по номерам
2 3 4 5 6 7 8 9 T J Q K A
2 3 4 5 6 7 8 9 10 11 12 13 14
если у нас card[1, 1]=11 и card[1, 2]=3 - то это валет чирва
что требуется сделать:
1. завершённые руки
а) стрит без моей старшей карты
б) стрит с моей старшей картой
в) младший флешь без туза
г) старший флешь с тузом(т.е. на руках у меня туз который входит в комбинацию)
д) стрит-флешь
е) рояль-флешь
ж) 2 пары (образующиеся с картами на столе)
з) сет из пары карманных карт и одной карты на столе
й) сет с 2-мя картами на столе
к) фулхаус образованный на столе
л) фулхаус образованный с моей парой
м) каре с моей парой
н) каре с 1 картой из моих
2. полуготовые комбинации
а) пара
б) топ-пара - где 2 карманных карты выше флопа
в) оверкарты - 2 карты выше остальных но
г) мусор - если карты ниже флопа и необразуют ничего
д) оверпара - карманная высшая пара
3. дроруки
а) односторонний стрит дро
б) двусторонний стрит дро
в) флешьдро из 3 карт на флопе и 1 моей
г) флешьдро из 3 карт на флопе и 1 моего туза
д) флешьдро из 2 карт на флопе и 2 моих
е) стритфлешьдро - с одностононним стритом
ж) стритфлешьдро - с двустроронним стритом
з) гатшот
и) двойной гатшот
4. прочее
а) на столе уже стрит из 5 карт
б) на столе уже флешь из 5 карт
г) на столе 4 карты для стрита
д) на столе 4 карты для флеша
е) на столе 3 карты для стрита
ж) на столе 3 карты для флеша
з) 2 карты на стрит
и) 2 карты на флешь
5. ещё прочее
а) на столе каре
б) на столе фулхаус
в) на столе сет
г) на столе 2 пары
д) на столе пара
данные вычисления нужно производить для 5, 6, 7 карт
как в покере флоп(5карт), тёрн(6 карт), ривер(7 карт)