LINUX.ORG.RU

История изменений

Исправление kipar_2024, (текущая версия) :

Я вижу проблему в том, что если смартфону легального клиента будет требоваться с нашим хитрым алгоритмом скажем секунда на то чтобы посчитать одну последовательность ходов, то читер запустит на видеокарте и проверит за секунду тысячи\миллионы вариантов, даже если это и не будет оптимально, в любом случае это будет лучше чем сможет сыграть человек. Так что кроме как сервера отправляющего сид в ответ на ход вариантов не вижу.


Моя идея была:

Например, можно обеспечить это дорогим алгоритмом регенерации поля после хода.

Например так:

  • регенерируемые фишки зависят от первых k ходов игрока. Условно сид генерации на ходу n = sha256(сид карты | ходы игрока 1..min(k, n-1) ).
  • серверу при генерации придется перебирать всё дерево чтобы найти мин и макс. бонусы, но для него получить сид генерации не проблема так что он переберет легко.
  • а вот клиенту он вместо сида карты отправит зашифрованные() сиды для всех вариантов первых k ходов игрока. Тут правда вопрос в том на сколько k хватит нескольких килобайт разрешенных в условии, но если у игрока 3-4 варианта хода то k = 4 или 5 можно обеспечить. Соответственно задача сводится к тому чтобы () - зашифровать число так чтобы шифровалось оно быстро, а для его расшифровки требовалась ~1секунда. Тогда легальному клиенту придется расшифровать только k вариантов, а читеру придется для перебора расшифровать 3**k вариантов (но не больше чем влезет в сид, а это всего несколько тысяч).

Исходная версия kipar_2024, :

Я вижу проблему в том, что если смартфону легального клиента будет требоваться с нашим хитрым алгоритмом скажем секунда на то чтобы посчитать одну последовательность ходов, то читер запустит на видеокарте и проверит за секунду тысячи\миллионы вариантов, даже если это и не будет оптимально, в любом случае это будет лучше чем сможет сыграть человек. Так что кроме как сервера отправляющего сид в ответ на ход вариантов не вижу.