В Омске прошёл первый в России турнир по leanpoker

leanpoker

Иван Немытченко - организатор первого в России турнира по leanpoker 1 августа 2015 года в городе Омске состоялся первый в России турнир по leanpoker, организатором которого выступил Иван Немытченко. Турнир по leanpoker прошёл в IT Loft по адресу г. Омск, ул. Учебная 83.
Leanpoker — это не простое состязание игроков в Безлимитный Техасский Холдем. Это соревнование программистов, которые должны были написать покерного бота, целью которого было переиграть ботов-соперников. Особенностью турнира также является и то, что нет принципиальной разницы в том, на каком языке программирования пишет команда. Следовательно и языков программирования в турнире было представлено несколько, чуть меньше, чем число команд. А всего в турнире приняли участие 6 команд:

  • sevenbits — JavaScript
  • JBot — Java
  • Awesome incredible Poker Bot — Ruby
  • PythonPokerTeam — Python
  • Boris — Ruby
  • LeanNodeJS — JavaScript


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

Команда JBot Все эти шесть часов между ботами запускались мини-турниры, поначалу каждые две минуты, ботом всё чаще и чаще, пока интервал между мини-турнирами не достиг 10 секунд. Логика ботов в начале турнира была самой простой. Некоторые из ботов просто постоянно выставляли на ставку весь стек и балом правил полный рандом. Некоторые боты постоянно делали ставку в 50 фишек, что, к слову говоря, с самого начала принесло успех команде sevenbits и сохраняло им лидерские позиции длительное время. Пока вперёд не начала вырываться команда JBot. Участники этой самой малочисленной команды применили, как оказалось, довольно успешную стратегию. Их бот дожидался, когда другие соперники выбьют друг друга из игры и он не останется один на один с оставшимся игроком, ну, а дальше дело техники. Особенностью начисления балов за выигранный ботом мини-турнир было то, что бот, занявший первое место приносил команде 5 очков, а бот занявший второе место приносил команде 3 очка. Таким образом, команда стабильно зарабатывала очки, лишь корректируя нюансы стратегии в зависимости от того, как изменялось поведение ботов противника.

Команда sevenbits Говоря о поведении ботов противника, хотелось бы упомянуть тот факт, что командам была доступна история всех раздач, в том числе и то, с какими картами играли боты соперников. Таким образом, проанализировав стратегию и поведение ботов противника, команда корректировала алгоритм собственного бота.
Хотя не все команды использовали полностью историю раздач, а некоторые принимали решение о поведении ботов лишь на основании карманных карт. И… команда sevenbits в конце матча вырвалась вперёд, руководствуясь как раз именно этой стратегией.
Хотелось бы отметить, что было очень интересно наблюдать, как команды, особенно те, которые не имели большого опыта в покере, или не имели его вообще, приходили к классическим приёмам покера. Например, воровство блайндов в поздней позиции или корректировка агрессивности игры в зависимости от размера стека своего бота.

Команда PythonPokerTeamНекоторые из команд, несмотря на сложности, незнание некоторых участников целевого языка, на котором писался бот команды и даже полное переписывание ботов с нуля, показали достойную игру и жажду к победе. Некоторые из участников открыли удивительный мир новых для себя языков и проявили желание впоследствии ближе познакомиться с этими языками. А некоторые из участников осознали, что их собственное мнение о своих способностях занижено, что также является также плюсом данного турнира.
Но не подумайте, что команды бились без перерыва все шесть часов. Естественно, что турнир был разбит на временные отрезки по часу, между которыми команды отдыхали и рассказывали о том, какие приемы они применяют и какие сложности они испытывают со своими ботами. Кому-то это может показаться странным, что команды делились своими стратегиями, но на самом деле суть турнира заключалась не в том, чтобы кто-то выиграл, а в том, чтобы участники команд научились чему-то новому, иначе взглянули на свои методы работы, и впоследствии перенесли полученный опыт на свою рабочую деятельность.

Команда LeanNodeJS Так участники команды LeanNodeJS признались, что на JavaSripct в подобный условиях постоянных коммитов в мастер ветку, которая сразу «идёт в продакшн», можно очень здорово поотстрелять себе все ноги. Но несмотря ни на что, они остались очень довольны турниром, поскольку взглянули на свою работу под иным углом.
Команда Boris была той командой, которая высказывала интересные идеи по построению алгоритма работы ботов и постоянно искала новые приёмы, которые позволили бы совершенствовать игру бота. Но, конечно, другие команды также не дремали и старались сделать всё возможное для своей победы.

Команда Boris Длительность же турнира должна была состоять из четырех часовых секций, но команды изъявили желание провести пятую секцию, мотивируя это тем, что у них осталось лишь немного пофиксить баги своих ботов. Ни Иван, ни я не думали, что что-то кардинально изменится в расстановке сил между командами, поскольку команды все-таки уже устали за всё время, и скорее наделали бы ошибок, которые привели бы к краху их игры.
Но на 15-ю минуту пятой секции команда Awesome incredible Poker Bot закоммитила что-то взрывное в своего бота и он начал резко идти к первым двум местам, сильно сбивая с позиций команду JBot, что заставило их посылать коммит за коммитом, чтобы исправить ситуацию.

Команда Awesome incredible Poker Bot А чуть позже и команда sevenbits привнесла изменения в программный код своего бота, что вывело их на первую позицию по итогам турнира.
В самом конце наблюдение за турниром ботов было приостановлено, но сама баталия между ботами не была поставлена на паузу, как это делалось во время перерывов. Вместо этого ботов оставили биться друг с другом, а экран проектора и мониторы ноутбуков были погашены. Некоторое время все участники турнира рассказали свои впечатления о турнире и чему они научились. А потом был просмотр результатов, который весьма удивил всех участников крутым графиком бота команды sevenbits после их последнего коммита.
В итоге все участники мероприятия получили массу положительных эмоций и весьма интересный опыт разработки. И это будет не последний турнир по leanpoker.

Участники турнира по leanpoker


© Habrahabr.ru