如何在java中对连接四个游戏的情况进行评分

如何在java中对连接四个游戏的情况进行评分,java,artificial-intelligence,evaluation-function,Java,Artificial Intelligence,Evaluation Function,我正在尝试写一个简单的人工智能的“四分制”游戏。 基本的游戏规则已经完成了,所以我可以扔进不同颜色的硬币,它们相互堆叠,填充一个2D数组,以此类推。 到目前为止,该方法是这样的: public int insert(int x, int color) //0 = empty, 1=player1 2=player2" X是水平坐标,因为y坐标是由阵列中已经有多少石头决定的,我认为这个想法很明显 现在的问题是,我必须对特定的游戏情况进行评分,因此,找出在特定情况下,我可以获得多少新的配对、三胞

我正在尝试写一个简单的人工智能的“四分制”游戏。 基本的游戏规则已经完成了,所以我可以扔进不同颜色的硬币,它们相互堆叠,填充一个2D数组,以此类推。 到目前为止,该方法是这样的:

public int insert(int x, int color)  //0 = empty, 1=player1 2=player2"
X是水平坐标,因为y坐标是由阵列中已经有多少石头决定的,我认为这个想法很明显

现在的问题是,我必须对特定的游戏情况进行评分,因此,找出在特定情况下,我可以获得多少新的配对、三胞胎和可能的4对,然后给每个情况一个特定的值。有了这些值,我可以建立一个“游戏树”,然后决定下一步哪一步最好(稍后实现Alpha-Beta修剪)。 我目前的问题是,我想不出一种有效的方法来用java方法实现对当前游戏情况的评级。

任何想法都将不胜感激

我猜这是一个家庭作业,你的意思是你想写评估函数,却不知道该使用什么技巧

这个游戏英文名为“连接4”,所以你可以用谷歌搜索 “连接4评估功能”

你可以找到足够多的人讨论启发法


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

我猜这是一个家庭作业,您的意思是您想编写求值函数,但不知道使用什么技巧

这个游戏英文名为“连接4”,所以你可以用谷歌搜索 “连接4评估功能”

你可以找到足够多的人讨论启发法


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

Connect 4的搜索空间不是不可能的大。对于一个简单的实现,尽管它需要运行一段时间(可能需要几十分钟),但要进行极大极小搜索,直到有人获胜,或者游戏结束。为一名玩家或另一名玩家指定+1或-1表示获胜,为平局指定0。

Connect 4的搜索空间不是不可能的大。对于一个简单的实现,尽管它需要运行一段时间(可能需要几十分钟),但要进行极大极小搜索,直到有人获胜,或者游戏结束。为一名或另一名玩家指定+1或-1表示获胜,为平局指定0。

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

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

-1我不明白这是如何升级的。告诉某人使用谷歌不是答案。我可以通过维基百科的链接生活,但这对我来说是不可接受的。谷歌搜索的短语有时很有用,如果你看看历史,你会发现问题最初没有包含“连接4”这个短语。我是将它编辑成游戏正确名称的人,这似乎是他遇到的主要问题。因此,我告诉他正确的名字是什么,在哪里可以找到它。-1我不明白这是怎么被高估的。告诉某人使用谷歌不是答案。我可以通过维基百科的链接生活,但这对我来说是不可接受的。谷歌搜索的短语有时很有用,如果你看看历史,你会发现问题最初没有包含“连接4”这个短语。我是将它编辑成游戏正确名称的人,这似乎是他遇到的主要问题。因此,我告诉他正确的名字是什么,在哪里可以找到它。有了像Fhourstones()这样的高度优化的程序,你仍然需要大约10分钟来解决游戏从头到尾的问题。。8+步的性能更好,但仍然没有那么快,特别是在使用次优算法时。使用高度优化的程序,如Fhourstones(),从开始到结束仍然需要10分钟左右的时间来解决游戏。。8+步的性能更好,但仍然没有那么快,特别是在使用次优算法时。