nukanuka @ 15.6.2018
Если вы найдёте "честный" генератор, за который ответит не математическая комиссия, а Папа Римский вместе с Московской патриархаей, то от этого вы всё равно не научитесь играть.
Да что же вы все о моей игре то. У меня сугубо профессиональный интерес. Покер - место, где я могу отдохнуть. Я буду сливать и с подкрученным ГСЧ и с честным, как слеза девственницы. Давайте я покажу вам пример раздачи, в которой я буду уверен.
1) Предположим, у нас есть изначальное расположение карт в колоде. В таком порядке мастей:
Соответственно, это колода от
до
2) Сервер генерирует совершенно случайное число, мы, игроки, знать его не должны, поэтому сервер выдаст нам SHA-3 отпечаток данного числа.
Это число должно быть достаточно большим, чтобы мы не смогли его подобрать за несколько секунд. Пример:
Число в шестнадцатеричном представлении, но сути это не меняет - «ca2c70bc13298c5109ee0cb342d01490». SHA-3 под катом.
69bd1cb47b8211526e16a820b7c8124ac59e2fe3fd573b881292ecce3665db73f9ddf3cef08c127f3bc5f4f63450e98b9d8f2a4eb207ad1d52729d65
681c0d90
3) Далее игроки, удостоверившись в том, что сервер уже придумал себе число, придумывают свои числа.
Предположим, что это 1 и 2 соответственно, придуманные числа мы друг от друга не скрываем, отправляем на сервер.
4) В свою очередь сервер складывает в одну строку и вычисляет ее SHA-3.
Для текущего примера справедливо будет «1:2:ca2c70bc13298c5109ee0cb342d01490». SHA-3 под катом.
135ca1494c2051ecd1262b76a5f4f538f9597376a963e2a123d1e9bce14adba6571c08533ebc99a903caf7ffdaa364367da15c94ea8feca7034859b8
0eb7c710
5) Т.к. мы вдвоем играем в Холдем, то нам понадобится всего 9 карт.
На выходе SHA-3 предоставляет нам 512 бит (64 байта), давайте извлечем из них случайные числа. Для формирования числа от 0 до 51 нам понадобится 7 бит, но сегодня гуляем - берем целый байт.
13 - 19. 20-я карта из нашей заранее сформированной колоды -
5c -
92. Это число нам не подходит, т.к. оно больше 51.
Пропущено еще 3 байта...
20 - 32.
И так далее, пока не наберем нужное число карт, если вдруг не хватит данных, то мы можем сгенерировать еще одну случайную строку, добавив постфикс итерации.
6) После окончания раздачи/турнира/игрового дня сервер обнародует случайное число, которое он придумал заранее, и все игроки могут посчитать на своих компьютерах колоду для каждой раздачи, т.к. все игроки знают алгоритм тасования колоды и источник случайных чисел.
А теперь скажите, кому вы больше верите. Папе Римскому, авторитетной комиссии или SHA-3? Дело в том, что на любой операционной системе, на любом компьютере, с подключением интернета или без, результат работы SHA-3 (при корректной реализации) будет одинаковый.