Поиск в пространстве состояний осуществляется по различным состояниям платы.Есть много ходов, так как вы можете поместить камень в любом месте, где нет места.Каждое состояние может быть представлено, например, в виде матрицы 9x9 с 3 значениями - белым, черным или незанятым.Таким образом, при использовании доски 9x9 существует 3 ^ 81 возможных состояний платы.
Из любого состояния доски число ходов - это число незанятых вершин.Вы можете поместить камень в любую из этих вершин.Вы можете играть только своим цветом.Таким образом, самое большее 81 возможный ход .. 81 за первый ход, 80 за второй и так далее.Таким образом, вы можете искать до глубины 5 разумно, и, возможно, больше .. не так уж плохо.
Правильным представлением является, как уже упоминалось, двумерная матрица - это может быть просто двумерный массив целых чисел со значениями, например, 0 для незанятого, 1 для белого, 2 для черного.... int [9,9].
Ваша функция оценки звучит не очень хорошо.Вместо этого я бы дал очки за следующее:
- получить 5 подряд - в основном, дать ему максимальный балл за этот, так как это выигрыш - 4 подряд с 2 открытыми концами -- также максимальный счет, так как противник не может заблокировать вас от получения 5. - 4 подряд с 1 открытым концом - все еще очень угрожающая позиция, так как противник должен играть в одном месте, чтобы заблокировать.- 3 в ряд с 2 открытыми концами - снова очень высокий результат --- 4, 3, 2, 1 с обоими закрытыми концами - 0, так как не может сделать 5 подряд.
и т. д.
Затем вы просто применяете стандартный минимаксный алгоритм - т.е. альфа-бета-отсечение - он будет точно таким же, как шахматы, но у вас есть другой генератор пространства состояний и функция оценки.