Вкус прозрачной победы: раскладываем на пальцах алгоритм платформы DICEGAME.
Генератор Случайных Чисел напрочь отсутствует, поэтому закономерен вопрос: каким же образом определяется победитель на платформе DICEGAME? По сути некому решать,кто будет в плюсе,кто-в минусе, платформа только организатор,а не оппонент в играх.
Ответ прост: решают сами игроки, а точнее в игру вступают непосредственно их физические значения.
Как это будет происходить?
Рассказываем.
Наш авторский алгоритм определения значений кубиков (он же-алгоритм определения победителя) реализован в виде смарт-контракта и базируется на 2-х принципах:
- абсолютно исключить интерес к жульничеству
- простота проверки результатов, а главное их понимание.
Механика алгоритма следующая:
Мы берем от каждого игрока по 2 физических параметра. Эти самые параметры совместно влияют на конечный результат броска обоих соперников.
Показываем на примере.
Параметр №1: Т1,Т2- количество миллисекунд в момент обращения к смарт-контракту. Проще говоря, максимально точное время совершения броска кубиков.
Параметр №2: Р1,Р2-значение акселерометра телефона.
Акселерометр-это прибор, измеряющий ускорение объектов при каком-либо перемещении.
В случае с платформой DICEGAME, акселерометр-это шейк-штука,которая срабатывает в тот момент, когда вы активно трясете свой телефон,чтобы выбросить кубики в игре.
Соответственно, параметры Т1,Р1 принадлежат игроку №1, а параметры Т2,Р2-игроку №2.
Комбинация этих параметров дает нам всего 4 возможных варианта значений кубиков:
Отсюда видим: на конечный результат каждого кубика влияют оба игрока. Таким образом убиваем желание жульничать:чтобы предсказать результат игрокам надо сговориться, а смысла в этом отпадает, т.к. игра идет друг против друга.
Алгоритм максимально прост для проверки: берем сумму трех параметров, делим на 6 и к неделимому остатку прибавляем 1 (чтобы значения кубиков попали в диапазон от 1 до 6).
Кубик №1:
1.сумма трех параметров: 101+202+303=606
2.сумму делим на 6: 606:6=101
3.неделимого остатка нет,соответственно, он равняется 0
4.к неделимому остатку прибавляем 1: 0+1=1-это и есть значение первого кубика
Кубик №2:
1.сумма трех параметров:101+202+404=707
2.сумму делим на 6, т.к. 707 не делится ровно на 6,то представляем данное значение в виде суммы:(702+5):6=702:6+5:6. 702 делится ровно на 6,а 5,естественно,нет
3.неделимый остаток-5
4.к неделимому остатку прибавляем 1: 5+1=6-это значение второго кубика
Кубик №3:
1.сумма трех параметров:101+303+404=808
2.сумму делим на 6, т.к. 808 не делится ровно на 6,то представляем данное значение в виде суммы: (804+4):6=804:6+4:6. 804 делится ровно на 6,а 4,естественно,нет
3.неделимый остаток- 4
4.к неделимому остатку прибавляем 1: 4+1=5-это значение третьего кубика
Кубик №4:
1.сумма трех параметров: 202+303+404=909
2.сумму делим на 6, т.к. 909 не делится ровно на 6,то представляем данное значение в виде суммы: (903+3):6=903:6+3:6. 903 делится ровно на 6,а 3,естественно,нет
3.неделимый остаток-3
4.к неделимому остатку прибавляем 1: 3+1=4-это значение четвертого кубика
Если вы заметили,то на значения первых двух кубиков в больше степени влияют параметры игрока №1, соответственно, они и будут принадлежать ему,а вторые 2-игроку №2 по той же причине. На примере четко прослеживается победа игрока №2: его 9 очков против 7 очков игрока №1.
Настоящая реализация выглядит чуть-чуть сложнее: значения параметров будут хэшироваться. Но в общем и целом, мы видим,что алгоритм определения победителя элегантно прост по своей сути и в наивысшей степени понятен всем,кто дружит с математикой.
Будьте с нами:
Landing Page
OnePage
Telegram-канал
Telegram-группа
FB
Google+
Twitter
Instagram
Medium
Linkedin
Reddit
Bitcointalk ENG
Bitcointalk RU
YouTube-канал
Презентация проекта DICEGAME
Играйте с нами:
Android-версия FM Dice
IOS-версия FM Dice
Web-версия FM Dice