首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >允许代理具有其内部状态

允许代理具有其内部状态
EN

Stack Overflow用户
提问于 2017-02-20 02:40:43
回答 1查看 106关注 0票数 2

我正在用Haskell写一个游戏,玩家和AI轮流采取一些行动。到目前为止,人工智能的工作方式是使用游戏的所有信息来生成动作,即它们是GameHistory -> GameState -> Action形式的函数。

这样,这些函数在每次被调用时都会从历史记录中生成一些它们需要的信息。如果它们能有某种“内部状态”(即对相应函数的调用)在轮次之间持续存在,那么编写AI会容易得多。怎么能实现这样的东西呢?(顺便说一句,我还应该考虑到不同类型的AI的内部状态可能有不同的类型。)

EN

回答 1

Stack Overflow用户

发布于 2017-02-20 04:34:28

您要查找的内容可能类似于:

代码语言:javascript
复制
newtype AI = AI { runAI :: GameState -> (AI, Action) }

也就是说,您将返回actor的新状态和操作。您可以在这里使用State monad。您可能还会对阅读自动机感兴趣。如果您需要序列化AI (比如将其存储在数据库中),那么您可能需要做一些不同的操作。

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

https://stackoverflow.com/questions/42331266

复制
相关文章

相似问题

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