Эвристическая функция для игры Пилос
Пилос — это игра, состоящая из доски-пирамиды 4x4 (4x4 ниже 3x3 ниже 2x2 ниже 1). Есть два игрока, один с белыми шариками, а другой с черными шариками.
У каждого игрока изначально есть 15 шариков, и он по очереди кладет шарик на доску на свободный квадрат (или, если он находится на более высоком уровне, 4 «поддерживающих» квадрата нижнего уровня должны быть заняты). Цель состоит в том, чтобы у противника не осталось шариков в запасе. Если вы заполните квадрат из шариков одного цвета, вы можете убрать два своих шарика с доски. Если вы можете переместить шарик на более высокий уровень, вы можете это сделать (вы спасаетесь от опускания шарика).
Короче говоря, моя цель — реализовать наилучшую стратегию для этой игры. Для этого я реализовал MinMax, и мне нужна функция эвристической оценки. Я не могу погрузиться глубже 4 глубины в MinMax.
Наивная эвристика возвращает разницу между моим количеством шариков на складе и количеством шариков моего противника.
Я попытался улучшить эвристику, внедрив обнаружение квадратов одного цвета и обнаружение движения вверх, а также придав большое значение ограничению движения противника, но наивная стратегия иногда все же выигрывает, если она играет вторым.
Если есть идеи по улучшению, буду признателен.