Вкус прозрачной победы: раскладываем на пальцах алгоритм платформы DICEGAME.


Генератор Случайных Чисел напрочь отсутствует, поэтому закономерен вопрос: каким же образом определяется победитель на платформе DICEGAME? По сути некому решать,кто будет в плюсе,кто-в минусе, платформа только организатор,а не оппонент в играх.

Ответ прост: решают сами игроки, а точнее в игру вступают непосредственно их физические значения.

Как это будет происходить?
Рассказываем.

Наш авторский алгоритм определения значений кубиков (он же-алгоритм определения победителя) реализован в виде смарт-контракта и базируется на 2-х принципах:

  • абсолютно исключить интерес к жульничеству
  • простота проверки результатов, а главное их понимание.


    30 second exposure

    Механика алгоритма следующая:

Мы берем от каждого игрока по 2 физических параметра. Эти самые параметры совместно влияют на конечный результат броска обоих соперников.

Показываем на примере.
Параметр №1: Т1,Т2- количество миллисекунд в момент обращения к смарт-контракту. Проще говоря, максимально точное время совершения броска кубиков.
Параметр №2: Р1,Р2-значение акселерометра телефона.

Акселерометр-это прибор, измеряющий ускорение объектов при каком-либо перемещении.

В случае с платформой DICEGAME, акселерометр-это шейк-штука,которая срабатывает в тот момент, когда вы активно трясете свой телефон,чтобы выбросить кубики в игре.

Соответственно, параметры Т1,Р1 принадлежат игроку №1, а параметры Т2,Р2-игроку №2.


Комбинация этих параметров дает нам всего 4 возможных варианта значений кубиков:

Кубик №1: Т1 Р1 Т2
Кубик №2: Т1 Р1 Р2
Кубик №3: Т1 Т2 Р2
Кубик №4: Р1 Т2 Р2

Отсюда видим: на конечный результат каждого кубика влияют оба игрока. Таким образом убиваем желание жульничать:чтобы предсказать результат игрокам надо сговориться, а смысла в этом отпадает, т.к. игра идет друг против друга.

Алгоритм максимально прост для проверки: берем сумму трех параметров, делим на 6 и к неделимому остатку прибавляем 1 (чтобы значения кубиков попали в диапазон от 1 до 6).

Т1=101 Т2=303
Р1=202 Р2=404

Кубик №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


Comments 0