2008年清华大学智能体大赛俄式斗塔用户指南.pdfVIP

2008年清华大学智能体大赛俄式斗塔用户指南.pdf

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
2008 年清华大学智能体大赛 俄式斗塔用户指南 阅读须知 本用户指南假设读者已经阅读过《俄式斗塔游戏介绍》。 请下载ed2-release-beta1 .rar 程序包,对照阅读。 游戏如何进行? 游戏运行的模式是基于网络的。游戏的逻辑调控部分是一个服务器每个选手的AI 也都是一个程 序。AI 程序通过网络与程序逻辑调控通讯,同步游戏信息,发送决策信息等。服务器的地址和 连接端口通过命令行传送给AI 程序。AI 程序连接服务器之后按照一定的协议开始进行通讯,来 参与游戏。 游戏的AI 程序中不包含身份说明与验证。 PLAYFILE 为了方便运行AI ,我们推荐选手把自己的AI 程序和程序需要的文件放进一个目录下,这样方便 上传拷贝。同时,由于不同的程序的运行启动方式不同,在AI 目录下需要有一个名称为playfile 的文件,其中的内容是自己AI 程序的启动命令行。命令行中用$HOST$表示服务器参数, $PORT$表示端口参数,这样我们在运行AI 程序的时候就可以方便了。您可以使用tester 目录下 的play 命令来尝试运行自己的AI 程序,看一看命令行的效果。在运行的时候$HOST$和$PORT$会 自动被替换为特定的主机和端口。 ED2 -TESTER teseter 目录下的ed2-tester 自动按照ed2-tester.ini 的配置运行一个E-DOTA 游戏服务器,并运行 AI 程序和观察程序连接服务器。ed2-tester.ini 中有很详尽的注释,请您自行阅读。ed2-tester 的目 的是为选手提供一个能够给自己测试的平台。 AI 模板 虽然程序是从网上传输的,但是我们目前还没有打算公开网络传输的协议。尽管我们使用的协议 很简单,而且程序的几乎所有源码我们都会提供给选手。我们只是还没有准备没有给出相应的文 档。 但是,我们给出了几种语言的AI 程序模板,目前有MinGW C++ 、Visual Studio 2005 C++ 、Java6 和Delphi(Pascal) 。他们都存储在tester\samples 目录下。程序中都有比较详细的注释,并且都采 用了类似的接口。这里我们推荐使用两种C++语言的模板,他们采用的是和游戏逻辑判定相同 的代码,经过更多的调试,相对来说比较稳定。另外C++语言也应该是这些语言中运行速度最 快的一个。如果您对模板中发现了什么问题,请及时联系我们,或者到我们的交流论坛上提问, 我们会及时解答的。另外如果您发现了什么bug ,也请及时告诉我们,我们感激不尽。 模板都是单线程的程序,AI 会自动解析出网络上收到的数据,翻译成本地的数据结构,并在需 要用户反应的时候调用相应的函数。参与者只需要编写这些将被调用的函数即可 (如C++模板 中只需要重新编写action.cpp 中的函数即可)。由于程序是单线程的,在函数被调用期间,程序 几乎不会做任何其他事情。大部分决策都是有时间限制的,用户因此应该自己在适当的时候查看 计时(比如C++ 中可以用time(0)来获取运行时间,是精确到毫秒的,但具体也跟不同的编译器 实现相关。)在游戏服务器端,每次计时包括其中传输的时间,因此AI 自己的计时应该略小于 游戏中的时限要求。 由于正式比赛的时候,每个用户的AI 会在单独的机器上运行,因此可能非单线程的AI 会能够 更好的利用时间从而有一些特别的优势。但这也会使得AI 程序变得相对更加复杂而难以调试。 同时,我们对网络数据的解析也并不一定是最高效的。有志于此优化的用户可以自己改造模板。 游戏中用到的数据都可以通过相应的数据结构直接读取获得,甚至修改(当然修改只会影响自己, 而不会影响网络那边的服务器。)模板中都有比较详细的解释,这里我们只额外解释一下未来序 列:在游戏开始的时候,服务器会发送以后所有的未来序列,约200 多块,这些块接收存储之后, 就不会变动了。游戏每回合会更新游戏状态,在游戏状态中存有当前状态下的5 块未来块。其中 还指定了currentIndex,是指在整体序列中的位置,和nextIndex ,是指第6 块在整体序列中的位 置。对于每回合下的未来块的前5 块,应该以游戏状态中的为准,5 块之后的,可以从总的静态 的游戏初始时发送出来的未来序列块中读取,从nextIndex 开始读即可。这样做是因为,道具斗 转星移能够局部改变未来块,因此某个状态下的未来块有可能与静态存储着的未来块不同。 我们的网站在/ ,对编写AI 程序有什么问题,尽请留言提问。我们会在第一时间 予以答复! ED2 -DISPLAY tester/ed2-display 是

文档评论(0)

feiyang66 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档