Что ты имеешь в виду?
Не совсем детерминированный. Для каждого хода будет выбор из нескольких клеток (положим, до 4х), и компьютер будет выбирать одну из них случайно.
Да, в этом есть некоторая уязвимость, так же как и при угадывании чисел методом половинного деления, последовательность ходов угадывающего заранее известна. Но загадывающий (противник нашего бота) мало что может с этим поделать, потому что даже если он разместит корабли там, куда бот поначалу не стреляет - серия выстрелов мимо все равно существенно сократит поле для поиска, и начиная с определенного момента бот разгромит противника серией точных выстрелов.
Я уже раньше рассматривал аналогию этой ситуации с угадыванием чисел методом половинного деления. Зная о том, каким методом пользуется угадывающий, загадывающий игрок может оттянуть свой конец, но не более, чем на некоторое число ходов, соответствующее наихудшему случаю.
Стрельба в клетки с максимальной вероятностью попадания, которую я сейчас реализую, оптимизирует как каждый конкретный выстрел, так и число ходов для наихудшего случая, когда все выстрелы, какие только возможно, идут мимо кораблей. Любые отступления от этой стратегии могут увеличить число выстрелов для наихудшего случая. Противник лишь может пытаться реализовать этот наихудший случай. Но к адаптации противника уязвимы любые стратегии, в принципе. Какой бы метод мы ни реализовали - могут существовать способы располагать корабли специально так, чтобы этот метод долго их не мог найти.
Наличие же некоторой, хоть и небольшой, случаности в выборе координат для следующего выстрела затрудняет адаптацию противника к нашей стратегии. Так же как можно сделать вариацию алгоритма угадывания чисел от 1 до 100 с добавкой случайности, которая уменьшила бы шансы противника реализовать наихудший случай при угадывании, при этом не увеличивая число ходов для наихудшего случая, если он все-таки реализуется.





Ответить с цитированием
Размещение рекламы на форуме способствует его дальнейшему развитию 
