Данная статья подробно описывает механизм контроля честности для игровых автоматов на примере Crazy Monkey 2.
Флеш-приложение эмулятор игровых автоматов не является автономной программой, а работает исключительно в комплексе с сервером нашего казино. Перед началом каждого нового вращения барабанов сервер генерирует строку исхода игры, которая будет полностью задавать результаты предстоящего спина. В качестве примера, она может выглядеть так:
Spin=22,6,25,31,8 DoubleCards=9c, 5c, Kc, As, 4d, 2s, Ks, Qd, 2d, 3d, Kc | 7h, 2s, 8d, 6s, Ac, 2c, Ks, 5d, 7c, 6c, Kc | 7d, 3h, 9d, Jh, 6d, 5c, 8d, Qc, 5h, 7s, Qh | 9c, As, 6h, 9c, 4d, Jc, 8d, As, 2s, Ah, 4c | Kh, 7d, Ac, 6h, Ac, Kd, Ad, Jc, Ah, 5d, Ah | 7h, 5h, 9h, Td, 4d, 2s, Td, 7h, 3h, 6c, Ts | Ts, 4s, Kd, Qd, 9c, 6d, Qs, Ad, 9c, Td, Qd | 4d, Th, 3d, 2s, 8c, 9h, 3c, 3d, Ad, 4d, 3c | Qd, Ks, 9c, Qc, Kd, Kh, 6s, 4d, As, Ac, 7h Bonus=8,5,3,2,3 SuperBonus= 8,3 SecureWord=h9z4bE50fUugCcdzaPmay6UYGcCxM1vp
Затем, при помощи алгоритма хеширования SHA-256, из нее генерируется проверочный код. Этот проверочный код отправляется игроку до начала спина и попадает в специальное поле, расположенное в нижней части окна игры (59732542135a3a21ac883a45e.....). Это означает, что данные, определяющие исход следующей игры, с сервера получены и не могут быть изменены со стороны казино.
Теперь рассмотрим основные составляющие строки исхода игры.
Spin=22,6,25,31,8 - Пять чисел, идущие после "Spin=" задают, в каких положениях должны остановиться барабаны, по верхнему ряду. Соответствие номеров ячеек символам барабана см. в таблице Развертка барабанов.
Длинная последовательность после слова "DoubleCards=" это набор карт для проведения риск-игры, если такая состоится в этом раунде. Вся последовательность разбита на секции по 11 карт, для всех 9-ти возможных уровней риск-игры.
Обозначения карт соответствуют их аббревиатурам следующим образом: s – пика, c – креста, d – бубна, h – черва, A – туз, K – король, Q – дама, J – валет, T – десятка, цифры соответствуют рангу карты.
Пять цифр после слова "Bonus=" определяют результаты бонус-игры. Значениями от 0 до 9 закодировано количество очков за пойманные бананы, и наличие тяжелого предмета за определенными веревками. Смотри таблицу 1.
Вслед за словом "SuperBonus=" идут результаты супер бонус-игры, определяющие какой сундук пуст, а в каком имеется приз и размер этого приза. Смотри таблицу 2.
В конце последовательности, после "SecureWord=" добавлено секретное слово, усложняющее подбор строки исхода игры.
После отыгрыша каждого спина в разделе ИСТОРИЯ становится доступна к просмотру строка исхода игры для данного отыгранного спина. Игрок, с помощью встроенного в интерфейс (либо иного) хеш-калькулятора, может самостоятельно сгенерировать из этой строки проверочный код. Код, вычисленный игроком с помощью хеш-калькулятора и проверочный код, присланный ему до начала очередной игры должны абсолютно совпадать. Это совпадение есть подтверждение того, что перед игроком именно та строка исхода игры, которую сгенерировал софт казино до начала игры. А вся игра проводилась в соответствии с заданными параметрами этой строки.
Кроме того, система контроля честности построена так, что при желании игрок может полностью поменять результаты, заданные строкой исхода игры. Для этого, на всех этапах игры, достаточно задавать смещения кнопками «+» и «–», расположенными в нижней части окна игры.
Теперь рассмотрим более подробно механизм смещения для каждого этапа игры
Находясь в основной игре, игрок может указать числовые значения смещений (от 0 до 42) для остановки барабанов. Если, например, для первого барабана игрок задал смещение 2 - это означает, что первый барабан прокрутится на два символа дальше, чем было задано строкой исхода игры. В случае с примером выше Spin=22,6,25,31,8 …, первый барабан остановится на символе 24, а не 22. При этом символ 24 будет находиться в верхнем ряду экрана. Всего на барабане расположено 43 символа от 0 до 42, поэтому если сумма исходного значения остановки и смещения будет превышать число 42, то оно будет уменьшено на 43.
Смещение в риск-игре
DoubleCards=9c, 5c, Kc, As, 4d, 2s, Ks, Qd, 2d, 3d, Kc | 7h, 2s, 8d, 6s, Ac, 2c, Ks, 5d, 7c, 6c, Kc | 7d, 3h, 9d, Jh, 6d, 5c, 8d, Qc, 5h, 7s, Qh | 9c, As, 6h, 9c, 4d, Jc, 8d, As, 2s, Ah, 4c | Kh, 7d, Ac, 6h, Ac, Kd, Ad, Jc, Ah, 5d, Ah | 7h, 5h, 9h, Td, 4d, 2s, Td, 7h, 3h, 6c, Ts | Ts, 4s, Kd, Qd, 9c, 6d, Qs, Ad, 9c, Td, Qd | 4d, Th, 3d, 2s, 8c, 9h, 3c, 3d, Ad, 4d, 3c | Qd, Ks, 9c, Qc, Kd, Kh, 6s, 4d, As, Ac, 7h
Вся последовательность карт разделена на секции знаком « | », которые предназначены для последующих уровней риск-игры. Для примера рассмотрим одну из секций, для первого уровня - 9c, 5c, Kc, As, 4d, 2s, Ks, Qd, 2d, 3d, Kc. Первая карта задает карту дилера (в данном примере 9 треф), остальные 10 карт сгенерированы для выбора игроку. Если игрок не установил смещение для риск-игры, то для выбора игрока доступны четыре карты, следующих за картой дилера, 9c, 5c, Kc, As, 4d, 2s, Ks, Qd, 2d, 3d, Kc. При желании кнопками «+» и «–» игрок может задать смещение, и тем самым изменить карты, предложенные ему для выбора.
В риск-игре смещение задается первой парой кнопок «+» и «–», значениями от 0 до 6. Независимо от смещения, карта дилера остается неизменной. В таблице показано, как установленное смещение изменяет карты, предложенные к выбору.
Установленное смещение |
Карты последовательности в секции, предоставленные к выбору |
0 |
9c, 5c, Kc, As, 4d, 2s, Ks, Qd, 2d, 3d, Kc |
1 |
9c, 5c, Kc, As, 4d, 2s, Ks, Qd, 2d, 3d, Kc |
2 |
9c, 5c, Kc, As, 4d, 2s, Ks, Qd, 2d, 3d, Kc |
3 |
9c, 5c, Kc, As, 4d, 2s, Ks, Qd, 2d, 3d, Kc |
4 |
9c, 5c, Kc, As, 4d, 2s, Ks, Qd, 2d, 3d, Kc |
5 |
9c, 5c, Kc, As, 4d, 2s, Ks, Qd, 2d, 3d, Kc |
6 |
9c, 5c, Kc, As, 4d, 2s, Ks, Qd, 2d, 3d, Kc |
Карта дилера выбирается программой случайно, из диапазона от Тройки до Короля. Остальные десять карт подобраны в соответствии с условиями:
Для 1 уровня риск-игры - 5 карт старше карты дилера, 5 карт младше карты дилера.
Для 2 уровня - 4 карты старше, 1 карта равная, 5 карт младше карты дилера.
Для 3 уровня - 5 карты старше, 1 карта равная, 4 карт младше карты дилера.
Для 4 уровня - 4 карты старше, 1 карта равная, 5 карт младше карты дилера.
Для 5 уровня - 5 карты старше, 1 карта равная, 4 карт младше карты дилера.
Для 6 уровня - 4 карты старше, 1 карта равная, 5 карт младше карты дилера.
Для 7 уровня - 5 карты старше, 1 карта равная, 4 карт младше карты дилера.
Для 8 уровня - 4 карты старше, 1 карта равная, 5 карт младше карты дилера.
Для 9 уровня - 5 карты старше, 1 карта равная, 4 карт младше карты дилера.
Кроме того, карты расположены таким образом, что при установке любого смещения в четверку карт для выбора не могут попасть 3 карты младше, ровно как и 3 карты старше карты дилера.
Смещения в бонусной игре
В бонус-игре смещения выбираются теми же кнопками «+» и «–». Величина смещения задается отдельно для каждого каната непосредственно перед его выбором. Допустимые значения - цифры от 0 до 9.
Пример: В имеющейся у нас строке исхода игры есть запись Bonus=8,5,3,2,3 . Это означает, что по умолчанию (с нулевыми смещениями) первый канат скрывает 20 очков (см. таблицу 1), второй 5 очков, за третьим, четвертым и пятым тяжелые предметы.
Если игрок при выборе 2-го каната задаст смещение 4, то, добавив это смещение к исходному значению 5, получим значение 9, что означает выигрыш приза в 25 очков.
Если при сложении смещения и исходного значения получено число большее 9, оно уменьшается на 10.
Значения для строки "Bonus= *, *, *, *, *" генерируются на сервере для каждого каната случайно и независимо друг от друга. Так, к примеру, исход 9, 9, 9, 9, 9 равновероятен любому другому исходу.
Смещения в супер бонусной игре
В супер бонус-игре значениями от 0 до 9 закодировано наличие и размер выигрыша, либо его отсутствие.
В нашем примере SuperBonus= 8,3 . Первое значение 8, определяет приз для левого сундука в 200 очков, второе - 3 для правого - сундук пуст (см. таблицу 2).
Сервер генерирует эти значения таким образом, что исходно (при нулевых смещениях) один сундук пустой, а в другом обязательно находится приз случайной величины от 50 до 250 очков.
В супер бонус-игре игрок также может задавать смещения, которые будут изменять изначально заложенные значения в строке исхода игры, а значит и величину приза. Допустимые значения смещения от 0 до 9.
Если игрок установил смещение 4 для правого сундука и выбрал его, то в разбираемом примере (SuperBonus= 8,3), прибавив это смещение к начальному значению 3, получим значение 7, что соответствует призу 150 очков (см. таблицу 2). Как видно, удачным выбором смещения игрок добился наличия призов в обоих сундуках, так как в левом сундуке приз находился по умолчанию.
Таблица 1. Значения и соответствующие им величины призов в бонус-игре
значения |
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
призы |
0 | 0 | 0 | 0 | 0 | 5 | 10 | 15 | 20 | 25 |
Таблица 2. Значения и соответствующие им величины призов в супер бонус-игре
значения |
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
призы |
0 | 0 | 0 | 0 | 0 |
50 |
100 |
150 |
200 |
250 |
|
Развертка барабанов |
0. |
|
1. |
|
2. |
|
3. |
|
4. |
|
5. |
|
6. |
|
7. |
|
8. |
|
9. |
|
10. |
|
11. |
|
12. |
|
13. |
|
14. |
|
15. |
|
16. |
|
17. |
|
18. |
|
19. |
|
20. |
|
21. |
|
22. |
|
23. |
|
24. |
|
25. |
|
26. |
|
27. |
|
28. |
|
29. |
|
30. |
|
31. |
|
32. |
|
33. |
|
34. |
|
35. |
|
36. |
|
37. |
|
38. |
|
39. |
|
40. |
|
41. |
|
42. |
|
|