Пилю программку по обсчёту китайского покера

22
Статистика
Статистика
22
Статистика темы
  • Популярность
    Топ-6216
  • Постов
    2,261
  • Просмотров
    173,830
  • Подписок
    22
  • Карма автора
    -45
1 91 92 93 94 114
  • c00l0ne @ 26.11.22 

    Утопия это

    Самое сложное посчитать первый подъем.

     

    2-й, 3-й и 4-й считаются и так быстро.

     

    Какой смысл держать в памяти все конечные состояния?

     

    c00l0ne @ 24.11.22 

    Скоро возможно софтину будем выпускать, посл сдачу будет считать со всеми плюшками, с учётом лайнов оппонентов, с учётом рейка , единственное сброс карт оппоненту самому можно (плюс минус) задавать ... Оч крутая короче

    Баксов за 300-500$

    Кому за 300$ нужно посл раздачу считать? Что там сложного 2 карты из 3-х положить?

    Ответить Цитировать
    191/314
    + 0
  • Jak @ 02.12.22 

    Самое сложное посчитать первый подъем.

     

    2-й, 3-й и 4-й считаются и так быстро.

     

    Какой смысл держать в памяти все конечные состояния?

     

    Кому за 300$ нужно посл раздачу считать? Что там сложного 2 карты из 3-х положить?

    Ну с учётом лайнов оппонентов 

    Если абсолютно точно считает , я бы купил

    Ну всем кто играет интересно , свои раздачки проверить , туда сюда покрутить ...

     

    Jak @ 02.12.22 

    Какой смысл держать в памяти все конечные состояния?

     

    Их не нужно держать, как только посчитали предыдущий ход , можно удалять из памяти и переходить на шаг назад

    Ответить Цитировать
    625/882
    + 0
  • c00l0ne @ 02.12.22 

    Что там сложного 2 карты из 3-х положить?

    Ой ты наверное думаешь про посл самый дроп карт, а я про предпоследний...

     

    На самом деле это базовый солвер в китайском, странно что ещё никто не выпустил.

    Что из него извлекает игрок?  опыт бесценный, расчётов. Который можно интерпретировать на более ранние улицы... Включая стартер.

     

    Например 

     

    AA

    223

    4567

     

    Будет похожа на раздачу

     

    AAK

    2235

    4567

     

    Да вероятности другие маленько закрыться, но принципиально ничем не отличаются

     

    И посчитать это не сложно , а вот ход назад посчитать , уже проц не вывезет

    С учётом оппонента повторюсь

     

    Без учёта оппонента это все считается быстро ... Но такие расчёты я бы забраковал ... Как упрощенные и приближенные, не понятно в какую сторону имеющие отклонения и не понятно на сколько кушей

    Сообщение отредактировал c00l0ne - 2.12.2022, 7:26
    Ответить Цитировать
    626/882
    + 0
  • Если раки на горе свистнут то я сделаю китайскому сообществу подарок в виде таких двух солверов: для ха и для три макса.

    Возможно к новому году... Первый 300$, второй 500$ норм стоимость .

    Ответить Цитировать
    627/882
    + 0
  • Хочу выложить в общий доступ то, что написал.

    С одной стороны это поможет новичкам (и не только им) в постижении ананаса, с другой стороны это усилит общее поле.

     

    Кратко, что там есть:

     

    - Есть оценка текущего положения карт. Т.е. кладем известные карты себе и оппам и прога считает бонусы (оценку) данной позиции. Тут можно оценить разные стартеры и просто позицию в любом состоянии. Два варианта расчетов, быстро (8 потоков, у меня занимает 80% мощности процессора) и быстрее (91 поток, тут процессор занят на 100%). При расчетах считаются все варианты низа, флеши в том числе. Для мида флеши не учитываются специально 

     

    - Расчет стартера. Кладем 5 карт себе в низ, и прога перебирает все варианты стартеров и дает оценку каждому варианту. В окне текстов показывается номер варианта, расклад и оценка. Два варианта расчетов, быстро и очень приблизительно (вариант Монте-Карло, играем несколько игр с разными стартерами и считаем бонусы, тут оценка не точная, она просто дает расположение разных стартеров, какой лучше и хуже) и медленно (91 поток, тут процессор занят на 100% и оценка каждого стартера точная).

     

    - Расчет подъема (без учета оппов). Тут кладем известные карты себе и оппам и три карты, которые нам пришли. И прога сама пытается их положить всеми возможными вариантами и дает оценку нашей позиции. Если это первый подъем (у нас только пять карт + 3 новых), медленно, но точно. Есть вариант посчитать быстро и примерно. Если это второй и дальше подъем, то всегда быстро полным перебором, независимо от кол-ва известных карт.

     

    - Расчет фанты 14, 15, 16, 17 карт. Тут с учетом карт оппов. Прога выберет наилучший вариант с учетом линий оппов. Пока хочу выложить вариант только с 16, 17 картами, чтобы нельзя было использовать прогу онлайн для 14 и 15 карт.

     

    Это почти кальк, только вводить карты надо ручками и ввод карт не такой быстрый, так что пользоваться им во время игры немного муторно.

     

    Интересует вопрос: не испортит ли это игру? слишком сильный инструмент попадает в паблик.

     

    Сначала сделал усеченный вариант, который считает не все позиции и стартеры, а только те, в которых обязательно есть например  . Этот вариант ограничит кол-во стартеров. А потом подумал, а какая разница? Пусть считает все варианты.

     

    Жду отклика сообщества.

    Можно просто +/-. + выкладывай, - ни в коем случае. Можно расписать аргументы за + и -.

     

    Всех с Новым годом!

    Ответить Цитировать
    192/314
    + 2
  • Jak, люди не обучаемые свиньи (с)

    Ответить Цитировать
    10/10
    + 2
  • Wall-e0605 @ 31.12.22 

    Интересует вопрос: не испортит ли это игру? слишком сильный инструмент попадает в паблик.

    если будешь выкладывать не забудь добавить 20 сек на любой расчет тайминг, иначе я против, а за такой подсказчик в реальном времени тебе бумерангом прилетит от регов ) 

    пс любой клоун сядет и будет вводить карты и катать как средний +- рег

    Ответить Цитировать
    628/882
    + 0
  • Jak @ 31.12.22 

    Два варианта расчетов, быстро (8 потоков, у меня занимает 80% мощности процессора) и быстрее (91 поток, тут процессор занят на 100%).  

    Мне кажется, что так жестоко задавать кол-во потоков нельзя. Есть функции , которые возвращают оптимальное кол-во потоков для определенного процессора. Да и тут могут быть проблемы. На процессорах Intel, может быть и не будет разницы сколько потоков 4 или 100 - это никак не повлияет на производительность, а на процессорах AMD, могут быть проблемы. Может быть ситуации, что чем больше потоков, тем медленнее будет считать.                                                    А так хотелось бы понимать на что способна программа. Но лучше, запустить симуляцию игры и посмотреть на каких показателях она играет на 100 игр: очки/100 игр, фанта/100 игр и т.д., например в ситуации, когда мы 2 из 3 игроков. Возможно, что результаты будут низкими и тогда эта программа не помощник, а плохой учитель.

    Ответить Цитировать
    11/35
    + 0
  • Luisito99 @ 07.01.23 

    на процессорах AMD, могут быть проблемы

    Это все стереотипы

    Амд уже давно топчек , обошли intel и по твоей логике у Интел проблемы) кек

    Но проблемы эти давно решены уже и задай ты сто потоков(если Рамы хватит)  или потоков столько сколько ядер, то производительность +- будет одна и та же

     

    Luisito99 @ 07.01.23 

    очки/100 игр, фанта/100 игр и т.д

    Что это за показатели, типо аналог с холдемом бб на сто ... В Китае куш/раздачу считают , фанту уже выкладывали- считали сколько кушей, в гугле можно найти 

    Luisito99 @ 07.01.23 

    очки/100 игр

    А симулировать игру не возможно , стартера не посчитаны , оппонента игра не посчитана...

    Ответить Цитировать
    629/882
    + 0
  • Чтобы коснуться стартеров нужна вот такая машина 96 ядреная

    Лям стоит

    Сообщение отредактировал c00l0ne - 7.1.2023, 10:09
    Ответить Цитировать
    630/882
    + 0
  • Делал приложение для телефона. Была важна производительность. Были два устройства для проверки с процессором от intel (4 ядерный планшет от asus) и 8 ядерный процессор snapdragon 810. В коде использовал функцию, которая возвращала оптимальное количество потоков для устройства на котором запускалось приложение. Соответственно для intel вернула значение - 4, а для snapdragon - 8. Но по факту, для процессора intel разницы между 4 потоками и 154 не было, производительность была +- одинаковая. А для snapdragon оказалось все не так. У 8 потоков производительность была намного ниже, чем для 4. Поэтому могут быть нюансы. И мне не понятно, почему именно 8 и 91 поток, а не 12 и 154.              А на счёт очков. На мой взгляд это проверка правильности расчетов. Как можно быть уверенным, что алгоритм без ошибки, если программа не играла? Если она на дистанции будет набирать 550+ очков/100 игр, то это хорошая программа, хороший учитель. А если она стабильно набирает 400 очков/100 игр, то это плохая программа и публиковать ее - на мой взгляд - не стоит. Ты говоришь, что у тебя есть точные расчеты некоторых стартеров. А кто тебе сказал, что они правильные? Господь бог спустился на землю и шепнул тебе на ухо? Или человек, который рассчитал эти стартера, разве он не мог допустить ошибку в расчетах?

    Ответить Цитировать
    12/35
    + 0
  • Luisito99 @ 07.01.23 

    алгоритм без ошибки

    Математика алгоритма гарантирует его абсолютную точность

    Это алгоритм в котором нет ошибки и приближений, это алгоритм с упрощением...

    Он немного для другой игры, но оч похожей на исследуюмую... 

    Luisito99 @ 07.01.23 

    Если она на дистанции будет набирать 550+ очков/100 игр, то это хорошая программа, хороший учитель.

    Откуда эти цифры?  

    Luisito99 @ 07.01.23 

    Господь бог спустился на землю и шепнул тебе на ухо

    Сотни душ монахов ...

    Luisito99 @ 07.01.23 

    человек, который рассчитал эти стартера, разве он не мог допустить ошибку в расчетах

    Маловероятно, он олимпиадник

    Ответить Цитировать
    631/882
    + 0
  • 550 очков/100 игр - я взял наобум. Я думаю эти цифры на дистанции для человека трудно достижимы, поэтому это гарантия хорошей программы( на самом деле цифры будут ниже). Я же здесь неоднократно писал, что я то же когда то пытался сделать программу для китайского покера, по типу той, что делает Jak. Но я ее не доделал. Но при этом показатели в 500 очков/100 игр(для позиции 2 из 3) у нее были. Но у меня был неправильный алгоритм выбора оптимально варианта продолжения. И я до сих пор, - а сейчас нет ни желания ни времени - ее не доделал.

    Ответить Цитировать
    13/35
    + 0
  • Luisito99 @ 07.01.23 

    И мне не понятно, почему именно 8 и 91 поток, а не 12 и 154

    Ну, это легко объяснить.

    В расчетах есть два вложенных цикла. 

    for ii:=0 to 12 и for jj:=ii to 12. Т.е. перебираем все возможные пары карт. Заметьте, что второй цикл начинается с (ii). Т.о. перебираем пары карт 0,0 0,1 0,2 0,3 и тд до 12,12 (это тузы). всего таких возможных пар 91. 

    Если расчеты в один поток, то эти два цикла целиком работают. Самый медленный способ. Далее. Цикл при ii:=0 длинней цикла при ii:=1,2... т.к. второй цикл при 0 самый длинный. Я померил время при всех (ii). Вначале сделал 13 потоков и первый цикл разбился до одного элемента, а второй цикл полный. Тогда получился перекос, 0-вой цикл самый долгий, а другие уже закончились. Перебором подобрал, что при 8 потоках получается 8 примерно одинаковых по времени потоков.

    Если организовать их так [0],[1],[2],[3,12],[4,11],[5,10],[6,9],[7,8]. У меня 6 ядер, 8 потоков занимают примерно 80% проца.

    А 91 - это просто оба цикла раскрыл до 91 пары от 0,0 до 12,12.

     

    По поводу кол-ва потоков. Изучал этот вопрос уже давно. Да, есть функция, которая определяет оптимальное кол-во потоков для конкретного процессора. Но было лень заморачиваться насчет скорости, т.к. нет особой разницы 50 сек считается или 55 сек. Запускаю 91 поток и проц сам решает какой поток вперед.

     

    Сейчас попробую оптимизировать кол-во потоков, чтобы можно было устанавливать кол-во потоков ручками. Ну или можно автоматом запускать по очереди N потоков по заполнению проца.

     

    По времени циферки такие: 91 поток - 92 сек, 8 потоков - 114 сек, 1 поток - 621 сек. Значения совпадают.

    Сообщение отредактировал Jak - 7.1.2023, 16:00
    Ответить Цитировать
    193/314
    + 0
  • Jak @ 07.01.23 

    попробую оптимизировать кол-во потоков

    А когда против фантазии заморочишься?) 

    Надо будет посидеть подумать над этим, а потоки фигня, кол-во ядер х2.5 обычно дают 100%

    Ответить Цитировать
    632/882
    + 0
  • Вот такую посчитать против фанты ведь можно абсолютно точно с учётом фантазий  оппонента:

    Ананас классика

    Ответить Цитировать
    633/882
    + 0
  • c00l0ne @ 07.01.23 

    с учётом фантазий оппонента

    вот это непонятно

     

    а просто максимально хорошо разложить, неверно?

     

    вот тут перебрали все возможные подъемы. посчитали полученные бонусы и усреднили их.

    те если положить 99 вниз, в среднем получим 7,01 куша. И это с учетом того, что если купим фанту, получим за нее 9.75

     

    а если бонус за фанту не считать, то получим 5,122 за 99 вниз

     

    и совершенно неважно, будет у фанты внизу фулл или 2пары. гаданием не занимаюсь.

    если ты что-то предполагаешь про фанту оппа, скажи проге. я не знаю, что сказать. типа, "скорее всего там 2пары в середине..." не катит.

     

    вот когда карты оппов видны, то фанту раскладываю с учетом бонусов и линий.

    Сообщение отредактировал Jak - 8.1.2023, 6:45
    Ответить Цитировать
    194/314
    + 1
  • Jak @ 08.01.23 

    вот это непонятно

    Исключает известные карты, раздает фантазии оппоненту , смотрим что там нараздают , играем против этого.

     

    Да забей, это уже какой-то некст левел...

    Ответить Цитировать
    634/882
    + 0
  • Ты считаешь, что если мы из колоды выкинем 8 известных карт, что-то поменяется в фанте?

     

    Все варианты мы все равно не сможем посчитать, ~115млрд вариантов. Вообще-то можно посчитать все варианты. Если считать 1млн фант/сек, за пару дней можно все перебрать.

    А перебрать из этого 0,00001%??? Какой смысл? 

    Это капля в море. И при такой выборке делать предположения о фанте?

     

    по аналогии с техасом, это примерно как мы при сравнении наших А7о с диапазоном оппа, взяли только один флоп, и на основании этого делаем выводы.

    Ответить Цитировать
    195/314
    + 0
  • Jak, не туда тебя развернуло в ответе) 

    Jak @ 08.01.23 

    0,00001%

    Цифра достоверная или с небесов?

    Ответить Цитировать
    635/882
    + 0
1 91 92 93 94 114
1 человек читает эту тему (1 гость):
Зачем регистрироваться на GipsyTeam?
  • Вы сможете оставлять комментарии, оценивать посты, участвовать в дискуссиях и повышать свой уровень игры.
  • Если вы предпочитаете четырехцветную колоду и хотите отключить анимацию аватаров, эти возможности будут в настройках профиля.
  • Вам станут доступны закладки, бекинг и другие удобные инструменты сайта.
  • На каждой странице будет видно, где появились новые посты и комментарии.
  • Если вы зарегистрированы в покер-румах через GipsyTeam, вы получите статистику рейка, бонусные очки для покупок в магазине, эксклюзивные акции и расширенную поддержку.