首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在java中对连接四个游戏的情况进行评分

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

Stack Overflow用户
提问于 2008-12-10 00:05:34
回答 3查看 2.3K关注 0票数 0

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

代码语言:javascript
复制
public int insert(int x, int color)  //0 = empty, 1=player1 2=player2"

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

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

任何想法都将不胜感激!

EN

回答 3

Stack Overflow用户

发布于 2008-12-10 00:27:10

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

这个游戏的英文名是"Connect 4“,所以你可以在谷歌上搜索"connect 4评估函数”。

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

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

票数 4
EN

Stack Overflow用户

发布于 2008-12-10 10:04:52

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

票数 1
EN

Stack Overflow用户

发布于 2009-02-05 18:33:12

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/354689

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档