我正在用Java实现一个台球游戏,它运行得很好。这是一个多人游戏,但尽管如此,它也应该可以单独玩。为此,我尝试实现一个简单的KI。目前,KI只是随机选择一个方向和一个随机强度的脉冲(不知道正确的英文单词)。当然,这种人工智能非常差,不太可能挑战玩家。
所以我想要改进KI,但有几个很难解决的问题。首先,我只想选择最近的球,并试着把它直接放进最近的洞里。这并不是那么糟糕,但是如果中间有其他球,它就不再工作了。此外,这并没有解决计算脉冲强度的问题。
那么有什么一般性的建议吗?或者有什么想法?最佳实践?
发布于 2010-05-10 09:16:19
计算游戏一次“移动”的结果需要多少CPU时间和内存?你能负担得起分析一个以上的走法吗?如果这样做相对便宜,只需选择N个随机方向/脉冲,计算结果并选择最好的。你可以消除一些“棘手”的情况,当球在太多的碰撞后进入口袋。此外,为了简化,您可以限制每次移动的模拟时间(即,不要等到所有球停止,只计算前T秒)。
这样,你可以有不同级别的计算机玩家--较高的N(和T)对应较高的游戏级别。
发布于 2010-05-10 22:17:24
根据台球游戏的不同,你通常有两个任务
评估桌面上的情况(获取可能的镜头)
angle1、ball1、pocket2
angle2、ball1、pocket3
angle3、ball1、ball2、pocket1
angle4、cushion2、ball2、pocket1
选择击球(不仅基于难度,还基于潜在的增益)
发布于 2010-05-10 08:58:58
我可以想到两种广泛的方法。
我最喜欢解决方案1;它可以让你找到一次可以沉两个或更多球的情况。
https://stackoverflow.com/questions/2799785
复制相似问题