Офлайн-казино / Оазис-покер / Программисты помогите
  Страницы(9): [ «  <  #  1  2  3  4  5  6  7  8  9  >  »]   Перейти вниз
Re: Программисты помогите   ID:10298   ответ на 10276 Вс, 6 ноября 2005 19:25 («] [#] [»)
korovin Форумы CasinoGames
Опять не в ногу

1. Варианты игры дилера у меня считаются комбинаторно полным перебором всех возможных вариатнов

2. Обмен 5-и карт иггрока у меня считается двумя способами:

а) Полным перебором возможных вариантов
б) Неполным перебором возможных вариантов, который я назвал "Метод пренебрежения мастей". Это как сжатие мастей, но нефлешлвые комбинации считаются для 1-го случайного варианта.
        
 
Re: Программисты помогите   ID:10299   ответ на 10276 Пн, 7 ноября 2005 03:34 («] [#] [»)
Это Я Форумы CasinoGames
2Korovin. У меня абсолютно такой же принцип работы: раздаем 6 случайных карт, одну не нам. Считаем МО всех решений по формулам комбинаторики (очень быстро до 2000 рук в секунду) и перебором всех возможных вариантов (очень медленно несколько секунд на руку). В последствии 2 способ отключаем, он просто контрольный. Выбираем лучшее МО, суммируем. В конце делим на число рук (получается МО от серии МО). Очень быстро сходится после нескольких млн. рук получаем довольно точно МО игры (не путать с МО руки). Можно после выбора лучшего МО не суммировать их, а симулировать игру дальше. Либо скинуть, либо менять, либо раздать опять случайные карты. В итоге выигрываем или проигрываем n ANTE. Которые суммируем. В конце делим на число рук. Сходится в 50…200 раз дольше. После 100 млн. рук получаем довольно точно МО игры. Сравниваем. На каждом этапе по 2 способа. Ошибок быть не может.
Я так понимаю, при расчете замены одной карты вы вероятности выпадения комбинаций дилера не меняете и берете как при игре без замены (я так снова пересчитываю, но это лишнее на 1 боксе). А вот при расчете замены 5 карт, такие упрощения, мне кажется, приводят к заметным ошибкам. Вероятность выпадения всех комбинаций у игрока при замене 5 карт я легко посчитал. Но с чем их сравнивать? И еще, кратенько, что за среднестатистические руки, по какому критерию их отбирали. Я так догадываюсь, это база стратегии. Я возможно до того же дошел с другой стороны.
        
 
Re: Программисты помогите   ID:10307   ответ на 10276 Пн, 7 ноября 2005 12:41 («] [#] [»)
korovin Форумы CasinoGames
1. У меня скорость анализа 1 случайной рки из 5 карт против 1 карты дилера 1 200 000 рук в секунду.

2. Пр любых обменах я пресчитываю все заново, в том числе для каждого возможного пятака игрока. Насколько я наслышан, ни один профессинальный софт так не считает (кроме может быть Пана Вотрубы)

3. Среднестатистические рука это например 13*12 каре (масть кикера случайна), 13*12 фулов, масти карт случайны, и. т. п. МО считается несколькими циклами, в каждом масти карт генерируются случайно, в итоге быстро и боле менее точно.
        
 
Re: Программисты помогите   ID:10308   ответ на 10276 Пн, 7 ноября 2005 19:05 («] [#] [»)
Это Я Форумы CasinoGames
2Korovin. Быть такого не может. За 1500 тактов процессора: выдать случайно 6 карт, посчитать все вероятности дилера, заменить 1 кару, придет 1 возможная карта, посчитать нашу комбинацию, посчитать все вероятности дилера, и так для всех 46 возможных карт. Потом тоже самое для замены 2,3,4,5 карты. Вероятности дилера можно при приходе нам определенной карты на 1,2,3,4,5 место можно считать 1 раз. Должно быть в 1000 раз больше тактов. Явно мы о разном. В простом покере не критично, за несколько часов всегда можно посчитать МО. Вот например русский…
        
 
Re: Программисты помогите   ID:10311   ответ на 10276 Пн, 7 ноября 2005 20:37 («] [#] [»)
korovin Форумы CasinoGames
Наверно о разном. Я об анализе ОДНОЙ случайной руки игрока. Для обмена 1-й карты нужно сделать 46 анализов (хотя зачастую достаточно и 13). Вот постил 1.5 года назад. Это демка скорости моего ядра. Раздает случайно 6 карт (Random()); Считает ТОЧНОЕ число комбинаций дилера старше/младше/равно, выбирает луччшее МО из двух (пас/стэй) и суммирует. 1 цикл - миллион раздач. Перед работой считает в том же цикле просто раздачу карт (время работы Random()) и вычитает его из общего времени, для точности. О скорости загнул (почему-то был уверен в этой цифре) у меня миллион анализируется 1.5 может старая версия ядра, надо разбиратся.

Вложение: poker.ZIP
(Размер: 358.20KB, Загружено 121 раз)
        
 
Re: Программисты помогите   ID:10313   ответ на 10276 Вт, 8 ноября 2005 01:48 («] [#] [»)
KID Форумы CasinoGames
1200000 рук это на какой машине? А вообще если не считать такие запредельные результаты, то к какому результату надо стремиться? У блица вот например, как быстро считает?
        
 
Re: Программисты помогите   ID:10314   ответ на 10276 Вт, 8 ноября 2005 03:58 («] [#] [»)
Fabrica Форумы CasinoGames
2Korovin
Только помнится у тебя было "не совсем" точное кол-во рук больше/равно/меньше, вроде ты считал ВСЕ флеши одинаковыми, значения карт во флеше не анализировал, туз там старший или король и остальные 4 карты, и каре вроде все одинаковы. Или уже это исправил?
Если нет - то обсчет не такой уж и точный.
Некоторые упрощают до того, что все допперы и тройки одинаковыми считают. Smile
        
 
Re: Программисты помогите   ID:10316   ответ на 10276 Вт, 8 ноября 2005 07:56 («] [#] [»)
korovin Форумы CasinoGames
Врать не буду, как изначально флеши сравнивалтсь по масти, так и сравниваются, просто начинал с этих правил, а переделывать лень. Это же не ошибка если правила такие и преимущество это не дает. А что такое флеш на флеш в сравнении с тем, что если мы при обмене поймали вскрышку и не закрылись? Такие запредельные результаты мне понадобились когда я сел за обмены 2-3-4-5 карт. Теперь точный анализ руки в Русском покере например занимает 2-3 секунды. Опять же на высшую инстанцию я не претендую, рекорды не ставлю. Просто хочу сказать что нет предела совершенству. Знаю что как минимум еще один человек добился подобных результатов скорости, в этом кстати нет ничего сверхестественного. Проблема в том что мне это уже неактуально, я постепенно отхожу покера против от казино, негде играть. Покер умирает, неужели вы этого не замечаете?
        
 
Re: Программисты помогите   ID:10318   ответ на 10276 Вт, 8 ноября 2005 10:03 («] [#] [»)
grey Форумы CasinoGames
KID писал
1200000 рук это на какой машине? А вообще если не считать такие запредельные результаты, то к какому результату надо стремиться?
Протестил демку poker.exe Коровина. На PIII-800 вышло 250000 раздач в секунду (без покупки игры).
2 Korovin: я правильно понял, что под одной раздачей подразумевается полный анализ одной руки игрока (против 163185 возможных хэндов дилера)?
        
 
Re: Программисты помогите   ID:10319   ответ на 10276 Вт, 8 ноября 2005 15:05 («] [#] [»)
korovin Форумы CasinoGames
Цитата:
2 Korovin: я правильно понял, что под одной раздачей подразумевается полный анализ одной руки игрока (против 163185 возможных хэндов дилера)?
Что считать полным анализом? Я считаю точное число комбинаций младще/старше/равно. Сколько у дилера стритов, флешей, и т.п я не считаю. Для расчета МО решения этого достаточно. И еще я не уверен что если делать массив всех комбинаций дилера, а потом по нему считать обмен карт игрока (не пересчитывая массив), будет быстрее на обменах до 2-х карт, а потеря в точности очевидна.
        
 
Re: Программисты помогите   ID:10320   ответ на 10276 Вт, 8 ноября 2005 16:34 («] [#] [»)
Fabrica Форумы CasinoGames
Лично я считаю ТОЧНЫМ числом - ТОЧНОЕ число ВСЕХ комбинаций дилера, которые старше/равно/меньше моей руки. А упрощение ИМХО, конечно, изменяет МО.
Например у меня AKQ+2фоски "младшей" масти, наверно пик или наоборот черв, и КУЧА старших флешей K+4карты, которые младше моего в казино и дали бы мне 11 ставок, отнимут у меня 3 ставки, т.е. потеряю 14 анте! Разве это допустимо?
А по-поводу деления на 4 кол-ва обсчитываемых комбинаций, я думаю это просто: за основу берем карту дилера (а пором перебираем 5-ки игрока), их всего 4*13 карт, но нет разницы какая 4-ка у дилера пик или треф, вот и считаем только для 13 карт, вместо 52-х.
Я разбил все 5-ки на 94192 комбинации со своими мощностями, КАЖДАЯ из которых равна в своей группе. Т.е. каре 8-к имеет 12 групп (не одну!!), т.е. в зависимости от кикера это РАЗНЫЕ каре, и они также проверяются между собой. Есть группы пар, доперов, троек и т.д. Хотя их на самом деле меньше (я отсортировал ВСЕ комбинации по силе, их оказалось всего 28496), но я выделил из этих 28496 еще в одинаковых по силе комбинациях те, в которые можно докупить покупкой 1,2 карты флеш или стрит. Т.е. A,D,J,10,5 разномасть в отдельной группе от A,D,J,10,9 хотя по игре они обе имеют силу ==0. Или например если пустая комбинация имеет 4 карты одной масти в одной группе, а группа с ТАКИМИ ЖЕ картами по номиналу, но по мастям 3+2, в другой группе.
И вот по этому множеству комбинаций с количеством в каждой группе комб. я провожу именно ТОЧНОЕ вычисление комбинаций больше/равно/меньше. И конечно Smile медленней чем у Коровина.
Полный анализ, просто пройти по всем комбинациям без обменов, у меня всего 0,62 сек.
Покупка одной, 5-1+1 = 9,78 сек.
А с покупкой 6-й полный анализ = 21,91 сек. Но зато у меня нет никаких упрощений.
        
 
Re: Программисты помогите   ID:10321   ответ на 10276 Вт, 8 ноября 2005 16:36 («] [#] [»)
Fabrica Форумы CasinoGames
И это даже с отладочной инфой, сорри.
Я думаю если при трансляции убрать отладочную инфу, будет побыстрей.
        
 
Re: Программисты помогите   ID:10322   ответ на 10276 Вт, 8 ноября 2005 19:09 («] [#] [»)
Это Я Форумы CasinoGames
Привет Fabrica. Я так понял здесь всем специалистам по покеру уже не особо актуально обсуждать алгоритмы анализа, они этим занимались год-полтора назад (хорошо, если я ошибаюсь). У вас сейчас что считается, и над чем работаете, если не секрет (можно в личку). Я тоже постоянно стремлюсь к точности. У меня все комбинации по силе имеют 2 характеристики: комбинация и ранг комбинации. Комбинации: пустая – 0, ТК –1, …, Роял – 9. Ранг комбинации сложнее: у пустой – старшая карта, у ТК – старшая после ТК, у пары – карта в паре… При сравнение комбинаций считаем 4 вероятности: что у дилера пустая (выигрыш 1), что у дилера меньше (выигрыш 1+2*выплата(комбинация_наша)), что равна (выигрыш 0,5*(1+2*выплата(комбинация_наша))-0,5*3), что больше (выигрыш -3). Т.е. при одинаковых комбинациях в 50% случаев выигрываем, в 50% проигрываем. Ошибка очень маленькая, если посчитать точно. Зачем каре, допустим 8888, еще делить на 12 групп. Ведь при сравнении комбинаций у дилера не может быть каре 8888. Сравнение флешей тоже ни чего не меняет (недавно добавил), было с 50% вероятностью выигрывал дилер с 50% мы при любых флешах у обоих. А считает уж очень медленно. У меня раз в 10000 быстрее. Без обменов + обмен всех 5 карт 2000 раздач в секунду. Для разработки стратегии, кстати, скорость абсолютно не нужна.
2Korovin. Как покер умирает. А я только начал.
2ALL А что форум такой не живой, может вы где в другом месте тусуетесь.
        
 
Re: Программисты помогите   ID:10323   ответ на 10276 Вт, 8 ноября 2005 19:37 («] [#] [»)
KID Форумы CasinoGames
Формулу подсчета ничьи недогнал чтото...думал при ничье просто 0.Никто никому ничего не должен.
        
 
Re: Программисты помогите   ID:10324   ответ на 10276 Вт, 8 ноября 2005 20:20 («] [#] [»)
korovin Форумы CasinoGames
to Fabrica

Цитата:
Например у меня AKQ+2фоски "младшей" масти, наверно пик или наоборот черв, и КУЧА старших флешей K+4карты, которые младше моего в казино и дали бы мне 11 ставок, отнимут у меня 3 ставки, т.е. потеряю 14 анте! Разве это допустимо?
Это правильно если флеши сравниваются по масти, в этом случае Вы не правы. Мне сделать 2 варианта - день работы, поросто сразу не сделал а потом руки не дошли (не считал принципиальным). На скорость это НЕ повлияет.

Цитата:
Т.е. каре 8-к имеет 12 групп (не одну!!), т.е. в зависимости от кикера это РАЗНЫЕ каре, и они также проверяются между собой.
...Среднестатистические рука это например 13*12 каре (масть кикера случайна)... Кстати, сравнивать каре между собой по кикеру смысла нет, не бывает 2 каре на 8-ках. Разных комбинаций у меня 7462 получилось: 156 каре, 156 фулов, 858 троек, 858 2 пары, 2860 пар, 2574 беспарок, половина из которых одномастные. Непонятно зачем разбивать на 5-0 4-1 3-2 масть (пары тоже разбиваеш?)

to Это Я

Цитата:
Ранг комбинации сложнее: у пустой – старшая карта, у ТК – старшая после ТК, у пары – карта в паре
У прары должно быть 4 прааматера: ранг пары и кикеры, у ТК - 3 кикера, и т.п

Цитата:
Для разработки стратегии, кстати, скорость абсолютно не нужна.
Для разработки стратегии вручную на 1 бокс не нужна, дальше ты без статанализа не обойдешся, а как ты собираешся гонять миллионы однотипных ситуаций без хорошего движка?

Цитата:
А что форум такой не живой, может вы где в другом месте тусуетесь
Это единственный форум где "мы" тусуемся, других нет.
        
 
Re: Программисты помогите   ID:10328   ответ на 10276 Ср, 9 ноября 2005 03:49 («] [#] [»)
Это Я Форумы CasinoGames
2KID. Вы сколько раз в жизни видели одинаковые комбинации игрока и дилера (при которой “Никто никому ничего не должен”). Это просто такое упрощение расчетов. Привожу пример: правила стандартного покера, нам пришли 7б,9в,9к,Дб,Кч (комбинация пара девятого ранга). У дилера 8б. Вероятность нет игры 0,443791, вероятность меньше 0,366995, вероятность больше 0,184539, а еще 0,004676, что столько же (т.е. пара девяток). Вот от этих 0,004676 половину отдаем выигрышу, половину проигрышу. Что интересно: для пары формула вырождается в ноль. Если играем: получаем МО=0,991157. На самом деле чуточку больше: по Оазис-Покер Про Демо 0,9979, по Casino Poker Analyzer 0,9994. Не знаю, какое из последних МО более точное, но точно не мое. В процессе подсчета МО игры в 50% случаев МО раздачи завышается, в 50% занижается. В среднем ошибки быть не должно. Сейчас только подумал, что если это не влияет на принятие решений (с маленьким перевесом) то в МО до 0,05% и может быть погрешность. Надо на парах будет сделать учет старшей карты вне пары.
2Korovin. И часто флеши сравниваются по мастям. У меня по старшей карте. Стоит ли делать опцию.
Про сравнение двух каре на восьмерках. Пропускаете мои ответы, понятно…
“У пары должно быть 4 параметра”. Комбинация (пара), ранг комбинации (пара девяток), старшая вне пары (король) и еще что ли. И так вероятность совпадения двух таких пар ничтожная. У ТК + старшая уже ничтожная вероятность совпадения.
Про скорость движка. У меня то быстро. Просто для стандартных правил 8 млн. раздач в час с возможностью ускорить раза в 2…3 не нужно. Просто так получилось быстро с запасом на русский. Скинте в личку кто-нибудь, реальный МО русского.
2ALL. Прикольно, что все идут своим путем. При обсуждении почерпнул несколько идей. Хотя никто их и не высказывал.
        
 
Re: Программисты помогите   ID:10329   ответ на 10276 Ср, 9 ноября 2005 06:39 («] [#] [»)
korovin Форумы CasinoGames
По девяткам правильный ответ 0,9994. Что-то сильно у тебя не бъет, очевидно из за того что у нас король. Флеши сравниваются по мастям очень часто в провинции, однако смысл делать 2 разные базы, если они получатся одинаковые? Ответы читаю, просто в контексте было. По МО Русккого, все почемуто твердят про -1% на первом, хотя я утверждаю что -1,64%. Правила оригинальные, как в Европе 2 года назад, с бонусной покупкой игры если дилер открвл ту-же карту, которую снес. Может ты нас рассудиш? Вот тебе задачка, решение которой я считаю принципиальным для проф. софта: Определить необходимое число ТК на руках для блефа на 30 картах, если у нас 2 вскрышки.

удачи.
        
 
Re: Программисты помогите   ID:10330   ответ на 10276 Ср, 9 ноября 2005 15:02 («] [#] [»)
Это Я Форумы CasinoGames
2Korovin. Точно. Не бьет практически на максимально возможную величину ошибки. Из-за короля. Максимальное при наличие туза. Может эмпирическим путем ввести коэффициенты. При какой нашей старшей карте вместе с парой, сколько при одинаковой комбинации отдавать проигрышу, сколько выигрышу (а не 50 на 50 как сейчас). Хотя опытным путем показало отсутствие (практически) влияния данного упущения на МО. Не понятно влияние на стратегию. При таком предварительном прогнозе на русский покер пропал весь интерес добавлять замену 3 и 4 карт. Такая замена вроде не где больше не используется. Можно задачку поставить конкретно. Очень заинтриговало. Я не тормоз и не педант. Просто боюсь не правильно понять.
        
 
Re: Программисты помогите   ID:10331   ответ на 10276 Ср, 9 ноября 2005 15:50 («] [#] [»)
KID Форумы CasinoGames
2Это_Я...во первых большое спасибо,что ответили(на этом форуме меня бывает игнорируют). Сразу не понял, что под равной комбинацией подразумевается пара девяток в целом(хотя по формуле то можно было конечно догадаться)У меня алгоритм считает руку с точность в 100%.В данном случае МО=0,99941171063516...(коровин не даст соврать=))Я сичитаю количество возможных комбинаций старше, младше и равных...30271,60494,0. У вас же довольно существенная погрешность практически на втором знаке.Попробуйте усложнить формулу...варьировать свой коэфициент 0,5 в зависимости от старшей карты, т.е. в данном случае на короле где-то 0,85. Такой алгоритм должен давать наибольшую погрешность при оценке малой игры, там самое большое количество чистых ничьих(не знаю как у вас называют, у нас называют СТЕЙ) Про то, что погрешность исчезает при анализе покера в целом-как то сразу об этом не подумал.Возможно надо писать два алгоритма-один точный, для анализатора и упрощенный для оценки покера в целом.
        
 
Re: Программисты помогите   ID:10332   ответ на 10276 Ср, 9 ноября 2005 15:59 («] [#] [»)
korovin Форумы CasinoGames
Задача. ТК играет. Знаем сколько вскрышек и ТК на 30 картах, больше ничего не знаем. Вскрышек 2, при каком количестве ТК "в среднем" оправдан блеф (вероятность игры дилера <50%)? Решив (разработав механизм решения) эту задачу ты научишся строить стратегии любой сложности. Не собираешся же ты всю жизнь катать вату на 1-2 бокса. Масштабнее мыслить надо, причем сразу. Зачем время терять, его и так мало осталось.
        
 
Страницы(9): [ «  <  #  1  2  3  4  5  6  7  8  9  >  »]  
Предыдущая тема:минус одна карта
Следующая тема:Поиграл вчера по правилам 1,2,3
Быстрый переход к форуму
  
Текстовая версия  RSS лента
Вернуться вверх

Текущее время: Пт, 22 ноября 05:40:26 2024
Время, затраченное на генерацию страницы: 0.02714 секунд