Регистрация
Получить HM2
Регистрация Поиск Пользователи Все разделы прочитаны  
CGM > Покер > Программы и железо для игроков > Покер софт
Опции темы

Делаю NL Poker для себя и друзей

Важные объявления
Старый 01.10.2019, 01:10     TS Старый   #1 (permalink)
Незнакомец
 
Аватар для DocS
 
Регистрация: 01.10.2019
Сообщений: 23
Решил вести лог разработки онлайн покера Техаский Холдем в этой теме.
Разработка для себя и друзей.
Поиск решений в реализации онлайн покера.
Т.е. полное создание покера с нуля.

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

Основные параметры, с которых начал разработку:

- NL SNG (MTT предполагаю после реализации SNG)
- Столы до 5 и до 9 игроков

Бай-ины:
sb/bb - min/max

- 5/10 - 100/2K
- 25/50 - 500/10K
- 100/200 - 2K/40K
- 500/1K - 10K/200K
- 2K/4K - 40K/800K
- 10K/20K - 200K/4M
- 50K/100K - 1M/20M
- 250K/500K - 5M/100M
- 1M/2M - 100M/1B

Прогресс разработки:

На данный момент готовы главное меню и лобби

Сейчас пишется игровой процесс, собственно этот игровой процесс и в поисках истины привел меня сюда, когда разрабатывается сама логика и верные правила игры.
В игре возникают постоянно те или иные ситуации, с несколькими победителями и банками, вот тут и начинается самое интересное. Надеюсь с вашей Pro помощью сумею создать правильный покер.
DocS вне форума      
Старый 01.10.2019, 03:39     TS Старый   #2 (permalink)
Незнакомец
 
Аватар для DocS
 
Регистрация: 01.10.2019
Сообщений: 23
Что-то я запутался в выборе между SNG и CASH (изначально подумал это одно и то).

Будет Room: CASH Poker NL Texas Hold'em

Задача - сделать играбельный покер за 1 месяц, а там поглядим что из этого выйдет.

Спасибо модераторам за постановку темы в подходящий раздел.

С завтрашнего дня постараюсь сопроводить прогресс скринами.
По завершении надеюсь возможно будет играть.

На данный момент готовы алгоритмы:

- перемешивание карт с помощью RNG основанного на криптоалгоритмах с огромными числами, в отличии от стандартного компьютерного рандома. Модифицировал перемешивание алгоритмом Фишера Ятеса, прикрутил к нему крипто рандом.

- определения рук каждого игрока, т.е. пишет игроку какая у него рука на основе выданных карт и на столе (извиняюсь за не покерный сленг, тк новичек)

- алгоритм определения победителя (победителей) на основе всех карт на столе по завершении игры

Не завершены:

- алгоритм правильной передачи батона дилера, т.к. до конца не освоил все тонкости игры

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

- доступны кнопки fold, check, call, raise, но неверно рассчитывается когда возможно делать чек, а когда нельзя
DocS вне форума      
Старый 01.10.2019, 04:21     TS Старый   #3 (permalink)
Незнакомец
 
Аватар для DocS
 
Регистрация: 01.10.2019
Сообщений: 23
Lobby v01. Изучаем тонкости игры в Техасский Холдем - Создавая Poker Room
Миниатюры
Нажмите на изображение для увеличения
Название: lobby-v01.png
Просмотров: 3
Размер:	1.72 Мб
ID:	151246  
DocS вне форума      
Старый 01.10.2019, 04:32     TS Старый   #4 (permalink)
Незнакомец
 
Аватар для DocS
 
Регистрация: 01.10.2019
Сообщений: 23
Room v01. На скрине победитель Игрок-7. Думаю алгоритм определения высшего ранга(ов) работает верно. Далее над распределением банка подумать.

Да тут еще далеко до нормального результата. вероятно завтра придётся написать локальных простых ботов для тестирования, т.к. в одного оттестировать даже начальный процесс нереально. Основать локальных ботов на простом выборе рандомом из возможных доступных действий call, raise, check, fold. Затем начну прописывать правила хода вот тут то я и завис...

Не забыть о правильной связке логики с графикой. Движок пишется с нуля на низкоуровневом Open GL, хотя не 3D тут просто канва 2D, без анимаций и звука тоже не обойтись, буду думать дальше...

Сейчас это работает так:

