如何评价java中连接四种游戏的情况

时间:2008-12-10 00:05:34

标签: java artificial-intelligence evaluation-function

我正在尝试为“Get 4”游戏编写一个简单的AI。 基本的游戏原则已经完成,因此我可以投入不同颜色的硬币,并且它们相互堆叠并填充2D数组等等。 到目前为止,这就是方法的样子:

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

X是水平坐标,因为y坐标是由阵列中已有多少石头决定的,我认为这个想法是显而易见的。

现在的问题是我必须对具体的游戏情况进行评分,因此在特定情况下我可以找到多少新对,三元组和可能的4个然后给每个情况一个特定值。有了这些值,我可以设置一个“游戏树”,然后决定接下来哪个移动最好(稍后实施Alpha-Beta-Pruning)。 我目前的问题是我无法想到一种在java方法中实现当前游戏情况评级的有效方法 任何想法将不胜感激!

3 个答案:

答案 0 :(得分:4)

我猜这是一个家庭作业,你是说你想写评价函数而不知道要用什么技巧?

该游戏在英语中被称为“Connect 4”,因此您可以谷歌搜索 “连接4评估功能”。

你可以找到足够的人讨论启发式。

请不要复制实际的源代码,这是一项重要的练习:)

答案 1 :(得分:1)

Connect 4的搜索空间不大。对于一个简单的实现,虽然需要一段时间才能运行(可能需要几十分钟)才能进行极小极大搜索,直到某人获胜或游戏结束。为一个玩家或另一个玩家分配+1或-1,为平局分配0。

答案 2 :(得分:0)

胡说八道。搜索空间巨大。如果你想这样做,你需要使用预定义的表。