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

Последний пост:26.11.2023
22
1 40 60 61 62 63 82 114
  • Цитата (c00l0ne @ 13.2.2020)
    в пузырьковой сортировке тоже три обмена

    ну, значит вырожденный случай пузырьковой сортировки. Работает? Поехали дальше
    492/741
    Ответить Цитировать
    1
  • Цитата (БиллиУбили @ 13.2.2020)
    ну, значит вырожденный случай пузырьковой сортировки. Работает? Поехали дальше


    ты просто по другому записал сортировку ... лан проехали... пузырьковая сортировка сравнивает всегда соседей 1с2 2с3 3с4 и т.д. д до конца сортируемого списка ...
    351/882
    Ответить Цитировать
    0
  • gWudYf4qQDOfQGn7b-Wckw.png

    это что за класс
    begin end erase ... что это за объект?
    стартер это карты стартера ?
    я так понимаю с набора они удаляются или что ?

    можешь не отвечать это просто стринги ... сообразил увидев этот код :
    YhYzk7xHSNKTCbtzdlj67g.png


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

    а вообще скучнова-то ... код скучненький ты выкладываешь , примитивный ... и удивляешься ему еще ... ничего интересного ... давай делай дальше ... дальше только треш )
    352/882
    Ответить Цитировать
    0
  • про обмен 3х карточной и 5 карточной лайны я так и не понял ? т.е. ты обменяв потом отправляешь на проверку сколько карт там ? как это проблема решена ?

    зачем вообще такой обмен делать возможным ?
    ну меняй ты только карты которые в комбу входят ... если на то пошло ...
    а вообще рекурсионно делай ...
    label m1:
    find_Combo (nabor_cards )
    delete_combo_Cards(nabor_cards)
    goto m1
    все комбы выберешь изи профит , в боксы запихал вот тебе фанта , статистику выхода их посчитал с разных стартовых карт и вот тебе стартер разложенный твоим методом...
    рекурсионно выглядит так :
    sub find_combo (cards)
    ищем комбу
    cards_new = удаляем карты из cards
    find_combo(new_cards)
    end
    Сообщение отредактировал c00l0ne - 13.2.2020, 8:53
    353/882
    Ответить Цитировать
    0
  • Цитата (c00l0ne @ 13.2.2020)
    т.е. ты обменяв потом отправляешь на проверку сколько карт там ?

    Цитата (c00l0ne @ 13.2.2020)
    зачем вообще такой обмен делать возможным ?

    Если у тебя все комбинации 5карточные, то их можно менять между собой Но стрит в топе не удержится. Как-то так.
    Цитата (c00l0ne @ 13.2.2020)
    find_Combo (nabor_cards )
    delete_combo_Cards(nabor_cards)

    Создаём набор, из него(+стартер) раскладываем фантазию.
    Ну, сейчас набор я генерю рандомно(из колоды) и, возможно, за 1кк раз он повторится. Ну, и что. Смысл хранить 1кк наборов, чтобы проверять, что очередной будет уникальным? Разве в методе МК за этим следят?
    493/741
    Ответить Цитировать
    1
  • Цитата (БиллиУбили @ 13.2.2020)
    Если у тебя все комбинации 5карточные, то их можно менять между собой Но стрит в топе не удержится. Как-то так.
    Создаём набор, из него(+стартер) раскладываем фантазию.
    Ну, сейчас набор я генерю рандомно и, возможно, за 1кк раз он повторится. Ну, и что. Смысл хранить 1кк наборов, чтобы проверять, что очередной будет уникальным? Разве в методе МК за этим следят?

    со слова создаем набор , бред какой то

    ой давай с условия задачи ... у тебя есть набор карт ...
    для фантазии 14,15,16,17 карт
    для раздачи 17 карт с условием 5 стартовых и по 3 в сдаче ...

    для фанты набор карт пусть будет строкою nabor_string_card = "AAAAKKKKQQQQJJ" масти по идее еще добавить, будем их хранить в другой строке nabor_string_masti = "ПБКЧПБКЧПБКЧПБ"
    14 карт
    далее нам нужна сама рекурсионная функция ...

    recurse_find_combo(nabor_card) поиск рекурсионно комбинаций в передаваемом наборе карт
    по пунктам

    if current_box = 4 then закончили искать , потому что 3 лайна заполнены считаем роялти и сравниваем с максимальным
    if current_box = 3 then ищем только трехкарточную комбинацию на верх , переходим к поиску трипсов пар ...
    1) ищем рояль
    bRoyal = bfind_royal_combo ( nabor_card)
    если нашли bRoyal == true то
    new_nabor_card=delete_card_royal(nabor_card)
    box(current_box) = royal_code
    current_box +=1
    recurse_find_combo ( new_nabor_card)
    ...
    далее стрит флеш и пошли поехали ... .
    end recurse_find_combo

    вот и нашли всю фантазию в кратчайшие сроки ... за минимум действий ...
    354/882
    Ответить Цитировать
    0
  • Цитата (c00l0ne @ 13.2.2020)
    recurse_find_combo(nabor_card) поиск рекурсионно комбинаций в передаваемом наборе карт
    по пунктам

    Можно так делать, но в этот раз, на полной колоде, я почему-то решил раскладывать карты по линиям. 15 карт разложил - получил 3 бокса. Проверил на старшинство, подсчитал очки, записал очки.
    В общем, сути дело это не меняет.
    Пока у меня следующие проблемы.
    Я суммирую очки, от фантазии, которые даёт тот или иной набор(дополнение к стартеру).
    Но, если фантазия даёт 0, то это разложение стартера теряется...как было 0 очков, так и осталось )

    И ещё пара проблем, которые обязательно всплывут.
    1. Если конкретные 17(5+12) карт дали одно и тоже кол-во очков (например, 8 = фулхас и стрейт и 8 = 2 флаша) для одного(!) стартера, какое разложение записывать??
    2. Что делать, если конкретные 17(5+12) карт всплыл флаш, но к нему есть ещё одномастная. Что же получается, записывать этому разложения стартера в 5 раз больше очков? (5 = мы можем в найденном флаше заменить одну карту на одномастную)?
    494/741
    Ответить Цитировать
    1
  • Цитата (c00l0ne @ 13.2.2020)
    вот и нашли всю фантазию в кратчайшие сроки ... за минимум действий ...

    Извини, не понял принцип работы твоей рекурсии. Напиши словами, псевдокод только всё запутывает.
    В рекурсии 2 уровня: первый уровень - найти из оставшихся карт комбинацию. И второй - положить в свободный бокс.
    Если абстрагироваться от боксов, то рекурсии можно сократить до одного уровня: поиск всех 5карточных комбинаций и уже их расположить по старшинству.
    Твой подход: ищем трипс, кладём его в топ...неминуемо приведёт к ошибкам, так как очень легко наебаться. А что делать, если следующей комбинаций... тоже трипс? Куда его класть? Может так получится, что он в топ уже и не попадёт...А следующей комбинацией после 2ух трипсов...тоже может быть трипс. А куда у нас попал второй "трипс"? В середину или вниз? Непонятно...
    495/741
    Ответить Цитировать
    1
  • Цитата (БиллиУбили @ 13.2.2020)
    Можно так делать, но в этот раз, на полной колоде, я почему-то решил раскладывать карты по линиям. 15 карт разложил - получил 3 бокса. Проверил на старшинство, подсчитал очки, записал очки.
    В общем, сути дело это не меняет.
    Пока у меня следующие проблемы.
    Я суммирую очки, от фантазии, которые даёт тот или иной набор(дополнение к стартеру).
    Но, если фантазия даёт 0, то это разложение стартера теряется...как было 0 очков, так и осталось )

    И ещё пара проблем, которые обязательно всплывут.
    1. Если конкретные 17(5+12) карт дали одно и тоже кол-во очков (например, 8 = фулхас и стрейт и 8 = 2 флаша) для одного стартера, какое разложение записывать??
    2. Что делать, если конкретные 17(5+12) карт всплыл флаш, но к нему есть ещё одномастные. Что же получается, записывать этому разложения стартера в 5 раз больше очков? (5 = мы можем в найденном флаше заменить карту на одномастную)?


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

    Цитата
    Твой подход: ищем трипс, кладём его в топ...неминуемо приведёт к ошибкам, так как очень легко наебаться. А что делать, если следующей комбинаций... тоже трипс? Куда его класть? Может так получится, что он в топ уже и не попадёт...А следующей комбинацией после 2ух трипсов...тоже может быть трипс. А куда у нас попал второй "трипс"? В середину или вниз? Непонятно...


    это не мой подход к сожалению а классическая рекурсия ... придуманная 100500 лет назад ...

    Цитата (БиллиУбили @ 13.2.2020)
    В рекурсии 2 уровня: первый уровень - найти из оставшихся карт комбинацию. И второй - положить в свободный бокс.
    Если абстрагироваться от боксов, то рекурсии можно сократить до одного уровня: поиск всех 5карточных комбинаций и уже их расположить по старшинству.


    как ты это представляешь в виде кода ?
    абстрагироваться можно до безобразия
    function PELLIbIT'_KITAU(ALL)
    в любом случае тебе придется для боксов выбирать комбинации , проще это сделать классическим массивом или строкой ...
    КАК ТЫ БУДЕШЬ СЛЕДИТЬ ЗА ПЕРЕСЕЧЕНИЕМ КАРТ ? компьютер это калькулятор 2+2 =4 ... и ему твои высшие абстрактные задачи не интересны , ему важно чтобы ты высшую задачу(сортировки поиска комбинаций) преобразовал в максимально простой алгоритм вычисления нуликов и единичек , собственно чем программисты и занимаются днями и ночами ...
    355/882
    Ответить Цитировать
    0
  • Цитата (c00l0ne @ 13.2.2020)
    как ты это представляешь в виде кода ?
    абстрагироваться можно до безобразия
    function PELLIbIT'_KITAU(ALL)

    я тебе привёл пример сведения 2ух уровней рекурсии(по комбинациям И порядку боксов) к одноуровневой - только по комбинациям. Если ты не согласен, что так можно сделать: приводи контрпример
    496/741
    Ответить Цитировать
    1
  • Цитата (БиллиУбили @ 13.2.2020)
    я тебе привёл пример сведения 2ух уровней рекурсии(по комбинациям И порядку боксов) к одноуровневой - только по комбинациям. Если ты не согласен, что так можно сделать: приводи контрпример


    да забей ты с контрпримерами ...алгоритм описан выше ... опиши свой ... я хз одноуровневая дву уровневая ... какая разница
    356/882
    Ответить Цитировать
    0
  • Цитата (c00l0ne @ 13.2.2020)
    это не мой подход к сожалению а классическая рекурсия ... придуманная 100500 лет назад ...

    Так ты обьясни, чем ТВОЯ рекурсия лучше МОЕЙ?
    Вот ты нашёл трипс. Положил его в 3 бокса...пошёл искать комбинации дальше. Нашёл флаш. Выше трипса ты его не положишь, так(то есть делаешь проверку). Дальше у тебя пошли только 3 ответвления: Т/Ф/...; Т/../Ф; .../Т/Ф (Ф/Т/...погиб)
    А в чём разница, найти сразу (трипс + флаш + что-то) и разложить уже их?
    Я навскидку не вижу преимуществ...
    497/741
    Ответить Цитировать
    1
  • Цитата (c00l0ne @ 13.2.2020)
    КАК ТЫ БУДЕШЬ СЛЕДИТЬ ЗА ПЕРЕСЕЧЕНИЕМ КАРТ ?

    за какими пересечениями? Ты вообще понимаешь, как работает рекурсия?
    И почему она рано или поздно заканчивает перебор(находит решение)?
    Напиши здесь ответ
    498/741
    Ответить Цитировать
    1
  • Цитата (БиллиУбили @ 13.2.2020)
    за какими пересечениями? Ты вообще понимаешь, как работает рекурсия?
    И почему она рано или поздно заканчивает перебор(находит решение)?
    Напиши здесь ответ


    рекурсия ищет сначала топ комбинацию (рояль) (стритфлеш) (карэ) (фулл) (флеш) (стрит) (трипс) (две пары ) (пару)
    как только находит бахает в бокс 1(нижний)
    как только нашли комбу вызываем повторно рекурсию (бокс +1)
    алгоритм найдет в бокс 2 комбу , тоже и для третьего ... записываем роялти в максимум ... далее происходит выход из последнего вызова рекурсии
    т.е. ищется более слабая комба в бокс 3 ... это не логично искать более слабую поэтому делаем из нее условный выход ... роялти больше мы не соберем верхом ...
    выход из рекурсии возвращает нас в поиск комбинации в бокс 2 ... мы ищем комбу младше в бокс 2 (потому что можем наверх поставить старше в бокс3)... и т.д.

    перебор всех комбинаций не избежать таким методом и все трипсы и прочии комбы найдут свое место ...
    условиями мы можем сократить перебор до минимума ...

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

    1. Имеет стартер, 5 карт.
    2. Добавляем 12 карт.
    3. Раскадываем фантазию = находим макс. кол-во очков(ПЕРВОЕ) = разложение стартера.
    Например, 3/14/25, где цифры - номер карты из стартера, / обозначает боксы.
    4. Добавляем к этому разложению стартера (3/14/25) очки, которые он "собрал". Например, 14
    5. Повторяем п.п. 2-4, для других 12 карт
    В итоге разные разложения стартера у нас "набирают" разные очки.
    Проблемы, с которыми я столкнулся, я изложил
    499/741
    Ответить Цитировать
    1
  • Цитата (c00l0ne @ 13.2.2020)
    сортировка комбинаций происходит рекурсионно ... сначала старшую комбинацию ищет, потом младшую потом более младшую ...

    ну, ок. Я просто ищу комбинации, а по старшинству раскладываю в самом конце.
    500/741
    Ответить Цитировать
    1
  • Цитата (БиллиУбили @ 13.2.2020)
    ну, ок. Я просто ищу комбинации, а по старшинству раскладываю в самом конце.


    а как ты ищещь комбы когда они друг с другом пересекаются ... как ты учитываешь пересечение карт ... одни и те же карты могут в разные комбы входить и ты их можно в фанту запихать ... одни и те же карты ...
    358/882
    Ответить Цитировать
    0
  • Цитата (c00l0ne @ 13.2.2020)
    т.е. ищется более слабая комба в бокс 3 ... это не логично искать более слабую поэтому делаем из нее условный выход ... роялти больше мы не соберем верхом ...
    выход из рекурсии возвращает нас в поиск комбинации в бокс 2 ... мы ищем комбу младше в бокс 2 (потому что можем наверх поставить старше в бокс3)... и т.д.

    т.е. ищется более слабая комба в бокс 3
    ищется более слабая
    А процессор у тебя не перегреется? Искать не просто комбинацию, а именно более слабую?
    Ведь ты всё-равно будешь искать ВСЕ комбинации, но более старшие игнорировать(отбрасывать)
    501/741
    Ответить Цитировать
    1
  • Цитата (БиллиУбили @ 13.2.2020)
    т.е. ищется более слабая комба в бокс 3
    ищется более слабая
    А процессор у тебя не перегреется? Искать не просто комбинацию, а именно более слабую?
    Ведь ты всё-равно будешь искать ВСЕ комбинации, но более старшие игнорировать(отбрасывать)


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

    давай лучше по разложению стартера. Предположим, что я разложил фанту КАК НАДО )
    502/741
    Ответить Цитировать
    1
1 40 60 61 62 63 82 114
1 человек читает эту тему (1 гость):
Зачем регистрироваться на GipsyTeam?
  • Вы сможете оставлять комментарии, оценивать посты, участвовать в дискуссиях и повышать свой уровень игры.
  • Если вы предпочитаете четырехцветную колоду и хотите отключить анимацию аватаров, эти возможности будут в настройках профиля.
  • Вам станут доступны закладки, бекинг и другие удобные инструменты сайта.
  • На каждой странице будет видно, где появились новые посты и комментарии.
  • Если вы зарегистрированы в покер-румах через GipsyTeam, вы получите статистику рейка, бонусные очки для покупок в магазине, эксклюзивные акции и расширенную поддержку.