http://akhtyrka.livejournal.com/ ([identity profile] akhtyrka.livejournal.com) wrote in [community profile] useless_faq2014-11-03 08:37 pm

Онлайн покер

Играл в покер. Техасский холдем.
Сначала игроки получают по 2 карты
потом открывается 3 на столе (флоп)
потом еще одна (терн)
и потом последняя (ривер).
Стало интересно, в какой момент компьютер/сервер знает какие выпадут карты?
Непосредственно перед открытием очередной порции карт на столе?
Или в самом начале раздачи сервер исход партии уже предопределен, если, конечно, никто не скажет "пас".

[identity profile] borzometr.livejournal.com 2014-11-04 09:39 am (UTC)(link)
Если верить тому как процесс описан на сайтах покер-румов - в начале определяется расположение карт в колоде, затем начинается раздача. Соответственно исход предопределён до раздачи, как только известен порядок колоды и количество игроков.

[identity profile] lyops.livejournal.com 2014-11-04 09:41 am (UTC)(link)
Насколько я помню, раздачи генерятся заранее, чтобы не вызывать задержки при обращении к серверу.

[identity profile] anton2ov.livejournal.com 2014-11-04 09:53 am (UTC)(link)
Любая азартная игра в компьютере имеет только одну важную переменную - процент, который онлайн-казино готово отстегивать пациентам, чтобы они продолжали туда ходить.

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

[identity profile] zhegloff.livejournal.com 2014-11-04 10:05 am (UTC)(link)
Покер не таков же как рулетка. В покер играют не с казино, а с другими игроками. Казино пофигу, кто там сколько выиграл.

[identity profile] cosmonazi.livejournal.com 2014-11-04 10:10 am (UTC)(link)
Технически не было бы никакой проблемы, например, хэшировать комбинацию карт с неким ключом и раздавать перед началом партии участникам, дабы все потом могли убедиться в отсутствии фальсификаций со стороны сервера. Но серверу-то это зачем? Пусть все просто верят в его честность, а он будет иметь некоторое пространство для манёвра.

[identity profile] lyops.livejournal.com 2014-11-04 10:11 am (UTC)(link)
Image

[identity profile] babuba-buba.livejournal.com 2014-11-04 10:22 am (UTC)(link)
троллишь?
специально очки надел?

[identity profile] babuba-buba.livejournal.com 2014-11-04 10:23 am (UTC)(link)
колода формируется перед раздачей.

[identity profile] bukkwa.livejournal.com 2014-11-04 10:49 am (UTC)(link)
Все карты на руках, и карты стола определены сразу. Обычно в онлайн покер-румах, чаще в правом верхнем углу окна можно увидеть уникальный номер раздачи.

[identity profile] cosmonazi.livejournal.com 2014-11-04 10:54 am (UTC)(link)
>уникальный номер раздачи
И как он преобразуется в последовательность карт?

[identity profile] lazylonelion.livejournal.com 2014-11-04 11:27 am (UTC)(link)
Технически порядок может быть определён ещё до раздачи. А может каждая карта выбираться непосредственно перед "открытием" карты. Никаких технических препятствий нет, сделать можно и так и эдак и ещё парой способов.
Всё равно всё упирается в то, готовы ли вы верить разработчикам и/или владельцам "компьютерного казино". Смухлевать можно и в одном и в другом случае.

[identity profile] bukkwa.livejournal.com 2014-11-04 11:50 am (UTC)(link)
Никак, просто номер означает, что раздача уже сгенерирована, а значит, что бы ни происходило дальше (пасы, рейзы, коллы) карты на руках и флоп, терн, ривер определены.

Грубо говоря,

раздача #3246584354135

и1 - КпикКчерв
и2 - 7п2б
и3 - 10трДч
...
Флоп: АтрКб6ч
Терн:Дп
Ривер:Вп

Кстати, в некоторых румах, есть возможность "докрутить" раздачу. Посмотрев какие карты выпали бы на стол, если игроки дошли до терна или ривера.
Edited 2014-11-04 11:52 (UTC)

[identity profile] cosmonazi.livejournal.com 2014-11-04 12:02 pm (UTC)(link)
Вы меня не поняли. Является ли это число некоторым seed'ом, с помощью которого можно независимо от сервера просчитать впоследствии всю последовательность карт, или же просто идентификатором некоторого массива, который сервер вполне может заполнить значениями уже по ходу партии? (естественно, продолжая делать вид, будто так и было сгенерировано).

