首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Prolog游戏编程板评估

Prolog游戏编程板评估
EN

Stack Overflow用户
提问于 2012-10-24 02:54:43
回答 1查看 681关注 0票数 1

我已经用prolog创建了一个游戏(连续4个)。我的启发式函数要求我知道棋盘上每个可能的4行组合中有多少玩家和对手的筹码。我使用的方法如下(在psuedocodish中):

我有一个列表,上面列出了板子(ComboList) = form==> [[A,B,C,D]|Rest]的所有可能的四个。我有一个列表,其中包括第一个玩家的所有移动(List1) = form==> [[1],[7],[14]],以及对手移动的一个列表(List2)。

步骤1:从ComboList获取第一个组合,2:检查所有的List1以查看此组合中有多少个,3:检查所有的List2以查看此组合中有多少个,从ComboList移动到下一个组合并重新开始...

这个过程花费了太多的运行时间来完成所需的工作。

有没有人能推荐一些更好、更有效的建议!非常感谢提前!

EN

回答 1

Stack Overflow用户

发布于 2014-07-11 20:35:07

下面的代码使用了成员/3,它也被称为nth1/3。请看这里:

代码语言:javascript
运行
复制
 http://storage.developerzen.com/fourrow.pro.txt

谓词现在可以在库(列表)中找到,并且可能具有本机支持或快速实现:

代码语言:javascript
运行
复制
 http://www.swi-prolog.org/pldoc/man?predicate=nth1/3

但我猜断言一些事实并依赖于参数索引可能会让你得到更好的结果。请看这里的示例:

代码语言:javascript
运行
复制
 http://www.mxro.de/applications/four-in-a-row

希望这能有所帮助。

再见

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

https://stackoverflow.com/questions/13037239

复制
相关文章

相似问题

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