java - 如何在java中评价四子棋游戏的情况

标签 java artificial-intelligence evaluation-function

我正在尝试为“Get four”游戏编写一个简单的 AI。 基本的游戏原理已经完成,所以我可以扔进不同颜色的硬币,它们相互堆叠并填充一个二维数组等等。 到目前为止,该方法如下所示:

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

X 是水平坐标,因为 y 坐标是由数组中已有的石头数量决定的,我认为这个想法很明显。

现在的问题是我必须对特定的游戏情况进行评分,因此找出在特定情况下我可以得到多少个新的对、三胞胎和可能的连续 4 个,然后为每种情况赋予特定的值。有了这些值,我可以设置一个“游戏树”,然后决定下一步最好的举动(稍后实现 Alpha-Beta-Pruning)。 我当前的问题是我想不出一种有效的方法来在java方法中实现当前游戏情况的评级。
任何想法将不胜感激!

最佳答案

我猜这是一项家庭作业,您的意思是您想编写评估函数但不知道要使用什么技巧?

这款游戏的英文名为“Connect 4”,所以你可以在 google 上搜索 “连接4个评估函数”。

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

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

关于java - 如何在java中评价四子棋游戏的情况,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/354689/

相关文章:

java - JSch 如何从一系列管道命令中检索结果

machine-learning - 多项式回归没有给出正确的假设

machine-learning - 如何为棋盘游戏(wizwoz)结果创建评估函数

java - 国际象棋游戏的评估函数是否考虑了棋盘上的所有棋子?

java - 如何使用 for 循环访问对象数据(其中对象位于数组中)?

java - 如何将 UTF 字符串转换为 ANSI 并使用 JAVA-ANDROID 在 ExternalSD 中创建 ANSI 文本文件

java - 为什么很多 Java Stream 接口(interface)方法在参数中使用下界通配符而不是泛型类型?

java - Java中的前向链接和后向链接

c++ - 我的算法的准确性在数字较小时是完美的,而在数字较大时会下降,但并非总是如此