12.07.2015 Views

img - Xakep Online

img - Xakep Online

img - Xakep Online

SHOW MORE
SHOW LESS
  • No tags were found...

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

codingÑàéòû ïî òåìåПравила покера:http://www.pokerbonus.org.ua/menu/pravila.htmlhttp://www.tehasskiy-holdem.info/http://www.pokerstars.com/ru/poker/games/texas-holdem/Фундаментальная теорема покера:http://poker-wiki.ru/poker/Ôóíäàìåíòàëüíàÿ_òåîðåìà_ïîêåðàВики по покеру:http://poker-wiki.ru/playersList.add(new RandomLogic());playersList.add(new AggressiveLogic());playersList.add(new RaiseLogic());50 раундов на моем ноуте выполнялись около 15 минут. Впринципе, приемлемое значение. Количество денег после49 раундов следующее (начальное количество у всех одинаково— $750):1-é — $5802-é — $5903-é — $5704-é — $22205-é — $5706-é — $6807-é — $08-é — $7509-é — $790INFOinfoПока в симулятореесть неточности,но если их исправитьи сделатьхороший интерфейсHoldemForm, томожно будет использоватьего длятренировки игрыв покер.вызываться из этой формы. Он, в свою очередь, будет спрашиватьпользователя, что делать — fold, call или raise.Для начала проведем игру между человеком и компьютернымиигроками, проверим работу правил симуляции— как раздаются карты, как ходят игроки, как происходитсмена дилера. Я ошибок не нашел, но они навернякатам есть. Поэтому если ты что-то нашел, или у тебя будутпредложения по улучшению программы, пиши мне наtimreset@mail.ruПеречислю некоторые неточности в симуляции, чтобызнать, где можно доделать симулятор:1) Фиксированное количество игроков. Можно сделать отдвух до десяти.2) В HoldemForm не отображается фишка дилера, хотяметод changeDillerPosition при смене дилера вызывается.Нужно добавить на форму возле игрока-дилерапометку.3) Фиксированное количество денег в начале игры. Можносделать изменение этого значения перед игрой.4) Только целые значения большого и малого блайнов.Сделать тип float для них. Int был выбран только из-запроиз водительности… и то, наверное, это спорный выбор.5) Неправильный выбор минимального значения ставкипри рейзе. Сделать вычисление минимального рейза поправилам. Ссылка на них есть в статье.6) Фиксированное увеличение ставки при рейзе. Сделатьзначение рейза динамическим — от минимального значениядо максимального.7) При открытии карт, если есть игроки с одинаковымикартами, выигрывает только первый игрок. Можно этоисправить, чтобы выигрыш делился поровну между игроками.Хотя эта ошибка будет повторяться нечасто (все-такивероятность того, что у игроков будут две одинаковые посиле комбинации, мала), лучше все же реализовать ее поправилам. После того, как был протестирован алгоритмсимуляции, запустим несколько десятков раундов в оболочкеHoldemConsole. Игроки там распределены следующимобразом:Добавление игроков для игры в HoldemConsoleplayersList.add(new RationalLogic());playersList.add(new FoldLogic());playersList.add(new CautiousLogic());playersList.add(new CallLogic());playersList.add(new CautiousLogic());playersList.add(new AggressiveLogic());XÀÊÅÐ 08 /139/ 10После второй симуляции:1-é — $5702-é — $5603-é — $5804-é — $24505-é — $5906-é — $11107-é — $08-é — $8909-é — $0ÂÛÂÎÄТеперь самое главное — интерпретация результатов.Выше можно заметить, что самый успешный игрок— CallLogic, за ним следует RaiseLogic (в первомслучае) и AggressiveLogic (во втором случае). Почемутак? Ведь самый оптимальный алгоритм у нас — этоRationalLogic и, по идее, он должен всех обыгрывать?Да, это так, но на данном этапе этот алгоритмне учитывает одной важной составляющей — историирук, то есть того, как ходят остальные игрокипри тех или иных картах и текущих ходах игроков. Аведь история рук позволяет узнать, что значат ходыигроков — блефуют ли они (то есть колируют и рейзятсо слабыми руками) или у них действительносильные карты. Больше информации об игроках, потеореме покера, приводит к лучшим ходам. Так какон это не учиты вает, а основывается только на ставкахи размере банка, то получается, что он много рукне разыгрывает, а сбрасывает. В отличие от другихигроков — CallLogic, RaiseLogic и AggressiveLogic.Они же разыгрывают большой диапазон рук, то естьблефуют. Кстати, хотел бы сделать небольшое замечаниек своей прошлой статье. В условии определениядействия вместо SB нужно использовать minRaise,где minRaise — минимальный размер ставки, которыйнужно сделать при рейзе. Он равен последней ставкеигрока, который ходил до нас. В общем, твори, дорабатывайлогику и обязательно пиши нам письма, ведьименно благодаря твоим отзывам — от критичных идаже агрессивных до позитивных и даже благодарных:) — мы приняли решение и дальше развивать темукодинга покерных ботов. Если все пойдет нормально,то в следующей статье мы реализуем взаимодействиес клиентом покер-рума — считывание информации инажимание на кнопки. zDVDdvdНа диске тебя ждутисходники. Они снабженыподробнейшейдокументациейв формате JavaDocи комментариямив коде, так что разобратьсяс ними несоставит труда. Текстпрошлой статьилежит там же.HTTP://WWWlinksМного документациипо покеру на сайтеhttp://poker-wiki.ru111

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!