Читая ваше описание и немного подумав, я думаю, что он, вероятно, работает с одним массивом, именно так, как вы описали.
Для достижения цели получения пяти в ряд вы должны (а) помешать противнику добиться успеха и (б) преуспеть самостоятельно.
Чтобы добиться успеха, вы должны поместить камни рядом с другими камнями, которые у вас уже есть на доске, поэтому имеет смысл добавить положительный счет для полей рядом с вашими камнями, которые могут участвовать в ряду. Либо линейный пример, который вы привели, либо что-то квадратичное, вероятно, будет хорошо работать.
Чтобы помешать вашему противнику, вы должны поместить камни рядом с его / ее камнями. Это особенно хорошо, если вы ударите двух зайцев одним выстрелом, поэтому камни противника должны увеличивать ценность окружающих полей так же, как ваши - чем больше камней он уже выстроил, тем выше оценка и тем больше вероятность того, что Алгоритм будет пытаться отрезать противника.
Самым важным здесь является взвешивание различных полей, а также то, взвешены ли камни противника иначе, чем ваши. К сожалению, я не могу помочь с этим, но значения должны быть достаточно простыми, чтобы определить их методом проб и ошибок после написания самой игры.
Однако это очень простой подход, и он будет лучше, чем алгоритм поиска по дереву. В поиске Google есть статья о поиске угроз , которая, по-видимому, хорошо работает для Gomoku. Бумага находится за платой, хотя: /