Как оценить ситуацию с подключением четырех игр в 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 для ничьи.
Ерунда. пространство поиска огромно. вам нужно использовать предопределенную таблицу, если вы хотите это сделать.