Цитата (fergus_crowley @ 27.11.2019)
так-то любой карточной игры касается
нет, не любой. тут нет кнопки "фолд". т.е. в холдеме, если не идет карта, могу сбросить карты и ждать лучшей. тут же не так, не идет карта, засадишь весь стек, типа должен коллировать любую ставку. ВСЕГДА! Кнопки "фолд" нет!
Цитата (c00l0ne @ 27.11.2019)
Jak, напиши как алгоритм работает... Если нормальный может я займусь и допилю ее до идеала...
алгоритм чего?
Программа делает много разного. С ней я считал фантазии для 14, 15 и т.д. карт, чтобы узнать насколько выгодно стремиться на фантазию, по шансам ли...
Может сейчас почти мгновенно посчитать любую фантазию от 14 до 17 карт. Причем несколько вариантов, бывает, что повтор фантазии хуже, чем просто фантазия, без повтора (типа разбить каре внизу, чтобы собрать больше бонусов).
Можно ввести карты свои и оппов, вышедшие карты и новые, и она посчитает куда, что положить и даст шансы в бонусах (все в зависимости от бонусов за скуп, можно 0,-6,-12 за скуп). Это при своих 5,7,9,11 карт.
Т.е. напр, имеем 7 карт и карты оппов. Пусть осталось 27 карт в колоде (хотя это не имеет значения для МК). Прога считает каждый из 27 вариантов положить 3 карты по линиям, теперь у нас уже 9 карт в линиях. Теперь отсюда 10000 раз берем тройки из оставшихся 24 карт, кладем все 27 вариантов по линиям, стало 11 карт в линиях, дальше полным перебором по 3 карты до 13 карт. Можно больше попыток, все зависит от нужной точности. При 10000 вариантов точность 0,1 бонуса. Время счета 2,7 сек, все 27 вариантов положить первую тройку.
При своих 5,7 карт считает по МК (монте-карло) достаточно большое кол-во попыток. Для 9,11 полным перебором.
Еще может раскладывать первые 5 карт, все 192 варианта (вверху 0,1,2 карты из пяти). Тройку вверх не рассматриваю как перспективный вариант.
Есть вариант для полного перебора (если кому нужна академическая точность), есть МК с любым кол-вом попыток.
Пробовал по 2 карты добавлять из колоды.
По 12 карт сразу (и из них выбирал лучшие 8 для линий, считал бонусы и отсюда делал вывод какой расклад лучше). Типа считал шансы собрать внизу какую-нибудь комбу, потом в мид меньшую и в топ еще меньше, считал бонусы собранных комб, все это суммировал и делал выводы.
Много чего еще есть.
Какой алгоритм ты хочешь допилить?
Если внизу нацелиться на фулхаус, то в мидл можно будет собирать комбинации младше(фул младше, флаш, стрит, и т.д.)
Короче, "расстояния" придётся считать до всех готовых рук.
Если учесть, что в "словаре" около 2,5млн слов(комбинаций), то и здесь можно упереться в производительность(учитывая кол-во способов разложения 5 карт по 3ём линиям).
И вот тут c00l0ne предложил вполне здравую мысль(воспользоваться которой в рамках предыдущей модели не представлялось возможным): не считать расстояния до ВСЕХ готовых рук, а либо ограничить перебор самыми "очковыми"(фул+флаш, фул+стрит), либо просто обрубать перебор по произвольному кол-ву готовых рук(1млн, 2млн и т.д.) пока будет хватать времени.
Этакий метод Монте-Карло в рабоче-крестьянском понимании.
ЗЫ К сожалению, с пятницы до понедельник работаю, с удовольствием остался бы дома попрограммировать. Если у кого есть возможность оказать финансовый донат - прошу в личку.