[identity profile] bronevichek.livejournal.com 2014-11-04 01:18 pm (UTC)(link)
Это число явялется хешем созданной раздачи.
Учитывая, что количество раздач это 52!, плюс к исходным данным для рассчета хеша (скорее всего) прибавляют какой-нибудь доп. аттрибут (например номер комнаты/сессии, или время начала игры) то рассчитать раздачу из полученного хеша не представляется возможным.
А вот проверить (имея на руках последовательность карт сыгранной раздачи), в случае возникновения обоснованных претензий - да, можно.

[identity profile] max-first.livejournal.com 2014-11-04 01:25 pm (UTC)(link)
По разному бывает. Некторые сайты перетасовывают оставшуюся колоду после каждого круга торговли.
Вот видео как раз на эту тему от PokerStars
http://www.youtube.com/watch?v=-DkHzOUzDjc

[identity profile] lazybear.livejournal.com 2014-11-04 06:51 pm (UTC)(link)
Может быть и так и так. По идее если этот номер показывается, то скорее всего по нему нельзя восстановить раздачу. Иначе теоретически это дырка через которую можно узнать карты в колоде и у других на руках.

Например в ПокетПреф (Марьяже) есть уникальный номер по которому однозначно генерируется раздача.

[identity profile] kukukas.livejournal.com 2014-11-04 07:56 pm (UTC)(link)
+1

[identity profile] kukukas.livejournal.com 2014-11-04 07:57 pm (UTC)(link)
сервер проверяют регуляторы. Очень строго.

[identity profile] xen0n.livejournal.com 2014-11-04 09:13 pm (UTC)(link)
Если б копия колоды хранилась на каждом клиенте (т.е. у каждого игрока на комьютере была), чтоб избежать задержек при обращении к серверу - все программисты с минимальными навыками обратной инженерии уже б миллиардерами были.

[identity profile] xen0n.livejournal.com 2014-11-04 09:25 pm (UTC)(link)
Разницы абсолютно никакой. (конечно, если сервер не мухлюет. впрочем, если мухлюет - тоже никакой).

Это скорее вопрос филосовский, практически квантово-физический: Когда определяется какая карта будет вытянута из колоды? Когда мы ее посмотрели? Когда мы ее вытянули (но еще не посмотрели)? Когда мы закончили тасовать? Когда мы начали тасовать возможно (ведь у нас определенные характеристики скорости рук, цепкости пальцев итд - мы не можем их предсказать, но они предопределены)?

Откуда ты знаешь, что стол, когда ты отворачиваешься, не превращается в тигра?

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

Edited 2014-11-04 21:38 (UTC)

[identity profile] xen0n.livejournal.com 2014-11-04 09:36 pm (UTC)(link)
есть разница между "гарантированно рассчитать невозможно" и "невозможно рассчитать в большинстве случаев". Даже если хеши "соленые" (salted), но известен алгоритм подписи и соль более-менее разумная (а это число сильно изменяется со временем и ростом вычислительных возможностей) взломщик может рассчитать хеши наперед (например, для комнаты 123 и времени начала игры 11:20:14 7го июля.)

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

[identity profile] lyops.livejournal.com 2014-11-04 10:02 pm (UTC)(link)
А кто говорил про то, что колода известна клиент-компу?!

[identity profile] bronevichek.livejournal.com 2014-11-04 10:36 pm (UTC)(link)
Взломщик не может рассчитать хеши наперед, т.к. для того, чтобы узнать подмешиваемый timestamp начала времени конкретной игры (а они стартуют не по расписанию, а по мере набора игроков) он должен быть Николасом Кейджем из фильма "Пророк". Это р-раз.

Вы также путаете crypt salt и исходные данные для вычисления хэш-функции. Это д-два.

Даже зная расклад колоды наперед, чтобы вынудить противников пойти ва-банк - это должен быть аналог "руки Миссисипи". И это т-три.

[identity profile] shredder-by.livejournal.com 2014-11-05 07:10 am (UTC)(link)
Задержку при обращении к серверу в основном определяет скорость передачи данных (в частности пинг), а не медлительность сервера. От Нью-йорка до Москвы свет распространяется за 25мс - за это время можно сгенерировать около 100500 раздач.

Page 1 of 3