Как оценить ситуацию с подключением четырех игр в Java - PullRequest
0 голосов
/ 10 декабря 2008

Я пытаюсь написать простой ИИ для игры "Get four". Основные принципы игры сделаны, поэтому я могу бросать монеты разного цвета, они складываются друг на друга и заполняют 2D-массив, и так далее, и так далее. до сих пор этот метод выглядит так:

public int insert(int x, int color)  //0 = empty, 1=player1 2=player2"

X - горизонтальная координата, так как координата y определяется количеством камней в массиве, я думаю, что идея очевидна.

Теперь проблема в том, что мне нужно оценивать конкретные игровые ситуации, поэтому найдите, сколько новых пар, триплетов и возможных 4-х подряд я могу получить в конкретной ситуации, чтобы затем придать каждой ситуации конкретное значение. С этими значениями я могу настроить «Игровое дерево», чтобы затем решить, какой ход будет лучше в дальнейшем (позже будет реализована альфа-бета-отсечение). Моя текущая проблема заключается в том, что я не могу придумать эффективный способ реализовать оценку текущей игровой ситуации с помощью метода Java.
Любые идеи будут с благодарностью!

Ответы [ 3 ]

4 голосов
/ 10 декабря 2008

Я предполагаю, что это домашнее задание, и вы имеете в виду, что хотите написать функцию оценки и не знаете, какие приемы использовать?

Игра называется «Connect 4» на английском языке, поэтому вы можете «подключить 4 функции оценки».

Вы можете найти достаточно людей, обсуждающих эвристику.

Пожалуйста, не копируйте фактический исходный код, это важное упражнение :)

1 голос
/ 10 декабря 2008

Область поиска для Connect 4 не слишком велика. Для простой реализации, пусть и той, которая займет некоторое время (возможно, десятки минут), выполните поиск минимакса до тех пор, пока кто-то не выиграет или игра не закончится. Назначьте +1 или -1 для победы одного или другого игрока и 0 для ничьи.

0 голосов
/ 05 февраля 2009

ерунда. пространство поиска огромно. вам нужно использовать предопределенную таблицу, если вы хотите это сделать.

...