Хороший инстинкт приходит сюда. Честное предупреждение, я не знаю, что это за игра, но. Пусть игрок живет в $(п_х, п_у)$ а ИИ живет в $(а_х, а_у)$. И мы предполагаем сетку 10 на 10 ячеек.
Таким образом, у каждого игрока есть 100 возможных позиций и, следовательно, 10 000 возможных комбинаций двух игроков.Я предполагаю, что ИИ может быть над игроком, иначе у вас было бы 10 000-100 возможных комбинаций, если они не могут делить ячейку.
Для всех игр предварительно рассчитать $H(p_x||p_y||a_x||a_y)$, а также манхэттенское расстояние $Д$ между $(п_х, п_у)$ и $(а_х, а_у)$. $Ч$ является криптографической хеш-функцией. Я предлагаю SHA-1, так как 40-символьные шестнадцатеричные значения не слишком длинны для ручного поиска. Сортировать $Ч$ в числовом порядке для дальнейшего облегчения поиска. Затем опубликуйте $(Ч, Д)$ пар в толстой книге. При 50 хэшах на страницу это примерно 200 страниц.
Когда ИИ или игрок перемещаются, «игра» выводит $Ч$ который можно найти в толстой книге, чтобы получить $Д$. Вам не нужно было цифровое хранилище, иначе игра могла бы просто вычислять и выводить $Д$ напрямую. Игрок будет знать расстояние, но инвертировать его вычислительно невозможно. $Ч$ чтобы получить позицию ИИ без перебора/обмана. Этот метод также позволяет односторонне пересчитать $(Ч, Д)$ пары, если это необходимо для аудита процесса и предотвращения мошенничества.
Это должно быть выполнимо для доски 10 на 10, но явно становится нелепым для гораздо больших.
Примечание 1. Помните о степени детализации доски 10 на 10. Поскольку вы знаете свою позицию, любая $Д$ создает круг потенциальных локаций ИИ вокруг игрока. Если расчет расстояния был основан на центрах ячеек, только несколько ячеек точно совпадут. $Д$. Так что есть некоторая утечка позиционной информации. Эта слабость связана не только с моим решением, но и с математикой и мелкой сеткой.
Примечание 2: Инверсия комментария. Да, вы можете сами создать книгу чит-кодов и найти все $Ч$ прообразы. Хотя это обман. Если бы в игре был независимый беспристрастный арбитр, мастер подземелий (???), если хотите, вы могли бы адаптировать хэш как $H = \text{SHA-1}(p_x||p_y||a_x||a_y||перец)$ где перец известен только арбитру. Это все равно облегчило бы аудит во время спора.Сможет ли ИИ удержать перец, если вы доверите ему честную игру?
Примечание 3: должно быть статистически возможно обрезать $|Ч|$ от 40 шестнадцатеричных символов до гораздо меньшего. 10 000 комбинаций занимают всего 14 бит. Если мы выберем уровень безопасности игровой позиции еще 10 000, мы могли бы использовать 28 бит для публикуемых хэшей. Это будет опубликовано как семь шестнадцатеричных символов; восемь, если вы хотите пары. И поэтому меньше страниц.