Некоторые игроки сомневаются в честности и непредвзятости игры. Чтобы удостовериться, что «система не подыгрывает» сопернику, а также, что игра идет по заранее созданным выбросам кубиков, мы разработали систему проверки с названием контроль честности. Поэтому играя у нас в длинные нарды или короткие нарды, вы будете абсолютно уверены, что все зависит от вашего умения и немного от везения. Каждый игрок может повлиять на будущее распределение кубиков, устанавливая смещение. Давайте разберемся как проверять честность игры и повлиять на броски.
Начальное смещение последовательности бросков в контроле честности
Перед каждой игрой на стороне каждого игрока генерируется своя случайная последовательность бросков (множество из двух значений кубика от 1 до 6) с помощью криптографического генератора случайных чисел, используя реализацию, предоставляемую поставщиком служб шифрования (CSP). Далее в зашифрованном виде сгенерированные последовательности отправляются на сервер, где мы их сохраняем в неизменном виде. Эти две последовательности каждый игрок может скачать до начала и во время игры в виде защищенного паролем ZIP архива, нажав кнопку «Скачать архив бросков». Тем самым, убеждаясь, что последовательности во время игры не изменяются. Пароль от файла (архива) будет известен игрокам только в конце матча и отображается в финальном окне матча. Пароль одинаковый для всех «архивов бросков» игр в пределах одного матча.
Блок контроля честности в финальном окне матча
При старте игры в матче каждый игрок выбирает смещение для своей и соперника последовательностей. За несколько секунд до начала игры изменение смещения запрещается. Во время выбора вы также видите какое смещение устанавливает соперник. На изображение показано что ваше смещение 2, а соперника 4.
В конце матча в блоке контроль честности окна результатов матча можно скачать лог матча и скопировать пароль от архивов бросков. Затем можно приступить к самостоятельной проверке.
Проверка контроля честности
- Скачиваем архив с именем: nardgammon_game_{номер}_dices.zip. Внутри лежит файл nardgammon_{номер матча}_{номер игры}_dices_raw.txt в котором находятся две изначальные последовательности бросков.
Игрок1 (white — белые): |
5:4 3:5 6:3 4:2 3:2 6:4 5:6 3:1 5:2 4:6 6:6 5:4 5:1 4:3 1:4 1:1 . . . |
Игрок2 (black — черные): |
1:4 1:3 1:6 6:1 6:2 3:5 4:2 2:2 3:6 2:3 1:4 5:4 6:1 4:1 1:5 2:6 . . . |
- Смотрим какое было смещение. Запоминаем в начале игры или можно найти в логе (истории) матча. В нашем примере смещение у белых (white) было 4. У черных (black) — 2
В нотации матча смещение записано в поле
[Game {Номер игры по порядку} «ID: {Номер игры на портале}. Start dice: white(4) black(2)»]
- Для генерации итогового смещения для каждого игрока в своей последовательности используется следующий алгоритм:
Номер первого броска, включая розыгрыш первого хода, определяется по формуле:
Начало = (Смещение игрока — 1) * 2 + Смещение соперника
Таким образом, номер первого броска для белых будет: (4 — 1) * 2 + 2 = 8
А для игрока, играющего черными шашками: (2 — 1) * 2 + 4 = 6
Применяем смещение. Определяем розыгрыш первого хода и последующие броски игроков.
Игрок1 (белые): |
5:4 3:5 6:3 4:2 3:2 6:4 5:6 3:1 5:2 4:6 6:6 5:4 5:1 4:3 1:4 1:1 . . . |
Игрок2 (черные): |
1:4 1:3 1:6 6:1 6:2 3:5 4:2 2:2 3:6 2:3 1:4 5:4 6:1 4:1 1:5 2:6 . . . |
- Розыгрыш определяется по первым кубикам бросков. Для белых из первого броска 3:1 берем значение кубика 3. Для черных из 3:5 берем значение 3. Они равны, поэтому розыгрыш продолжается до тех пор, пока не победит один из игроков.
Берем следующие броски. Для белого 5:2, берем 5. Для черного 4:2 берем 4. В розыгрыше права первого хода побеждают белые.
- В зависимости от типа нард, первый ход игрок может перебрасывать, как например в длинных нардах, а может использовать последний бросок розыгрыша, как в коротких нардах.
- Затем при каждом броске игрок получает выброс подряд из своей последовательности.
Частые вопросы:
- Можно ли подобрать пароль от архива? Можно, но на это уйдет несколько лет
- Можно ли перехватить или подменить передачу сгенерированных кубиков от игрока? Нет нельзя, все данные между игроками и сервером передаются в шифрованном виде по HTTPS протоколу с длинной ключа 256 бит. Так же что данные надёжно защищены подтверждает SSL сертификат выданный нашему домену.
- Одинаковый ли пароль для обоих игроков? Да, одинаковый
- Может ли соперник получить пароль до конца игры? Нет, пароль пересылается с сервера и показывается игроку только при завершении всех игр в конце матча