Написать свой Hand History

    • grungernet
      grungernet
      Бронза
      На форуме с: 13.06.2013 Сообщения: 90
      О себе, вот мой аккаунт на free-lance:
      [тут должна быть ссылка, но в правилах написано, что нельзя себя рекламировать]

      Идея следующая. Holdem Manager - это катастрофа и апогей быдлокодерства. Я не по части охватываемого функционала, а по части качества реализации. "Руки бы им поотрывать".

      И вот возникла мысль написать нечто подобное (много более скромное, но в сто раз более быстрое) и своё. Как архив хэнд хистори. Это, поверьте мне, не очень сложно (вообще не сложно). Вопрос только во времени, которого, увы, не всегда хватает.

      Но мысль меня эта мучает давно, потому что я как-то привык писать себе инструменты сам. Собственно, хотелось бы спросить, нужно это кому-то другому ещё или как. Какие может идеи.

      То, что я хочу: грабить hand history покерстарса (пока что только его), парсить по сессиям и столам, оставлять только руки, которые не были сброшены на префлопе. И собственно группировать всё это в удобном и, главное, быстро виде. С дальнейшим проигрыванием. По сути собирать статы и выводить их - это день работы, нужно лишь знать все формулы, которые надо подсунуть в программу :)

      Есть люди, которые ОЧЕНЬ хорошо знают покерную математику?

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

      Я не говорю, что сделаю холдем менеджер за месяц, нет. Но я сделаю удобный архив и для жителей pokerstrategy бесплатно. От вас лишь требуется фидбек, багтестинг (программист не должен тестировать свой софт), идеи и поддержка (моральная, для начала).
  • 20 ответов
    • jan308
      jan308
      Бронза
      На форуме с: 20.06.2008 Сообщения: 851
      Не очень понимаю саму идею. Ну да, возможно ХМ написано криво и так далее. Но если ты не собираешься делать прогу с таким же функционалом, то что?
      То бишь, зачем нужна аналогичная программа, но с меньшим функционалом?
      Или я чего-то не понимаю?
    • LetsPlayGirls
      LetsPlayGirls
      Бронза
      На форуме с: 08.03.2009 Сообщения: 631
      Напиши в скайп letsplaypoker2 или оставь здесь свой.
    • grungernet
      grungernet
      Бронза
      На форуме с: 13.06.2013 Сообщения: 90
      Пока давайте без скайпа, хочу здесь для начала обсудить всё :)

      То, что я хочу:
      1) взять txt файл из истории раздачи и показать все раздачи.
      2) проигрывать их заново.
      3) ставить статусы, пометки и т.д.;

      Это в самом начале, собственно. На это у меня уйдет дня два-три максимум.

      Может есть кто, кто смог бы нарисовать покерный стол на 10 человек. Вид сверху?

      И это кому-то интересно? На данном этапе хотя бы. Потом будет навешивать разное всякое :)
    • JLivingstone
      JLivingstone
      Black Member
      На форуме с: 19.04.2009 Сообщения: 2.886
      Подписался на тему.
      А на код взглянуть можно будет? Или есть серьёзные планы на коммерческий проект, все дела?..

      Вообще, думаю, что-нибудь интересное придумать можно :rolleyes:
    • eedgar
      eedgar
      Бронза
      На форуме с: 12.01.2010 Сообщения: 398
      Оригинал пользователя grungernet
      ..
      То, что я хочу: грабить hand history покерстарса (пока что только его), .. По сути собирать статы и выводить их ... нужно лишь знать все формулы, которые надо подсунуть в программу :)

      Есть люди, которые ОЧЕНЬ хорошо знают покерную математику?

      .
      бот будешь писать ? :coolface:
    • grungernet
      grungernet
      Бронза
      На форуме с: 13.06.2013 Сообщения: 90
      Оригинал пользователя eedgar
      Оригинал пользователя grungernet
      ..
      То, что я хочу: грабить hand history покерстарса (пока что только его), .. По сути собирать статы и выводить их ... нужно лишь знать все формулы, которые надо подсунуть в программу :)

      Есть люди, которые ОЧЕНЬ хорошо знают покерную математику?

      .
      бот будешь писать ? :coolface:
      если из этого сделать бот, то это будет очень странный бот... ) который будет по факту говорить: "Ну как жеж так!". ПокерСтарс добавляет в лог только отыгранные уже руки. И это правильно :) Вот эти файлы и очень нужны для разбора и анализа.

      Плюс я делаю открытый продукт.. для всех) Пущай глядят кто хочет :)
    • Advancer
      Advancer
      Бронза
      На форуме с: 25.10.2007 Сообщения: 132
      Оригинал пользователя grungernet
      То, что я хочу:
      1) взять txt файл из истории раздачи и показать все раздачи.
      2) проигрывать их заново.
      3) ставить статусы, пометки и т.д.;

      Это в самом начале, собственно. На это у меня уйдет дня два-три максимум.
      Может понадобится не один месяц чтобы понять по каким алгоритмам записывается хендхистори и выяснить все нюансы.
      Говорю как разработчик собственного HUD'а :)
    • grungernet
      grungernet
      Бронза
      На форуме с: 13.06.2013 Сообщения: 90
      Оригинал пользователя Advancer
      Может понадобится не один месяц чтобы понять по каким алгоритмам записывается хендхистори и выяснить все нюансы.
      Говорю как разработчик собственного HUD'а :)
      Я уже парсер раздач для PS написал. Пару десятков регулярок).. И оформил всё в красивенькую ООП либу. И примитивный интерфейс накалякал. С кнопкой "открыть-выбрать txt-показать в таблице". Целый день вот сижу) Лишь бы начальство не узнало :D

      Рад знакомству! :)
    • LetsPlayGirls
      LetsPlayGirls
      Бронза
      На форуме с: 08.03.2009 Сообщения: 631
      Парсер раздач это самое простое из всего что есть у хм2. Тем более для пс. ХХ у пс самая простая из всех румов, без ошибок и неоднозначностей. И то нужно долго тестировать на предмет всяких редких ситуаций в хх, в которых парсятся с ошибками. Кстати, парсинг через регулярные выражения не самый производительный из всех методов.

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

      Но самое сложное это отбирать раздачи в репортах автоматически. Т.е. в базе должны быть продуманы индексы, которые позволят быстро проверять раздачу на предмет попадания под фильтр. Представь себе еще базу из 20кк рук.

      Это только три пункта. Есть еще куча. Например, вывод статов в худ не самая простая часть. Вообще странно, что фрилансер с многолетним стажем утверждает, что софт уровня хм2 это протота и пара месяцев работы. Я сам разработчик софта http://www.hand2note.com/ и хотел тебе предложить сотрудничество как опытному программисту, играющему в покер на регулярной основе. Если знаешь c# wpf и готов работать над покерным проектом очень похожим на хм за сдельную оплату пиши в скайп, что я оставил выше.
    • grungernet
      grungernet
      Бронза
      На форуме с: 13.06.2013 Сообщения: 90
      Оригинал пользователя LetsPlayGirls
      Но самое сложное это отбирать раздачи в репортах автоматически.
      ХМ сильно ошибся с БД. И со структурой, думаю. MSSQL был бы отличнейшим вариантом, та беда, что не договорятся они с майкрософтом. Уж больно дорогое удовольствие. Там такие вещи решаются очень быстро.

      Оригинал пользователя LetsPlayGirlsВообще странно, что фрилансер с многолетним стажем утверждает, что софт уровня хм2 это протота и пара месяцев работы.
      Я говорил ТОЛЬКО за hand history, а не HUD. И какие там месяцы работы.. неделя :D Холдем менеджер по сути своей не сложная программа. Там нет серьёзных задач. Там есть много опыта, которого, скажем, у меня нет. Всё остальное - бытовуха и в сравнении с моими коммерческими разработками софта для, скажем, цифрового томографа - фигня :) Т.е. сложность вся именно в формулах, представлениях.. графики, индексы, коэффициенты. Я не регуляр и покер не моя профессия. Мне вполне достаточно иметь действительно просто удобный хэнд хистори, чтобы фиксить свои ошибки. А статы выводить, считать.. ну по сути - что сложного, если в любой момент времени ты знаешь КТО, СКОЛЬКО и ОТКУДА ставил :) Тем более покер игра не быстрая, раздача в среднем - это минута. Даже если играешь пятьдесят столов одновременно. Нагрузки крошечные.

      По производительности пока ещё не знаю. Надо будет - перепишу на построчный анализ руки. Но пока что 250+ рук турнира открываются без вообще видимого какого-либо тормоза. Появится тормоз прикрутим прогресбар да мультитрединг или ещё чего.

      По поводу предложения спасибо (я пишу сейчас в основном, таки, на C#.. правда WPF юзаю крайне редко, всё больше WinForms да ASP.net), но, увы, сейчас очень завален всеми своими проектами :(

      За вчера накалякал всю объектную часть для парсинга руки (классы карта, рука, оппонент и, собственно, парсер). Набросал уже ближе к вечеру интерфэйсэ:



      Серым - руки сброшенные на префлопе без каких-либо бетов (независимо от блайндов)
      Черные - проигранные руки :)
      Зелёненький фон - выигранный.


      Сегодня исправил верный подсчет всех мувов: беты, блайнды, анте, колы, рейзы, олины. Теперь правильно считает (на скриншоте ещё есть расхождения). Плюс ещё добавил почти 10 колонок :) Думаю на этой неделе больше времени не получится уделить, т.к. всё таки работа(...

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

      Цель на ближайшее время:
      • Продумать интерфейс;
      • Определиться с БД; Приоритет: скорость, простота установки без массы лишних движений и возможность обновления структуры "на лету";
      • Написать проигрыватель раздач;
    • morgann55
      morgann55
      Бронза
      На форуме с: 07.09.2010 Сообщения: 710
      Привет!! Такой стол подойдёт ??
      [img][IMG]http://img22.imageshack.us/img22/605/mmi7.png[/IMG][/img]
      (я на НЁМ реплеер сделал....)
      чего-то криво картинку вставил :f_mad:
    • TheMisha
      TheMisha
      Бронза
      На форуме с: 12.06.2011 Сообщения: 1.749
      grungernet, привет. Хорошее дело, поддерживаю. ХМ2 глючит даже на 12 столах. Иногда люблю по 50+ столов СНГ например открывать. Статистику вывести при таком количестве невозможно, зависает.
    • ChaCry
      ChaCry
      Бронза
      На форуме с: 17.04.2010 Сообщения: 233
      Оригинал пользователя LetsPlayGirls
      Парсер раздач это самое простое из всего что есть у хм2. Тем более для пс. ХХ у пс самая простая из всех румов, без ошибок и неоднозначностей. И то нужно долго тестировать на предмет всяких редких ситуаций в хх, в которых парсятся с ошибками. Кстати, парсинг через регулярные выражения не самый производительный из всех методов.

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

      Но самое сложное это отбирать раздачи в репортах автоматически. Т.е. в базе должны быть продуманы индексы, которые позволят быстро проверять раздачу на предмет попадания под фильтр. Представь себе еще базу из 20кк рук.

      Это только три пункта. Есть еще куча. Например, вывод статов в худ не самая простая часть. Вообще странно, что фрилансер с многолетним стажем утверждает, что софт уровня хм2 это протота и пара месяцев работы. Я сам разработчик софта http://www.hand2note.com/ и хотел тебе предложить сотрудничество как опытному программисту, играющему в покер на регулярной основе. Если знаешь c# wpf и готов работать над покерным проектом очень похожим на хм за сдельную оплату пиши в скайп, что я оставил выше.
      Почему на сайте нет русского языка?
    • inevity
      inevity
      Бронза
      На форуме с: 09.06.2010 Сообщения: 3.473
      Как программист баз данных с большим стажем: что mssql, что mysql будут работать очень быстро на миллионах записей(если с руками нормально). Я работаю с ms, но это дорого, позволяет тонкую настройку, но для такой примитивной задачи в плане баз данных mysql-я хватит за глаза.

      Ну и если продукт на продажу вдруг(что обычно, маловероятно, но тем не менее), то mssql тут явно будет жирнючим минусом.
    • stanisluv
      stanisluv
      Модератор
      Модератор
      На форуме с: 18.06.2008 Сообщения: 46.604
      Всем привет.

      Тут правильно люди сказали. Самая главная проблема это расчёт статов. формулы есть, но они старые. А касательно простого просмотра истории рук-для этого есть SideKick.
    • Nik1952
      Nik1952
      Модератор
      Модератор
      На форуме с: 15.06.2009 Сообщения: 4.201
      Хотел бы заметить, что не надо ругать чужих программ, тем более ХМ. Это, по меньшей мере, неэтично и некрасиво. Многие им пользуются и довольны. Пока лучше программы нет. Может быть ПТ. Утверждать, что можно написать что-то сравнимое менее, чем за год - это полный непрофессионализм и шапкозакидательство. Математика здесь особая не нужна. Никаких вероятностей ХМ не считает, ну или почти не считает. Разбор файла истории PokerStars не так и сложен, но разбор всех румов, которые поддерживает ХМ, это уже другая песня. Закопаетесь!
      Мы пишем сейчас помощника в игре типа ХМ. Считаем порядка 100 статистик. Разбираем истории PokerStars, PartyPoker, OnGame, iPoker. Но ХМ считает их значительно больше. Другой вопрос, надо ли столько.К тому же меня в последнее время посещают мысли, что можно написать помощника, как дополнение к ХМ. Могу сказать, что хотя у нас коллектив из 5 программистов, дело идет не очень быстро. Правда, у нас это хобби. Да и другие программы по покеру пишем. Здесь же на форуме можно посмотреть fpdb - свободный аналог ХМ.
      Теперь в отношении БД. Mysql уже начинает вовсю заменяться более новой MariaDB, которая имеет ту же БД, но более производительна. Она создана теми же людьми, что и Mysql, после того как он был куплен фирмой Oracle. Форум покерный, поэтому подробно не пишу. Наберите это имя, и Гугл вам даст массу информации. Или посмотрите журнал "Хакер" №3, 2011.
      Как итог хочу дать совет. Забудьте о ХМ. Найдите хотя бы здесь на форуме предложения по созданию покерного софта. Отличный пример для меня - это программы LikeAA. Человек и в покер играет на высоком уровне и софт пишет замечательный. Посмотрите, сколько людей им пользуется!
    • grungernet
      grungernet
      Бронза
      На форуме с: 13.06.2013 Сообщения: 90
      Оригинал пользователя Nik1952
      Хотел бы заметить, что не надо ругать чужих программ, тем более ХМ. Это, по меньшей мере, неэтично и некрасиво. Многие им пользуются и довольны. Пока лучше программы нет. Может быть ПТ. Утверждать, что можно написать что-то сравнимое менее, чем за год - это полный непрофессионализм и шапкозакидательство.
      Да кто ругает то... ) Пользуйтесь! :) ХМ - это пример плохой коммерческой разработки. Это объективно. Да, монополист. Но глюки и неповоротливость - это плохо. Я никого не призываю. Я понимаю, что на данный момент - это лучший инструмент. Но это временно, думаю на рынок выйдут монстры и титаны, которые сделают своё дело :)

      Моё же дело - очень маленькое.

      Ещё раз - большими буквами - я не собираюсь писать аналог ХМ, я пишу только хэнд хистори. У меня нет и НА ЭТО особо времени ) Так, что пишется в первую очередь то, что надо мне (очень эгоистично и нагло, но я думаю, что есть люди, с которыми у нас пересекаются желания). И мне не хочется ставить весь гармыдр с PostgreSQL и иметь такую ресурсоёмкую программу на фоне. Я пишу маленькую утилиту, суть которой - выводить и проигрывать все руки после турнира. И только для PS, потому что я играю на покерстарс, а с другим покеррумами нет времени разбираться :)

      К слову, вопрос БД всё ещё открыт для меня. Вот то, что уже готово.. пока что ничего не сохраняется, только отображается. Но уже мне помогает. Турнир закончил - вбил, поглядел в SNG wiz чё где натупил. Выглядит так:

      Настройка:


      Импорт данных (турниров):


      Внешний вид:
    • vpmarat
      vpmarat
      Модератор
      Модератор
      На форуме с: 22.01.2008 Сообщения: 83.737
      Оригинал пользователя grungernet
      ХМ сильно ошибся с БД.
      ХМ не ошибался, просто так исторически сложилось, что для покерных программ применяется postgresql - и поломать это уже нереально.
      Подробнее см тут

      И то, в ХМ2 только половина инфы в базе Postgres хранится.
    • inevity
      inevity
      Бронза
      На форуме с: 09.06.2010 Сообщения: 3.473
      Оригинал пользователя vpmarat
      ХМ не ошибался, просто так исторически сложилось, что для покерных программ применяется postgresql - и поломать это уже нереально.
      Подробнее см тут
      Как я понял, если использовать Мускуль, то надо либо писать в опен сорсе, либо платить чето там.
    • 1
    • 2