- старт игры
- перемешивается колода
- делается small blind Player7 слева от дилера (Player6), затем big blind Player8
- каждому игроку передается по 2 карты
- далее ход Player9 и далее до Player6 дилера
- затем дилер тоже делает call и происходит flop, на столе первые 3 карты
- алгоритм снова повторяется от игрока к игроку и после дилера turn, затем river
Миниатюры
Нажмите на изображение для увеличения
Название: room-v01.png
Просмотров: 2
Размер:	1.67 Мб
ID:	151247  
DocS вне форума      
Старый 01.10.2019, 06:35     TS Старый   #5 (permalink)
Незнакомец
 
Аватар для DocS
 
Регистрация: 01.10.2019
Сообщений: 23
Цитата:
Сообщение от DocS Посмотреть сообщение
Room v01
предыдущая последовательность неверная, новая:

- старт игры
- перемешивается колода
- small blind слева от дилера PnD+1, затем big blind PnD+2
- каждому игроку передается по 2 карты
- pre-flop
- далее ход PnD+3 и далее до Pn Big Blind
- flop
- алгоритм снова повторяется от игрока к игроку и после BB - turn
- затем river

Добавить сервер с REST API да базу key/value и на нем перемешивать колоду, вероятно лучший выбор протокол WS и база Level DB
DocS вне форума      
Старый 01.10.2019, 19:40     TS Старый   #6 (permalink)
Незнакомец
 
Аватар для DocS
 
Регистрация: 01.10.2019
Сообщений: 23
Всё оказалось проще с определением завершения раунда pre-flop: достаточно проверить все ли уравняли ставки и только тогда открывать первые 3 карты; показывать сформированный банк.

Теперь переходим к 2му - flop. Мои нубские знания в покере хуже чем предполагал.
DocS вне форума      
Старый 02.10.2019, 15:07     TS Старый   #7 (permalink)
Незнакомец
 
Аватар для DocS
 
Регистрация: 01.10.2019
Сообщений: 23
Цитата:
Сообщение от DocS Посмотреть сообщение
Всё оказалось проще с определением завершения раунда pre-flop: достаточно проверить все ли уравняли ставки и только тогда открывать первые 3 карты; показывать сформированный банк.
На flop сложнее, здесь необходимо держать в памяти, если новый раунд, показывать check, fold, bet, raise

Добавил логирование ходов игроков и отображение, кто какое действие выполнил call,raise etc. Так лучше видеть игру. Формируемый main pot пока отображаю с каждой ставкой для проверки правильности суммирования.
DocS вне форума      
Старый 02.10.2019, 15:19     TS Старый   #8 (permalink)
Незнакомец
 
Аватар для DocS
 
Регистрация: 01.10.2019
Сообщений: 23
Забыл добавить обновление pot-bank с raise, all-in, добавил
Изображения
 
DocS вне форума      
Старый 02.10.2019, 16:38     TS Старый   #9 (permalink)
Незнакомец
 
Аватар для DocS
 
Регистрация: 01.10.2019
Сообщений: 23
Очень важно правильно спроектировать структуры данных на этапе создания, такие как внутренние: room, players, sits, gameplay и внешние: относительные координаты расположения карт, игроков, стола, кнопок и остальных визуальных элементов, относительные потому что у всех разное разрешение экрана. Не забыть про скалярность масштабирование элементов от 1920x1080 до мобильных устройств 720x480. Генерацию предустановленных румов производить на сервере: тема стола (синий, красный, зеленый, золотой), макс число мест 5/9, блайны min/max, число фишек на вход min/max, затем использовать их в фильтре client lobby.

На стороне сервера добавить контроль/защиту от подтасовывания карт в процессе игры, с помощью хэширования получения контрольной суммы + salt, shuffled колоды перед раздачей
DocS вне форума      
Старый 03.10.2019, 18:10     TS Старый   #10 (permalink)
Незнакомец
 
Аватар для DocS
 
Регистрация: 01.10.2019
Сообщений: 23
WS сервер создать удалось, теперь перенос всей логики на него.
Румы разбил на levelы, левелы это макс и минимальная сумма фишек байин
в каждом левеле столы от 9 до 5 игроков у каждого стола свой id из начальных данных предустановленных массивов объектов и дополнительных как зашедших игроков, обмен данными проводим упакованным json, соответственно при открытии lobby отображаем кто за какими столами играет исходя из данных ws сервера, теперь можно выбрать уровень начального игрового баланса бай ин
Изображения
 
DocS вне форума      
Старый 03.10.2019, 22:02   #11 (permalink)
Супер-модератор
 
Аватар для eclibrise
 
Регистрация: 18.12.2007
Адрес: Севастополь
Сообщений: 38,204
Бронзовый кубок Серебряный кубок 
Отправить сообщение для eclibrise с помощью ICQ Отправить сообщение для eclibrise с помощью Skype™
Мне кажется,что твой проект глубже ,чем "домашняя игра".) Продуктивнее ,наверное, найти специализированный форум для фидбека! К сожалению не знаю,что посоветовать.
eclibrise вне форума      
Старый 06.10.2019, 23:04     TS Старый   #12 (permalink)
Незнакомец
 
