Quoridor AI - неориентированный граф - PullRequest
0 голосов
/ 03 августа 2020

В качестве домашнего задания мне нужно создать ИИ для игры Quoridor.

normal board

After some analysis on my side, I decided to represent the board of the game as an undirected graph (see below).

неориентированный граф

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

Проблема в том, что я действительно не Я понимаю, как представить такой граф в Прологе. Я уже видел, как создать простой неориентированный граф с примерно 10 ребрами, но у этого 81.

Пример простого неориентированного графа:

arc(1,2).    
arc(2,1).    
arc(1,4).    
arc(4,1).    
arc(2,3).    
arc(3,2).    
arc(3,5).    
arc(5,3).    
arc(5,6).    
arc(6,5).

После этого мне также должно быть проще используйте алгоритм MiniMax на графике.

Большое спасибо!

1 Ответ

1 голос
/ 03 августа 2020

Если вы пронумеруете свои узлы 1, 2, 3, ..., 81 по следующей схеме:

 1  2  3  4  5  6  7  8  9
10 11 12 13 14 15 16 17 18
...

, тогда на вашем графике будут дуги от 1 до 2, от 2 до 3 , не от 3 до 4, а затем снова от 4 до 5, ... et c. У вас также есть ar c от 4 до 13, но нет, например, от 5 до 14. Верно?

Таким образом, вы можете прочитать список дуг из диаграммы, чтобы получить:

arc(1, 2).
arc(2, 3).
arc(4, 5).
...
arc(4, 15).
...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...