

Leanpoker — это не простое состязание игроков в Безлимитный Техасский Холдем. Это соревнование программистов, которые должны были написать покерного бота, целью которого было переиграть ботов-соперников. Особенностью турнира также является и то, что нет принципиальной разницы в том, на каком языке программирования пишет команда. Следовательно и языков программирования в турнире было представлено несколько, чуть меньше, чем число команд. А всего в турнире приняли участие 6 команд:
- sevenbits — JavaScript
- JBot — Java
- Awesome incredible Poker Bot — Ruby
- PythonPokerTeam — Python
- Boris — Ruby
- LeanNodeJS — JavaScript
Но от того, что непосредственно в покер бились боты, накал страстей был не меньше, поскольку игра ботов друг с другом начиналась сразу с началом турнира. Командам предстояло с первой же секунды выпустить в бой своих ботов, а потом дописывать их программный код и фиксить баги в течение всего турнира, посылая в бой коммит за коммитом, и так длился турнир шесть часов подряд.


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

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

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

Но на 15-ю минуту пятой секции команда Awesome incredible Poker Bot закоммитила что-то взрывное в своего бота и он начал резко идти к первым двум местам, сильно сбивая с позиций команду JBot, что заставило их посылать коммит за коммитом, чтобы исправить ситуацию.

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

Комментарии (27)
mifki
02.08.2015 08:11Я вот давно думал, а почему нет покеррумов, где были бы официально разрешены боты?
mikka
02.08.2015 10:48+2Не так давно проходил матч между очень сильным ботом и профессиональными игроками, при поддержке MS, в том числе — www.gipsyteam.ru/news/4528-hedz-ap-protiv-bota-lyudi-poka-silnee
Играли один на один, с зеркальным отражением рук на две пары человек-компьютер. Люди пока выигрывают.
Там же по ссылке можно перейти на описание железа для бота с фотографиями — и это далеко не ноутбук, а суперкомпьютер. Это к тому, что средний кодер в домашних условиях и за пару часов может написать успешного бота, как писали в комментариях выше — на самом деле нет.Legotckoi
02.08.2015 10:57Остаётся только этого бота запустить в турнир на микролимитах, где 20000 человек и в первых раундах за столом из 9ти человек 4 идёт олл-ин. В общем полный рандом… сомневаюсь, что в таком случае бот тоже будет успешен. Его в итоге задавит повышение блайндов.
edogs
02.08.2015 15:01Так в таких лимитах и старые покерные волки не всегда доходят даже до середины. Именно потому что рандом.
stepik777
02.08.2015 11:38То есть выходят игроки не готовятся к турниру? А тот, кто заранее подготовится всех сделает.
AnnieOmsk
02.08.2015 12:30+1Игрокам заранее было выслано все, что необходимо. Кроме того, это не был турнир по покеру! Автор статьи немного сместил акценты с того, ради чего на самом деле все это затевалось.
Смысл мероприятия не в создании лучшего покерного бота! А в понимании на практике Continuous delivery, покрытия тестами и многих других практик командной разработки. Очень жаль, что статья вообще не упоминает об этом. Именно эти вещи по итогу больше всего запомнились участникам. Многие говорили, что по-другому взглянули на командную работу, оценили, насколько могут помочь тесты и т.д.
MaxFactor
02.08.2015 14:18Живу в Омске — слышу впервые про данное мероприятие, а так бы или поучаствовал или хотелось бы посмотреть.
AnnieOmsk
02.08.2015 14:39Мы как могли трубили о нем в группах ИТ-субботников, IT-лофта, репостили все, кто мог. Подпишитесь на группы и будет вам счастье, у нас и не только это мероприятие проходило :-)
nem
04.08.2015 16:59О, всем привет в этом чате. У меня есть возможность провести Lean Poker в Москве 27 сентября.
Дело за малым — нужно помещение на 25 программистов с ноутбуками. Если у вас есть подходящая площадка, дайте мне знать в личку. Спасибо.
kenoma
И насколько хорош получился бот-победитель для реального рума?
Legotckoi
Считаю, что для реального рума он бы не подошёл. За шесть часов для реального рума такое не наваяешь.
kenoma
Но все равно, было бы интересно оценить уровень по сравнению с реальным человеком.
Legotckoi
Многие участники начали задаваться подобным вопросом к концу турнира. Мне тоже это было бы интересно. Но только тестирование с человеком даст реальную оценку, чего не делалось.
AnnieOmsk
Там все же была реализована стратегия реального человека. Поэтому, вполне возможно, что нормально бы он с людьми играл :-)
Legotckoi
Проверить бы всё-таки… А то там такие порой странные олл-ин проскакивали, что так обычно фиши играют.
Trueteller
Невозможно за 6 часов написать бота, который хоть как-то сгодится против человека, даже если тот тоже сел играть в первый раз 6 часов назад.
Бот, успешно играющий против регуляров покер-румов — это человеко-годы нетривиальной работы. Особенно в безлимитные разновидности покера. Ну, может человеко-месяцы для низших лимитов. Плавали, знаем.
kenoma
Алгоритм CFRM ( h t t p ://modelai.gettysburg.edu/2013/cfr/cfr.pdf) пишется за пару часов любым кодером, который знаком со структурами данных вроде деревьев. Остальное время можно потратить на обучение бота и будет вполне себе средненький бот для игры в покер.
Trueteller
Я так понимаю, это теоретический комментарий? Попробуйте на досуге составить
«Si is a finite set of actions or choices for player i
A = S1 ?... ? Sn is the set of all possible combination of simultaneous actions of all players»
для безлимитного текасского покера.
Готов сыграть против вашего бота (я менее чем средненький игрок).
kenoma
Насколько сильными вы находите ботов из Poker Academy? Если слабыми, то и мой бот будет слабым.
Размер cfr-таблиц у такого бота с грубой абстракцией занимает порядка 20-30 Гигов. На тот момент, когда я этим интересовался, процесс обучения до вненяемого результата в PA занимал порядка двух-трех суток в один поток с использованием memory mapped files и без всяких монте-карло.
Trueteller
Не знаком с ними, но
1. Думаю, потратили на них значительно больше времени.
2. В румах против людей они не побьют вообще ничего. Тем более, гугл говорит они 2006 года.
aydinka
Если вы тот самый Trueteller из PS, то ни один покер бот не сможет вас выиграть.
AnnieOmsk
Посмотрите мой комментарий ниже, пожалуйста, чтобы не повторяться. Не в создании хорошего бота был весь цимес :-)
Trueteller
Да я понимаю и не против. Просто отвечал на вопрос. Вы молодцы :)