Аватар для DocS
 
Регистрация: 01.10.2019
Сообщений: 23
Цитата:
Сообщение от eclibrise Посмотреть сообщение
Мне кажется,что твой проект глубже ,чем "домашняя игра".) Продуктивнее ,наверное, найти специализированный форум для фидбека! К сожалению не знаю,что посоветовать.
Просто пришел к вам на форум в поисках правильной логики игры, а информации как поглядел у вас достаточно много по покеру, удаётся освоить хоть и не быстро. По кодингу и созданию приложения проблем нет, а вот по играбильности есть.

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

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

Надеюсь эта тема не смутит сообщество, ведь при успешном завершении вероятно получится движок покер рума, который возможно модифицировать и модернизировать исходя из знаний участников форума.
DocS вне форума      
Старый 07.10.2019, 01:21   #13 (permalink)
Супер-модератор
 
Аватар для eclibrise
 
Регистрация: 18.12.2007
Адрес: Севастополь
Сообщений: 38,204
Бронзовый кубок Серебряный кубок 
Отправить сообщение для eclibrise с помощью ICQ Отправить сообщение для eclibrise с помощью Skype™
Цитата:
Сообщение от DocS Посмотреть сообщение
необходимо ли сжигать карту в колоде перед раздачей как в настоящем покере,
Поясни?
Цитата:
Сообщение от DocS Посмотреть сообщение
возможно ли создать онлайн покер рум за короткое время, имея навыки разработки приложений, серверов но не игрока
Без колоссальных финансовых вливаний на маркетинг "выхлопа" от приложения не будет. Это с уверенностью можно утверждать.
eclibrise вне форума   +1 (+1/-0)    
Старый 07.10.2019, 02:13     TS Старый   #14 (permalink)
Незнакомец
 
Аватар для DocS
 
Регистрация: 01.10.2019
Сообщений: 23
Цитата:
Сообщение от eclibrise Посмотреть сообщение
Поясни?

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

На данный момент цель создать рум, к маркетингу придём, но потом, в случае успешной разработки правильного рума. (И да это не заказ на разработку, просто такая цель на данный момент времени) Можно сказать оттачивание навыков в связке нескольких новых технологий. А по маркетингу, когда придет время, будет, хотя не вижу всё это в строю с другими румами, т.к. есть другие интересные пути, но всему своё время. Сначала создание, всё будет откомпилировано под: Win, Nix, MacOs, Android, IOS, подготовил единую кодовую базу для всего, так проще в будущих модификациях, поддержке и развитии.
DocS вне форума      
Старый 07.10.2019, 02:15     TS Старый   #15 (permalink)
Незнакомец
 
Аватар для DocS
 
Регистрация: 01.10.2019
Сообщений: 23
Цитата:
Сообщение от eclibrise Посмотреть сообщение
Поясни?
Смотрел видеоуроки, как перетасовывают колоду в офф-покере, там перед раздачей снимают, делят колоду на пополам, половины меняют местами после перемешивания, убирают первую в раздаче карту (сжигают), а потом раздают, вот думаю влияет ли это на лучший рандом и стоит ли это делать в онлайн приложении
DocS вне форума   +1 (+1/-0)    
Старый 07.10.2019, 02:20     TS Старый   #16 (permalink)
Незнакомец
 
Аватар для DocS
 
Регистрация: 01.10.2019
Сообщений: 23
И если возможно помогите кто может ответом, 2 игрока в руме, играют 1 на 1, выпали следующие руки:
и1: A;10
и2: К;9

на ривере 4;5;Q;Q;2

мой алгоритм основанный на принятых правилах считает обоих игроков победителями

с результатом Pair Q's оба, скрин прилагаю.
Верна ли моя логика?
Изображения
 
DocS вне форума      
Старый 07.10.2019, 02:49     TS Старый   #17 (permalink)
Незнакомец
 
Аватар для DocS
 
Регистрация: 01.10.2019
Сообщений: 23
Ой, забыл добавить, участники форума CGM, кто посодействует любыми ответами и информацией по поводу разработки играбельного рума и ответами на правда нубские вопросы в этой теме, будут добавлены навечно в приложение в список участников (ники) в раздел - помогли с разработкой рума + хороший стартовый банкролл (наверное это так называется, то на что можно играть, выигрывать или обменять на деньги), который вполне материален. Рум будет разработан, но насколько он будет хорош, думаю может зависеть от участников сообщества тоже.
DocS вне форума      
Старый 07.10.2019, 03:11   #18 (permalink)
Супер-модератор
 
