基于WinCE 应用程序的围棋游戏开发.docVIP

基于WinCE 应用程序的围棋游戏开发.doc

  1. 1、本文档共6页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于WinCE 应用程序的围棋游戏开发 摘 要 机器博弈,也称计算机博弈,即让计算机下棋。围棋是一种策略性二人棋类游戏,使用格状棋盘及黑白二色棋子进行对弈。文中计算机围棋游戏引擎的开发采用马尔科夫决策模型,使用人工智能的知识,含有大量计算,整个计算紧密依赖于系统资源,计算量越大,引擎的选点越精确,棋力越高。针对嵌入式系统软硬件的特定性,其资源和计算能力的局限性,本文主要完成了两个工作:一是将实验室适用于PC 的游戏引擎移植到WinCE,开发适合嵌入式系统的围棋游戏引擎,实现大规模计算的移植,使游戏引擎在嵌入式有限的资源上,通过精简的计算量,达到不错的效果;二是实现WinCE 上围棋游戏前台界面的开发。 关键词 机器博弈,UCT,蒙特卡洛树搜索,嵌入式 引 言 计算机围棋就是结合人工智能技术教计算机下围棋,以达到与人类棋手相抗衡的目的。老式的围棋程序编程时注重在围棋知识,文中使用的对弈引擎,采用了蒙特卡洛博弈树搜索的思想。UCT 搜索是蒙特卡洛树搜索的核心,注重于海量的搜索和随机的下法搜索。因此整个过程是一个大规模的计算,需要大量资源的支持。嵌入式设备正日益渗透到人们的日常生活中,默默地为我们提供连接和服务,嵌入式设备往往是一个资源有限的系统,它们追求的是在有限的价格上满足一定的功能性要求。通常它们采用那些功能并不强大的CPU,这也是开发者不得不尽可能地压缩嵌入式系统性能的原因。最初的嵌入式设备是单一用途的,它们拥有各自独特的显示方式和用户界面,而今天它们变成了类似PC 的系统。它们可以运行很多相同的应用程序。针对嵌入式资源的限制,如何将对资源有很大依赖性的大规模的计算,成功的移植到嵌入式系统中,并能使其达到类似与在PC 上计算的效果。针对此问题,必须对原适用于PC 上的游戏引擎做出修改,才能使其在嵌入式系统中成功的运行。 1 游戏设计及框架 Windows CE 程序采用消息响应工作方式。当有事件发生时,如触摸笔点击屏幕等,这些统称为事件,Windows CE 操作系统产生相应的消息,并把消息发送到相应的窗口;窗口在收到消息后,通过一种所谓的“回调”方式,指示Windows CE操作系统调用相应的消息处理过程,进而完成对事件消息的处理。 嵌入式系统软硬件的特定性,使其在资源和计算能力有很大的局限性,由此,本文开发了适合嵌入式系统的围棋游戏引擎。并根据消息响应的工作方式添加相应的消息处理,从而实现Wince 平台上围棋游戏的开发。 1.1 PC 围棋游戏引擎的嵌入式移植 围棋游戏的设计中,包括了棋盘,对弈引擎,局面评估等。游戏的实现中,最主要的是对弈引擎的设计,即在当前诸多可下点中选取出比较好的点,从而使落子位置的选择尽可能准确,提高引擎的棋力水平。 经典的博弈搜索算法主要有minmax 算法、negamax 算法、alphabets 算法、failsoft 算法、negascout 算法和mtdf 算法等等。近年来又有抽象证据搜索、证据数搜索、分解搜索等算法出现。 博弈搜索算法的效率决定于几个因素:状态表示、候选走法产生、确定目标状态、确定相对优势状态的静态评估函数,另外死活搜索也可能是十分重要的影响因素。 文中对弈引擎的设计,采用了蒙特卡洛博弈树搜索的思想。UCT搜索是蒙特卡洛树搜索的核心,在搜索过程中,通过不断对其子节点完成一个UCB1选点的过程,来走完从根节点到叶子节点的一个路径,并完成对叶子节点的评估及展开。在UCT 搜索过程中,UCB1 是一个通常意义上不错的公式,当然,在实际中,可以根据自己的程序进行调整。 在 UCT 对弈引擎中,对于整棵博弈树,记录root 节点,之后,从跟节点开始,一层一层的运用UCB1 公式进行选择,当到达某一叶子节点,对局面进行评估,这样便完成一次模拟。整个过程就是不断的进行模拟,直到到达某一终止条件为止,该终止条件可以是时间或模拟次数。针对嵌入式系统本身的局限性,选择适当的时间或模拟次数,使得程序在允许的资源条件内,最大的发挥计算能力,提高引擎的水平。 为了优化博弈树的搜索,同时采用逐渐扩展的算法,为了能进行逐渐扩展,就必须首先对其叶子节点有个排序,而何时引入这些新的节点,是在模拟的最后,通过对该叶子节点被访问的次数进行判断而决定是否进行扩展。 在博弈树节点的展开过程中,如果不采用任何先验的知识,其子节点在展开时多是随机的,为了避免这种盲目性,将适当的知识引入到节点展开过程中,来对各个节点的重要性有个大致认识,由此来指引其子节点的展开,使之在展开和搜索的过程中具有更高的效率。这个静态排序的工作,是在搜索节点需要展开之前完成的。在排序时,由于排序是为蒙特卡洛树搜索来服务,所以在注重准确性的同

文档评论(0)

实验室仪器管理 + 关注
实名认证
服务提供商

本人在医药行业摸爬滚打10年,做过实验室QC,仪器公司售后技术支持工程师,擅长解答实验室仪器问题,现为一家制药企业仪器管理。

1亿VIP精品文档

相关文档