Если вы реализуете Connect6 на конечной плате, то возможным представлением для этой игры будет список списков переменных, изначально не связанных.Вы бы «поместили камень», объединив переменную с одним из атомов black
или white
.Затем вы можете проверить, пуста ли позиция P
с помощью var(P)
.Это представление должно работать намного быстрее, чем список stone/3
терминов.Это работает, потому что в Connect6 вы никогда не сможете удалить камень.
Я предполагаю, что под эвристическим вы подразумеваете функцию оценки, подходящую для поиска минимаксного значения, negamax или альфа-бета.Принимая во внимание правила игры, я бы посоветовал каждому игроку подсчитать количество рядов длины пять и забить те 5, забить те, что длины четыре 4 и т. Д. Это даст вам два результата S 1 и S 2 .Вычитание S 2 из S 1 дает относительное преимущество для игрока 1. Затем найдите способ нормализовать их в диапазоне [-1,1] или оцените ситуацию, когда играза бесконечность минус бесконечность.(Как представить все, что в Прологе оставлено в качестве упражнения.)