Невозможно гарантировать выигрыш. Если боты/призы распределены случайным образом, есть, конечно, случайные места размещения, которые заставят вас слишком далеко от призов, прежде чем другие боты получат их.
Поскольку вы знаете точное поведение других ботов, вы можете смоделировать все будущие движения, которые они сделают для данной доски. Затем вы можете перечислить все возможные движения как дерево, а также состояния штатов, затем посмотреть на листья и найти ту, которая дает вам выигрышную оценку. Другими словами, каждая ветка - это шаг, который вы делаете, и узел представляет состояние платы, включая перемещение, которое будут делать другие боты. Кроме того, это не будет бинарное дерево, каждый узел будет ветвиться на основе направлений, которые вы могли бы переместить в этом направлении. Вы полностью построите это дерево, прежде чем сделать один реальный ход, так что по сути вы получите предсказанный результат игры, как только вы выберете оптимальный путь. Это возможно только потому, что другие боты движутся предсказуемым образом.
Также, как вы двигаетесь, вы можете добавить проверки, чтобы другие боты двигались, как вы предсказали, точно так же, как функция отладки. В зависимости от того, как работает система, они могут видеть ваш ход, прежде чем они решат свой ход, в зависимости от того, будут ли все перемещаться одновременно или по одному за раз. В любом случае это может быть сделано, вам просто нужно убедиться, что ваша модель того, как они двигаются, точна.
Обратите внимание, что могут быть другие листья, где у вас больше балл, но проиграть, потому что один из других ботов доминировал над другим. То есть (вы: 12, a: 1, b: 17) vs. (вы: 11, a: 10, b: 9)
Пути, которые, вероятно, будут успешными, - это те, которые используют поведение другого боты, например, захватывая высший приз, когда он ближе к вам, заставляя жадного бота терять ходы, идущие к нему. А также отвлекайте бонусы за призы на пути, если у вас достаточно шагов для этого. Вам не придется кодировать это поведение, хотя, потому что, когда вы создаете дерево и находите оптимальную последовательность ходов, вы будете неявно.
Этот вопрос слишком расплывчатый и на который можно ответить слишком широко. Это обескураживает SO. – Renan
Пожалуйста, сообщите больше о правилах игры. Например, если бот А идет за дальним призом с 8 шагами, значит ли это, что бот B может получить 2 приза по 4 шага каждый? Кроме того, поскольку приз и боты случайным образом размещены, как может каждый бот побеждать? Представьте, что 2 бота используют ваш «всегда-выигрышный алгоритм», должен быть победитель и проигравший (за исключением рисования). – Faraway
Пожалуйста, отредактируйте ваш вопрос (вместо ответа в комментарии) и ответьте на следующее: все ли боты перемещаются одновременно? Требуется ли одна единица времени для перехода из одной ячейки в другую? Может ли бот перемещаться в любую из соседних 4-х ячеек или по диагонали рядом? Может ли ваш бот получить информацию о том, где находятся другие два бота, и что это? –