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

Последний пост:26.11.2023
22
1 38 58 59 60 61 80 114
  • БиллиУбили, теоретически стрит-стрит-сет вверху может дать больше очков.
    А так да. Если теоретически в ветке нельзя набрать больше текущего максимума, то нефиг там бегать.
    2/6
    Ответить Цитировать
    0
  • Цитата (Yras @ 5.2.2020)
    теоретически стрит-стрит-сет вверху может дать больше очков

    ты и прав, и не прав одновременно. Вроде как мы не можем получить стрит из очередного 13 карточного набора. Ведь мы получаем одну новую карту, НО ОДНОВРЕМЕННО и теряем одну. Чтобы получить ААА в топе(а другой трипс не получится) нам вроде как нужно ААх в топе.
    Но тогда получается, что мы собрали бы АА/стрит/флаш на предыдущих этапах. Другой вопрос, что мы можем разбить и стрит, и флаш...и собрать из них трипс/трипс/трипс. То есть мы можем уже отсечь все фантазии меньше 6(4+2) очков. Сильно ли ускорит разложение фантазии, если мы знаем, что 6 очков у нас уже есть и нам нужно минимум 7?
    Число вариантов собрать фантазию 7+ очков (комбинанации разных рангов на разных боксах)счётно, стоит ли заморачиваться с нахождением этих шаблонов и попыткой собрать фантазию только из них? Посмотрим, надо пощупать быстродействия разложения фантазии...
    474/741
    Ответить Цитировать
    0
  • Цитата (БиллиУбили @ 5.2.2020)
    Переходим к пункту №2 "Найти все комбинации с данной картой(картами)"

    Цитата (БиллиУбили @ 5.2.2020)
    Решил, но на полном дереве пошли повторы...прохожу НИ, и снова натыкаюсь на Н и И...маразм

    Ну его на*ой, этот пункт? Зачем вообще лезть в дерево? Ведь оно же ПОЛНОЕ. Мы просто можем заполнить пустые места всеми возможными картами(НИ-КТО, НИ-ГЕР и т.д.), а дерево даст нам ранги получившихся комбинаций.
    Переходим к 3. Разложить фантазию из 14-17 карт
    Рекурсивно берём 5 карт, находим комбинацию, далее переходим к набору из 9-12 карт, снова ищем комбинацию и т.д.

    Тут-то как раз ничего не меняется по сравнению с неполным деревом. Это раньше надо было беспокоиться, есть ли Р-Е-Г-И-Н в дереве или нет, то сейчас там этого дерьма навалом )

    475/741
    Ответить Цитировать
    0
  • Цитата (БиллиУбили @ 5.2.2020)
    Переходим к 3. Разложить фантазию из 14-17 карт

    Переписывать, безусловно, проще, чем писать заново.
    Однако, за 2-3 недели я уже успел забыть, как работает тот или иной алгоритм
    ПОэтому теперь приходится комментировать(давать краткое описание) каждую функцию(алгоритм). И отдельно комментировать тот или иной момент, происходящий в коде. Хотя казалось бы...алгоритмов штук 10-15...однако уже больше 5 человек в голове удержать не в состоянии...
    Текущий прогресс пункта №3 - 25%
    476/741
    Ответить Цитировать
    0
  • Опять забежим немного вперёд...
    5. Найти разложение стартера (в процессе)
    Дополняем стартер до набора 14-17 карт, записываем разложение карт стартера (в виде 01221) и очки за фантазию.
    (тут пока без суммирования всех разложений, с любыми очками, не обязательно макс).
    Определяем топ-10 и повторяем разложение фантазии

    Насколько я понимаю, существует всего 18 вариантов разложения стартера
    ТОП-МИДЛ-НИЗ 3/2/0 3/1/1 3/0/2
    2/2/1 2/0/3 2/3/0 2/1/2
    1/2/2....(и т.д. с одной картой в топе)
    0/1/4...(и т.д. без карт в топе)
    Появилась следующая идея. Что если погонять разложение рандомных стартеров...и посчитать, какой вариант обычно "выстреливает"?
    Тогда можно было бы разложение заданного стартера начинать не с "нуля" (3/2/0 или 0/0/5), а с наиболее популярных вариантов?
    Что скажут математики и крепкие реги?
    477/741
    Ответить Цитировать
    0
  • Цитата (БиллиУбили @ 5.2.2020)
    Допустим, в этом разложении участвует 3 "макс" комбинации: флаш внизу, стрит в середине и Ахай в топе. ВОпрос: если я беру следующий(11ый) набор из 13 карт, нахожу в нём комбинации

    Мне кажется, что главный/особый вклад в фанту дает топ. Очевидная же мысль.
    Ты пытаешься найти макс вниз. Потом в мид и что осталось кладешь в топ, потому и собрал флАш внизу, стрит (уж если называть правильно комбинации флЕш-флАш, почему стрИт, а не стрЕЙт?) и херню в топ.
    А надо наоборот искать макс в топ! Потому что TT, JJ в топе > флеш в низу. А КК и АА >= флеш+стрит. Вот если у тебя не будет в топ комбы больше 8 кушей, тогда можешь бросать поиски.
    Напиши п/п нахождения макс комбы в топ и от этого пляши. И желательно не перебором. С(17,3)=680. А вот битовыми операциями пох сколько карт 14 или 17, или 25. Несколько сравнений и макс комба есть.
    120/314
    Ответить Цитировать
    0
  • Цитата (Jak @ 6.2.2020)
    А надо наоборот искать макс в топ!

    Можно.
    Я обсуждаю 13каточные наборы. Я проверил 10 наборов из 210(для 15 карт) и на текущий момент Ахай/стрейт/флаш - максимальный(нет там КК/АА). Теперь я делаю ход конём = добавляю одну карту и убираю одну карту. И тут появляется гипотеза: если из новых 13 карт не получается ни одной комбинации старше текущих, то и раскладывать их не за чем. (нет смысла раскладывать стрит-Ахай-стрит, очков больше чем за стрит-флаш-Ахай не получишь)

    Цитата (Jak @ 6.2.2020)
    А вот битовыми операциями пох сколько карт 14 или 17, или 25. Несколько сравнений и макс комба есть.

    Это как? Строку(число) из 17 цифр побитово сравнить со всеми возможными комбинациями в топе? ну, с х, и т.д.?
    478/741
    Ответить Цитировать
    0
  • Цитата (БиллиУбили @ 6.2.2020)
    Строку(число) из 17 цифр побитово сравнить со всеми возможными комбинациями в топе?

    да.

    можно иметь строку 17 цифр. а можно иметь одно 64-бит число в котором есть все карты из колоды, каждый бит из младших 52 бит - одна карта.
    полная колода 0xfffffffffffff, двойка 0x1, тройка 0x2 и т.д. Все 17 карт => 17 бит в числе M.
    маска для всех двоек b=0x8004002001,
    n=m & b; в n будет маска для всех двоек. осталось только их посчитать.
    считаем: n=n + (n >> 26);
    еще раз n=n + (n >> 13); в младших 3-х битах сумма всех двоек,
    n=n & 7; очистили старшие биты, все! в n - точное число всех двоек. это двойки.
    запишем в a[0]=n;
    и запомним в mах[n]=0; тут будут найденные пары, тройки, четверки совпадений.
    теперь сдвинем M, m=m >> 1;
    теперь считаем тройки так же как двойки.
    запомним a[1]=n;
    и запомним в mах[n]=1; и так до тузов.
    в конце имеем массив int a[12] - тут все совпадения карт, и int mах[4] - тут в mах[4], max[3] - будут старшие тройки (причем максимальные номера, мы же искали от двоек к тузам и младшие затрутся), если оба равны 0 , значит троек нет, в max[2] - максимальная пара, если 0 и пар нет, если >0 - то есть максимальная пара.

    и главное - пох сколько карт, хоть 32! цикл 0..12, внутри 2 сложения, 3 сдвига и ответ!
    121/314
    Ответить Цитировать
    0
  • Цитата (Jak @ 6.2.2020)
    значит троек нет, в max[2] - максимальная пара, если 0 и пар нет, если >0 - то есть максимальная пара.

    Похдод красивый! Но, в рамках текущей версии (1.0) я не могу смешивать французский с нижегородским. Спасибо, что напомнил в очередной раз о сдвигах, побитовом сравнении...пока продолжу в рамках собственной парадигмы. Вот потом перечитаю тему и возьмусь за улучшения )
    479/741
    Ответить Цитировать
    0
  • Цитата (Jak @ 6.2.2020)
    и главное - пох сколько карт, хоть 32! цикл 0..12, внутри 2 сложения, 3 сдвига и ответ!


    Зачем цикл? Все делается за один проход ... M >>13, 4 раза и совпадения :
    n4 = m1 and m2 and m3 and m4 карэ
    n3 = ((m1 and m2 and m3) or (m2 and m3 and m4) or ... ) And Not n4
    N2...
    N1
    Изи

    В n4 коряги, n3 сеты, в n2 пары...

    Это вам не по дереву гонять)))
    339/882
    Ответить Цитировать
    0
  • Самое сложное это ловить пересечения... Для этого ещё нужно стриты брать ... И флеши... И когда их берём , вынимать из обоймы совпадений и вуп вуп... Было бы время я б замутил разбор фанты... Накидайте 250 бачей... Сделаю... Исходники ваши будут... В 13 карточной возможно две масти , а начиная с пятнадцати карточной возможны три масти

    Итого алгоритм:
    1. Отрабатываем совпадения плюс стриты и флеши
    2. Ставим бокс рекурсионно три раза, исключая пересечения, на верхнем боксе пишем максимум... В момент обратной рекурсии пару условий на выход делаем...

    Профит миллиарды фант в секу
    Колоду генерируем 64 битными числами , чтобы 14 бит было в числе
    Сообщение отредактировал c00l0ne - 6.2.2020, 15:11
    340/882
    Ответить Цитировать
    0
  • Цитата (БиллиУбили @ 6.2.2020)
    Переписывать, безусловно, проще, чем писать заново.

    Вот этот раз чёрт меня дёрнул писать заново. Разложить просто карты(14-17 штук) по боксам. 13 карт разложились быстро ), а дальше затык. Пришлось приложить титанические усилия...код превысил один экран(привет c00l0ne). Но вроде получилось.
    Заново, потому что раньше, на неполном дереве, я искал комбинации, которые есть в дереве. А сейчас там есть любые(!) 5 карт. Вот я и подумал, что комбинаций из набора будет овердохуя. Разложу-ка я просто карты, а потом определю, что за комбинация(ии) получилась(ись).
    Выяснилось, что и варианты разложения карт растут овердохуя быстро...Но ничего страшного, теперь есть полный арсенал, можно будет сравнить быстродействие.
    Итак, имеем разложение карт по боксам, далее быстренько определяем комбинации, подсчитываем очки(если рука - живая), и, вуаля, мы разложили фантазию.
    Кто как думает, может это быть быстрее, чем сразу искать комбинации и раскрадывать уже их по боксам? Напишите в комментариях.
    Цитата (c00l0ne @ 6.2.2020)
    Сделаю...

    Лол. Математик должен уметь делать это на листке бумажки. Как диды



    ЗЫ Ну, а я пока выдвигаюсь на работу. Если хотите ускорить работу над проектом - можете сделать донат(добровольное пожертвование). Номер карты по запросу.
    Всех обнял, на созвоне, не теряемся! Победа будет за нами! )
    480/741
    Ответить Цитировать
    0
  • Цитата (БиллиУбили @ 6.2.2020)
    должен


    Всем прощаю
    Выше приведенный мной алгоритм имеет уже какую то денежную стоимость, тебе не кажется? кто ещё кому должен)
    Сообщение отредактировал c00l0ne - 7.2.2020, 0:44
    341/882
    Ответить Цитировать
    0
  • Я и думаю, как же этот нищеброд код бесплатно скинул и ничего не запросил
    А потом бах! аааа нет, вспомнил про деньги.
    122/314
    Ответить Цитировать
    0
  • Цитата (Jak @ 7.2.2020)
    нищеброд


    За базаром следи
    По твоей логике тут надо код солвера выкладывать чтобы тупенький биллиубилли просто за копипастил и пошел гриндить 50-100 руб куш всех разрывая и попутно бросив работу?) Я вообще считаю что такие темы надо прикрывать... Очевидно чел пытается создать бота или подсказчик... Чтобы мошенническим путем бабки отбирать у народа...
    Сообщение отредактировал c00l0ne - 7.2.2020, 11:03
    342/882
    Ответить Цитировать
    0
  • Цитата (c00l0ne @ 7.2.2020)
    Я вообще считаю что такие темы надо прикрывать... Очевидно чел пытается создать бота или подсказчик... Чтобы мошенническим путем бабки отбирать у народа...


    Цитата (c00l0ne @ 4.2.2020)
    епа ты ведешь себя как в дет саду , тебе слив века в руки попадает , а ты девочку моралистку включаешь


    Лол, бля!
    5/6
    Ответить Цитировать
    6
  • Shtirlitz, сюда кстати заходил представитель покерматча, посмотрел и вышел
    343/882
    Ответить Цитировать
    0
  • c00l0ne, представитель ПД сделает тоже самое. Всем похуй, а эти и пользуются. Ну а что? Год Крысы же наступил.
    6/6
    Ответить Цитировать
    0
  • Цитата (Shtirlitz @ 7.2.2020)
    Лол, бля!


    плохой с тебя штирлиц , смени ник ... плохой с тебя был бы двойной агент
    344/882
    Ответить Цитировать
    0
  • Цитата (c00l0ne @ 7.2.2020)
    чтобы тупенький биллиубилли

    ну тебе-то за базаром следить не надо.

    Ты скажи: сколько все-таки разных комбинаций "пара" в колоде? 2860 или 1333? Не способы размещения их в памяти, а количество?

    Красная или синяя?
    123/314
    Ответить Цитировать
    0
1 38 58 59 60 61 80 114
1 человек читает эту тему (1 гость):
Зачем регистрироваться на GipsyTeam?
  • Вы сможете оставлять комментарии, оценивать посты, участвовать в дискуссиях и повышать свой уровень игры.
  • Если вы предпочитаете четырехцветную колоду и хотите отключить анимацию аватаров, эти возможности будут в настройках профиля.
  • Вам станут доступны закладки, бекинг и другие удобные инструменты сайта.
  • На каждой странице будет видно, где появились новые посты и комментарии.
  • Если вы зарегистрированы в покер-румах через GipsyTeam, вы получите статистику рейка, бонусные очки для покупок в магазине, эксклюзивные акции и расширенную поддержку.