Аватар для eclibrise
 
Регистрация: 18.12.2007
Адрес: Севастополь
Сообщений: 38,204
Бронзовый кубок Серебряный кубок 
Отправить сообщение для eclibrise с помощью ICQ Отправить сообщение для eclibrise с помощью Skype™
Цитата:
Сообщение от DocS Посмотреть сообщение
на принятых правилах
О каких правилах идет речь? Победил игрок (АТ) с комбинацией QQA >QQK.
eclibrise вне форума   +1 (+1/-0)    
Старый 07.10.2019, 03:34     TS Старый   #19 (permalink)
Незнакомец
 
Аватар для DocS
 
Регистрация: 01.10.2019
Сообщений: 23
Цитата:
Сообщение от eclibrise Посмотреть сообщение
О каких правилах идет речь? Победил игрок (АТ) с комбинацией QQA >QQK.
Правила к Техасский Холдем, 2 на руках 5 на столе.
Насколько понимаю по старшей карте, игрок АТ забирает банк.

Хех, премного благодарен, значит моя логика не всегда верна в расчёте победителя, придётся уделить доп время логике, так надеялся что всё точно считает.
DocS вне форума      
Старый 07.10.2019, 03:53     TS Старый   #20 (permalink)
Незнакомец
 
Аватар для DocS
 
Регистрация: 01.10.2019
Сообщений: 23
Цитата:
Сообщение от eclibrise Посмотреть сообщение
О каких правилах идет речь? Победил игрок (АТ) с комбинацией QQA >QQK.
Йухууу!!!!! Только что проверил тесты модуля отдельно от серверной части. Вы абсолютно правы ,победил 1 игрок, хотя сервер выдал 2 пополам.
В тестах все ок 1 игрок с АТ, значит я всего лишь допустил ошибку в получении списка победителей на сервере, при переносе логики на сервер.

Вот оно счастье, когда знаешь где ошибка. Действительно благодарю вас!

0: OnePair
alwaysQualifies: true
cardPool: Array(7)
0: Card {value: "A", suit: "d", rank: 13, wildValue: "A"}
1: Card {value: "Q", suit: "c", rank: 11, wildValue: "Q"}
2: Card {value: "Q", suit: "s", rank: 11, wildValue: "Q"}
3: Card {value: "T", suit: "d", rank: 9, wildValue: "T"}
4: Card {value: "5", suit: "d", rank: 4, wildValue: "5"}
5: Card {value: "4", suit: "s", rank: 3, wildValue: "4"}
6: Card {value: "2", suit: "d", rank: 1, wildValue: "2"}
length: 7
cards: (5) [Card, Card, Card, Card, Card]
descr: "Pair, Q's"
game: Game {descr: "standard", cardsInHand: 5, handValues: Array(9), wildValue: null, wildStatus: 1, …}
isPossible: true
name: "Pair"
rank: 2
sfLength: 0

Простыми словами, победитель 1, игрок АТ и значит модуль работает верно, но выдача не та у меня с сервера
DocS вне форума   +1 (+1/-0)    

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Чибурашго ищет друзей Khishtaki Saritanur Многостоловые турниры 1 18.08.2009 13:50
Что делаю не так? heydigi Безлимитный холдем микро бай-инов 23 31.07.2008 02:40
Фильм 11(одиннадцать) друзей Оушина не 12 и-13. Alabaha Поговорим за жизнь 10 27.11.2007 21:45
Что я делаю не так eLf1 Безлимитный холдем микро бай-инов 12 18.01.2007 14:09
Что я делаю не так? eddyku Limit Holdem, Omaha, 7-Card Stud и другие виды покера 2 17.08.2006 14:31


Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Trackbacks are Выкл.
Pingbacks are Выкл.
Refbacks are Выкл.

Быстрый переход
Правила форумов CGM Контакты Справка Обратная связь CGM.ru Архив Вверх Главная
 
Использование материалов сайта разрешено только при наличии активной ссылки на источник.
Все права на картинки и тексты принадлежат Информационному агентству CGM и их ПАРТНЕРАМ. Политика конфидециальности
CGM.ru на Youtube CGM.ru на Google+ CGM.ru в Twitter CGM.ru на Facebook CGM.ru в vKontakte CGM.ru в Instagram

В сотрудничестве с Pokeroff.ru
Текущее время: 06:41. Часовой пояс GMT +3.
Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2019, vBulletin Solutions, Inc. Перевод: zCarot