Как оценить ситуацию с подключением четырех игр в Java

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

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

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

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

3 ответа

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

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

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

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

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

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

Другие вопросы по тегам