苏拉卡尔塔棋博弈技术分析.ppt

  1. 1、本文档共24页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
苏拉卡尔塔棋博弈技术分析 “苏拉卡尔塔”规则 棋盘棋子 1)横竖各6条边构成正方形棋盘,36个交叉点为棋位,各边由8段圆弧连接,通常用2种不同颜色表示。 2)红黑双方各12枚棋子。 初始状态:棋子在各方底线排成2排。 玩法 1)双方轮流走棋,每次走动一枚棋子; 2)除了吃子之外,每枚棋子只能沿着垂直或对角方向走动一格,只能走向空位; 3)吃对方子时必须经过至少一个完整的弧线。 胜负:1. 吃掉所有对方棋子一方获胜; 2. 进入循环,剩余棋子多的一方获胜。 棋盘的数字表示 用6×6的方阵只能表示棋位,没有表示相互的关系 棋子的数字表示 兵种定义:黑子为-1,红字为1,无子为零。则初始局面为 棋局表示 着法表示 走行(前进一步的不吃子着法): 横向(左、右) 竖向(上、下) 斜向(四个方向) 落址在棋盘内并为空位,才为有效的可行着法。 可以采用预置表法实现着法生成 吃子?这里关键是吃子! 需要调整棋盘数据结构,因为没有表示出圆弧的连接关系。 吃子可以定义为飞行,因为必须经过圆弧。 飞行是有轨道的 轨道有两种: 绿轨,圆弧在外圈,可以称之为外轨,用字母g表示。g=1,该棋位在外轨; 蓝轨,圆弧在内圈,可以称之为内轨,用字母b表示。b=1,该棋位在内轨; 棋位的轨道属性 分析盘中的36个棋位: 外轨棋位:(i,j,1,0),边中心处8个,盘中心处4个,共12个; 内轨棋位:(i,j,0,1),近角处12个; 双轨棋位:(i,j,1,1),内外轨相交处8个; 轨外棋位: (i,j,0,0),四角处4个 引进扩展棋盘(Extended Board) 描述圆弧的连接关系,可以引进扩展棋盘 将棋盘坐标填入,即得: 飞行着法描述 转入对应的圆弧变换后的棋位,继续飞行; 转入对应的圆弧变换后的棋位,继续飞行; 转入对应的圆弧变换后的棋位,继续飞行; 转入对应的圆弧变换后的棋位,继续飞行; 如果圆弧变换关系为(0,0),则为非法飞行; 检查着法合理性 如果飞行到达的有子棋位为本方棋子,则为非法飞行; 如果飞行到达的有子棋位为对方棋子,则为吃子着法; 如果在飞行轨道上没有可以吃掉的对方棋子,则不能飞行,只能走子。 飞行着法生成 判断是否在外轨或内轨上,如果不在,不考虑飞行; 在,首先判断本轨线上是否有对方棋子,如果没有,不必飞行; 有,吃子标识置0,向上下左右四个方向一步步地走行; 每走一步,判断有子无子?有子则止,改变飞行方向; 无子则继续前行,到达边缘,延轨道改变前进方向,进入新的直线,吃子标识置1,并记载变向点;(有可能多次改变前进方向) 每走一步,判断有子无子?有子,再判断是否是对方的子?是,则构成吃子,完成“提、动、落、吃”,着法完成; 每走一步,判断有子无子?有子,再判断是否是对方的子?不是,则为非法着法。改变飞行方向。 如果上下左右四个方向都搜索完成,则结束飞行着法生成。 凡是可行的飞行着法都是吃子着法!记载提、落址和变向点。 着法格式 象棋着法构成:提址,动子,落址,吃子 本棋不分兵种,动子无意义,提址对应动子; 如果是飞行着法,落址便对应被吃掉的子(吃子) 走行着法:(提址,落址) 飞行着法:(提址,变向点1,变向点2…,落址) 着法格式可以统一到 ((提址,落址,吃子标识),(变向点集合)),令吃子标识用S表示。 如果吃子标识S=1,则调出变向点集合,并且在落址处清除对方棋子。 变向点的作用是供对战平台演示棋子飞行路线的。 着法描述协议 按右图编码给出: (提址落址S)(变向点…) 变向点仅记录飞出点坐标 记录棋谱是按回合排列,并有回合序号。 为了简单起见,棋谱中也可以省去变向点集合。 棋谱举例 一维数据结构方案 需要考虑的问题 走行着法可以采用预置表法; 飞行着法生成采用棋盘扫描法可行,但是耗时太多,应该考虑更好的算法; 轨道最好采用环形数据结构来描述; 同一个轨道,有四个飞行方向,是否需要4个环? 应用位棋盘,首先判断环上有无对方棋子?有则搜索,无则停止; 如何通过位棋盘运算很快找到提址和落址,找到飞行着法? 着法排序 每个棋子都可能有走

文档评论(0)

118lingling + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档