Хеширование кубов
В начале каждой партии генерируется последовательность кубов и для нее (при помощи алгоритма md5) вычисляется контрольное число (хеш-код), которое доступно игрокам.
Полученный хеш-код обладает следующими свойствами:
- Его значение очень сильно изменяется, если в последовательности изменить значение хотя бы одного куба. То есть, практически нереально за время партии изменить начальную последовательность кубов (в пользу одного из игроков), чтобы при этом не изменился хэш-код.
- Зная хэш-код достаточно сложно по ходу партии восстановить исходную последовательность кубов (и таким образом предсказать будут выпадать далее).
В конце партии в файл лога игры записываются все кубы, которые были для нее сгенерированы.
Использование данного подхода гарантирует, что последовательность кубов не изменялись во время партии.
Пример:
DH[b87c09208b90f00776b8978c1bd41ccc]MI[length:0][game:0][ws:0][bs:0]
DS[563543244323243325453254531336524624426445133531521165134614416635533415546436224553266
351431163456613214661261341252115461346425465416414361424453224425361315642156434655626416
413145333141111616345441213512551323356565643245354112421563344365531232126565363654156555
634613654661152652465625234651225564451433433622621512245445131454422342461221315231546353
316431651541264121523543534635534533524361645534144514625432643264643411245223362113516462
124142165136516545154352566164]
Здесь b87c09208b90f00776b8978c1bd41ccc - хэш кубов, а 563543...566164 – сама последовательность.
При игре в короткие нарды, возможна ситуация, когда все значения последовательности будут израсходованы. Тогда старая последовательность и ее хэш-код записывается в лог, генерируется новая, ее хэш-код доступен по правой кнопке, а она сама будет записана либо по окончанию игры, либо когда будут использованы все значения.
Для расчета md5 хэш-кода существуют онлайн - калькуляторы, которые легко находятся поисковиками. Например: http://md5-hash-online.waraxe.us/, http://www.md5.cz/
Чтобы убедиться в неизменности последовательности кубов нужно в процессе игры посмотреть значение хеш-кода (по правой кнопке мыши на игровом поле), оно должно совпасть с записанным в файле лога по окончании игры (в данном случае b87...ccc), далее из лога скопировать значения кубов (в данном случае числа 563543...566164) в калькулятор и выполнить расчет. Полученное значение хеш-кода также должно совпасть с записанным в логе (в данном случае b87...ccc).
Последнее изменение: 19.01.2010г.
|