@burov0798
Пытаюсь изучать php\js

Как реализовать честную игру в Угадай число?

Как создать честную игру в Угадай число? Чтобы пользователь был уверен, что нет никакой подтасовки и подкрутки?

Логика игры будет такова, что бот загадывает число, пользователь выбирает 5 чисел из списка:
spoiler
12e16cafabd9b58d2274c.jpg

И если угадывает, то выиграл. Если нет, то мы показываем загаданное число ему. Но как он может проверить всю эту систему?

Как я думал, это заранее генерировать например md5(result + salt), где соль будет рандомная строка, а result - загаданное число. И далее выдавать ему этот hash, и если он проиграет, показывать соль от этого хэша.
  • Вопрос задан
  • 325 просмотров
Решения вопроса 2
freeExec
@freeExec
Участник OpenStreetMap
Где-то сто лет назад я такое видел. Без всяких заморочек с хешем, что для пользователя проблемно. Там был просто запороленный архив с результатом. Это намного проще.
Ответ написан
trapwalker
@trapwalker Куратор тега Python
Программист, энтузиаст
Ваше решение волне валидно. Разве что некоторым игрокам придётся объяснять что такое md5 и рассказывать про сложность нахождения коллизий.
Опять же, ушлый игрок сможет предположить, что кто-нибудь ввалил огромные мощности на поиск коллизий, а потом ему подсовывает нужную соль под ответ. Тем более не обяательно чтобы конкретное исло было в result, а достстоноч, чтобы там было не одно из выбранных 5.
Короче, для надёжности я бы вам посоветовал добавить помимо своей соли, еще и соль, выбранную игроком. Ведь какая разница от чего считать md5, если вы играете по-честному. А вот найти коллизии при наличии гарантированно рандомной (или просто не подготовленной соли), да еще и так быстро (в рамках игры) - это куда сложнее.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы