Gomoku основанный на массиве алгоритм AI?

Путем путь назад (думают 20 + годы) я встретился с игровым исходным кодом Gomoku в журнале, который я ввел для своего компьютера и хорошо провел время с.

У игры было трудно выиграть, но основной алгоритм для компьютера AI был действительно просто и не составлял много кода. Интересно, знает ли кто-либо этот алгоритм и имеет некоторые ссылки на некоторый источник или теорию об этом.

Вещи, которые я помню, состояли в том, что это в основном выделило массив, который покрыл всю плату. Затем каждый раз, когда я или это, поместил часть, это добавит много весов ко всем местоположениям на плате, на которую возможно повлияла бы часть.

Например (отмечают, что веса являются определенно неправильными, поскольку я не помню их):

1   1   1
 2  2  2
  3 3 3
   444
1234X4321
  3 3 3
 2  2  2
1   1   1

Затем это просто просканировало массив для открывать отделения с самым низким или самым высоким значением.

Вещи я нечеток на:

  • Возможно, это имело два массива, один для меня и один для себя и было минимальное взвешивание / макс. взвешивание?
  • Возможно, был больше к алгоритму, но в его ядре это был в основном массив и взвешенные числа

Это звонит в звонок с кем-либо вообще? Кто-либо получил что-нибудь, что поможет?

12
задан Lasse V. Karlsen 2 May 2010 в 12:08
поделиться

3 ответа

Прочитав ваше описание и немного подумав, я думаю, что это, вероятно, работает с одним массивом, именно так, как вы описали.

Для достижения цели «пять в ряд» вы должны (а) не допустить успеха соперника и (б) добиться успеха самому.

Чтобы добиться успеха, вы должны размещать камни рядом с другими камнями, которые у вас уже есть на доске, поэтому имеет смысл добавить положительный счет для полей рядом с вашими камнями, которые могут участвовать в ряду. Либо приведенный вами линейный пример, либо что-то квадратное, вероятно, подойдет.

Чтобы помешать вашему противнику добиться успеха, вы должны положить камни рядом с его / ее камнями. Это особенно хорошо, если вы ударите двух зайцев одним камнем, поэтому камни противника должны увеличивать ценность окружающих полей так же, как и ваши - чем больше камней он уже выстроил в ряд, тем выше оценка и тем больше вероятность того, что алгоритм попытается отрезать противника.

Самым важным здесь является взвешивание различных полей, а также то, имеют ли камни противника другой вес, чем ваш.К сожалению, я не могу с этим помочь, но значения должны быть достаточно простыми, чтобы их можно было вычислить методом проб и ошибок, как только сама игра будет написана.

Однако это очень простой подход, и алгоритм поиска по дереву его превосходит по производительности. При поиске в Google есть похожая статья о поиске угроз , которая, по-видимому, хорошо работает для Gomoku. Однако статья скрывается за стеной выплат: /

6
ответ дан 2 December 2019 в 22:04
поделиться

Я не читал статью, но, судя по описанию, я думаю, что это какая-то форма алгоритма Minimax

2
ответ дан 2 December 2019 в 22:04
поделиться

Это древняя игра - я нашел код на Planet Source Code . Я играл в эту игру во время учебы в колледже, и за 286 дней у меня была БАЗОВАЯ версия.

1
ответ дан 2 December 2019 в 22:04
поделиться
Другие вопросы по тегам:

Похожие вопросы: