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

Последний пост:26.11.2023
22
1 28 48 49 50 51 70 114
  • Цитата (БиллиУбили @ 15.1.2020)
    моя рука зависит от 17 карт. И не зависит от кол-ва оппонентов и что они там наложили. Я собираю макс по очкам, получая инфу по вышедшим из колоды картам расклад за раскладом


    делай, я недавно против такого бота катал, 0.5-1 куш раздача вышла... понаписали гавна ... )

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

    в глазах биллиубилли: а я сижу пля рег не вижу что ты собираешь и собираю минимум очков хаха ...
    реальность: я собираю максимум очков против твоих лайнов ... (а тут слезы биллиубилли, жака, Галакса и лексермана )...

    пока что самый норм софт это у солоха, бурзума , пл1995 карра еспзора и прочих супертопов ...
    но интересно как они так быстро считают ожидание против лайнов ... если вообще считают ...

    ладно , хочешь продолжить велком ту дискорд ...
    269/882
    Ответить Цитировать
    0
  • Цитата (c00l0ne @ 15.1.2020)
    0.5-1 куш раздача вышла...

    раздач 300 сыграл хотя бы?
    Цитата (c00l0ne @ 15.1.2020)
    реальность: я собираю максимум очков против твоих лайнов ...

    ух ты, мой сладенький. Времени дашь мне 5 мин на руку - обязательно заключим пари. (с блекджеком и шлюхами с кроссбуками и кепкой)
    382/741
    Ответить Цитировать
    0
  • БиллиУбили, да поболе сыграли ... два ха до потери пульса ... он крепенько держался , пока апать не начало ... апать начало побежал поджав хвост переписывать код ) мастер из швейцарии) пора покердому запретить играть с впном

    Цитата
    ух ты, мой сладенький. Времени дашь мне 5 мин на руку - обязательно заключим пари. (с блекджеком и шлюхами с кроссбуками и кепкой)


    в дискорде напишешь
    pMcD0rJCRw2sngFl9XcMCw.png
    270/882
    Ответить Цитировать
    0
  • Цитата (c00l0ne @ 15.1.2020)
    мастер из швейцарии) пора покердому запретить играть с впном

    ага...и боты под кроватью...максимум против твоих лайнов собирают
    1454777700162292359.jpg
    383/741
    Ответить Цитировать
    0
  • Цитата (БиллиУбили @ 15.1.2020)
    ага...и боты под кроватью...максимум против твоих лайнов собирают
    1454777700162292359.jpg


    Цитата (БиллиУбили @ 15.1.2020)
    . 12 карт которые тебе раздадут, можно выложить перед тобой сразу из колоды.
    Всё. Что там разложил оп, какие ему 12 карт раздали...это тебя мало интересует. Задача выжать максимум из своих 12.


    геморой они своему создателю собирают (стенку не сломай)





    ПС
    лично я не вижу смысла в такого уровня софте ... поэтому вжизни не стал бы писать , потому что человеческий уровень будет в любом случае выше ... а играть с софтом новичкам все равно не дадут , забанят
    271/882
    Ответить Цитировать
    0
  • Когда уже будет показательный матч софт vs рег
    И встанет все на места своя
    17/27
    Ответить Цитировать
    0
  • Цитата (БиллиУбили @ 15.1.2020)
    Переходим к проблеме №6. Разложение стартера.
    Вариант А. Бахаем 5 карт, далее получаем 8 случайных карт, смотрим, какие фантазии сможем на них собрать, считаем среднее ЕВ
    Вариант Б. Бахаем 5 карт, далее получаем 12 случайных карт, смотрим, какие фантазии сможем на них собрать, считаем среднее ЕВ


    Родилась следующая идея. А зачем, собственно говоря, "закреплять" карты стартера? Берём 8-12 случайных карт, подмешиваем к ним карты стартера...и раскладываем фантазии из набора(13-17 карт).
    Так как мы знаем все разложения фанты...каждый из ~200 вариантов разложения стартера наберёт свои "очки". Тут некоторый вариант разложения стартера может поучаствовать более, чем в одном разложении набора.
    Берём следующие 8-12 карт, повторяем.
    У нас сразу появится топ-10 вариантов разложения стартера(они будут набирать максимум очков по 2ум прогонам).
    На каком-то этапе можно будет отбрасывать низ-10(типа совсем нелепых вниз) и концетрироваться на оставшихся.
    А что...это уже можно программировать.
    ЗЫ Да, в реальной игре мы не увидим все 12 карт, которые к нам придут, сразу. Но предложенная метода будет неплохой оценкой, как мне кажется.
    ЗЫ2 Как узнать, что вам раздали плохой стартер? Одна или более карт из него попала в сброс по итогам симуляции ))

    Как всегда, мне завтра на работу...Вы можете поддержать проект донатом(добровольным пожертвованием).
    384/741
    Ответить Цитировать
    0
  • Похоже, первое затруднение...как узнать комбинацию из 5 карт, мы знаем. Используем массив, на который до этого потратили время. А что с обратной задачей? Есть комбинация, нужно узнать, входит ли в неё определённая карта(например, ). Как сделать это быстрее, чем за 5 сравнений? Это вообще возможно? Побитовая маска, как предлагалc00l0ne?
    385/741
    Ответить Цитировать
    0
  • Рекурсия обезумела, смогу ли я совладать с ней?
    Напомню, что для задачи разложения фантазии из 15 карт я нахожу все возможные комбинации по 5 карт, а потом пытаюсь разложить их по боксам в порядке старшинства. Найдя все комбинации, мы используем рекурсию,чтобы в первую очередь положить комбинации с макс. очками(потом со следующим максимум и т.д.).
    Проблема разложения стартера заключается в том, что в итоговое разложение(по итогам симуляции) должны попасть 5 стартовых карт. Не больше и не меньше.
    Возникает идея. А почему бы не встроить проверку вхождения 5ти стартовых карт в рекурсию?
    Если мы имеем набор
    то на первом прогоне мы найдём
    - флаш + сколько он использовал карт из стартовой пятёрки, и пойдём искать дальше
    - фулхауз + сколько он использовал карт из стартовой пятёрки, и пойдём искать дальше
    в результате выяснится, что на втором прогоне нам нужно будет находить не только находить хорошие, очковые комбинации, но и проверять их на наличие карт из "стартовой пятёрки". То есть они просто не будут находиться. Точнее будут, но не будут проходить на следующий прогон.
    Как вам идейка?
    ЗЫ Пока писал пост, нашёл ошибку в простом разложении фантазии. Я ошибочно предположил, что "найдя" флаш, следует отбросить все карты до его последней правой карты(почему-то подумал, что комбинации идут одна за другой, а ведь они могут начинаться и заканчиваться в произвольном порядке) Таким образом, в наборе

    я уже не мог "найти" фулхаус. Ладно, эти исправим. На следующий прогон следует удалять только карты, вошедшие в комбинацию, а не все карты до последней задействованной в комбинации.
    386/741
    Ответить Цитировать
    0
  • Да что такое, начались танцы с бубнами...Захотел объединить 3бокса (+в дальнейшем сброс) в "руку" и копить различные разложения. Но
    struct SOne
    {
    std::string A; std::string B; std::string С;
    };
    std::vector<SOne> MyWays;

    не компилируется, хоть ты тресни...
    придётся использовать суррогат

    typedef std::vector<std::string> VecrorStr;
    std::vector<VecrorStr> VSS;
    387/741
    Ответить Цитировать
    0
  • БиллиУбили, векторные строки, что дальше Билли
    Кто то ещё использует структуры
    Создай класс ....
    272/882
    Ответить Цитировать
    0
  • Цитата (c00l0ne @ 21.1.2020)
    Создай класс ....

    я уже насоздавался классов и получил часовые времена расчёта. Поэтому сначала обозначим, протестируем-прогоним, а потом будем улучшать.
    388/741
    Ответить Цитировать
    0
  • БиллиУбили, часовые, а можно хоть один пруф, ну там посчитанную раздачу или посл ход

    Цитата (БиллиУбили @ 21.1.2020)
    я уже насоздавался классов и получил часовые времена расчёта. Поэтому сначала обозначим, протестируем-прогоним, а потом будем улучшать.


    От этого разве зависит производительность? Всему виной обычно алгоритм кривой и его сложность... Особенно когда он на строках основан, где операции циклами гоняются Туда сюда
    273/882
    Ответить Цитировать
    0
  • Цитата (c00l0ne @ 21.1.2020)
    БиллиУбили, часовые, а можно хоть один пруф, ну там посчитанную раздачу или посл ход

    не смог дождаться, времени стало жалко
    ЗЫ кстати, я и заменил class на struct в надежде, что заработает.
    Но что-то не тянет мой компилятор std::vector<класс>
    389/741
    Ответить Цитировать
    0
  • Цитата (c00l0ne @ 21.1.2020)
    От этого разве зависит производительность?

    не знаю, друг, от чего зависит производительность. Сейчас стоит задача разложения фантазии с учётом разложения стартера(5 карт). Из-за чего кол-во вариантов обсчёта скакнуло с ~100 до ~1кк(ведь теперь имеет значение не только очки, но и места на которые попали стартовые карты)
    390/741
    Ответить Цитировать
    0
  • БиллиУбили, могу помочь но если ты потом скинешь исходники мне... Когда заработает более менее, в дискорд мне в личку напиши , там созвонимся...
    274/882
    Ответить Цитировать
    0
  • c00l0ne, лол
    помоги мне создать вектор из обьектов моего типа, и всё. Все примеры из инета у меня не компилируются. Толи с11+ не поддерживает, то ли так вообще раньше делать было нельзя. Но это странно. Какая разница, из чего строить std::vector
    391/741
    Ответить Цитировать
    0
  • БиллиУбили, векторы отстой, создай список
    275/882
    Ответить Цитировать
    0
  • отбой, заработало
    class Students {
    public:
    void set_name(string student_name)
    {
    name = student_name;
    }
    string get_name()
    {
    return name;
    }
    void set_last_name(string student_last_name)
    {
    last_name = student_last_name;
    }
    string get_last_name()
    {
    return last_name;
    }
    void set_rating(double ball)
    {
    rating = ball;
    }
    double get_rating()
    {
    return rating;
    }
    private:
    string last_name;
    string name;
    double rating;
    Students ();
    Students(string _last_name, string _name, double _rating): last_name(_last_name), name(_name), rating(_rating)
    {}
    };

    и завертелось
    std::vector<Students> vectorOfStudent;

    надо было просто определение класса дать в h.файле, а не в cpp. Поэтому компилятор и ругался.
    392/741
    Ответить Цитировать
    0
  • БиллиУбили,
    Цитата (БиллиУбили @ 21.1.2020)
    надо было просто определение класса дать в h.файле, а не в cpp. Поэтому компилятор и ругался.


    стыдно должно быть
    276/882
    Ответить Цитировать
    0
1 28 48 49 50 51 70 114
1 человек читает эту тему (1 гость):
Зачем регистрироваться на GipsyTeam?
  • Вы сможете оставлять комментарии, оценивать посты, участвовать в дискуссиях и повышать свой уровень игры.
  • Если вы предпочитаете четырехцветную колоду и хотите отключить анимацию аватаров, эти возможности будут в настройках профиля.
  • Вам станут доступны закладки, бекинг и другие удобные инструменты сайта.
  • На каждой странице будет видно, где появились новые посты и комментарии.
  • Если вы зарегистрированы в покер-румах через GipsyTeam, вы получите статистику рейка, бонусные очки для покупок в магазине, эксклюзивные акции и расширенную поддержку.