У меня есть задание, в котором мне нужно определить руку Техасского Холдема
Вот назначение:
http://www.scribd.com/doc/142850594/proj1
И вот мой код: http://pastebin.com/Ts387iDw
Что я не совсем понимаю, так это как заставить программу читать из файла, с руками в нем, или как мне заставить его разобраться и идентифицировать руку.
Если бы кто-то сказал мне разработать такую программу с нуля без каких-либо инструкций, я бы назначил уникальным ID всем 52 картам, затем определил тип руки, например, флеш-рояль, и использовал оператор if, чтобы увидеть, Идентификаторы соответствуют определенному типу руки. Тем не менее, у меня просто интуитивное чувство, что это значительно менее эффективно, чем то, что мой профессор продемонстрировал в этом задании (в конце концов, он профессор).
Любая помощь приветствуется, спасибо!
Итак, у вас есть две проблемы:
1. Чтение рук из файла
2. Выявление рядов рук
Для первой проблемы вам нужно:
1. Читать файл построчно
2. Разобрать строки. Вы можете заметить, что карты имеют одинаковый шаблон в руке: это буква плюс 1 или 2 цифры, за которыми следуют другие карты. В этом случае вы можете разбить строку вручную на основе переключения между цифрами и буквами.
Для второй проблемы нет общих способов. В большинстве случаев вам нужно проверять каждый возможный ранг вручную.
Чтение рук из файла не должно быть трудным, но есть намного больше возможностей для идентификации рук, чем предполагает даже ваше задание, а собственная примерная функция вашего преподавателя неверна. Покерные руки не заботятся о порядке карт, поэтому его функция распознавать флеш-рояль (с R 🙂 не сработает 119 из 120 раз. Вы можете частично исправить это, сначала отсортировав стрелки, но затем вам понадобится специальный код для колес (прямой A2345). Кроме того, определение типа руки является только первым шагом в определении того, какая из двух рук выиграет. Наконец, все это применимо только к стандартным пятикарточным покерным рукам и не относится к Техасскому Холдему, где вам нужно собрать лучшие 5 из 7 карт. Google «оценщик покерных рук», и вы найдете больше информации, чем вы могли бы себе представить. Хорошее место для начала C ++ PokerStove на Github (или мой собственный onejoker).
Я подозреваю, что ваш профессор на самом деле не понимает, что с этим связано, и был бы весьма рад увидеть недоделанные решения, такие как его собственное, просто чтобы увидеть, что вы можете создать код, который выполняет нечто, похожее на реальную работу.