五子棋实现算法设计

五子棋实现算法设计

ID:2211425

大小:35.56 KB

页数:0页

时间:2017-11-15

五子棋实现算法设计_第页
预览图正在加载中,预计需要20秒,请耐心等待
资源描述:

《五子棋实现算法设计》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、以下是我关于五子棋实现人工智能的初步想法,有待完善3步定式开局电脑执黑(先走)则然后根据白棋的走法:If(直贴防守)电脑下(此开局为花月,黑子必胜开局,黑方优势极大)If(斜贴防守)或者其他地方,即不是直贴位置电脑下(此开局为浦月,也是黑子必胜开局)由于开局简单,且棋盘上没有子,不好做人工智能判断,而且此两开局是黑方优势最大的走法,实现简单,所以我们可以直接硬性执行电脑执白(后走)人的走法可完全视为电脑可以斜贴或者直贴人走贴边和角落情况是极端位置,如果是这样则电脑可以走无视人走的第一步,接下来的走法视为电脑先行专家系统中的规则:1连5v(x)=

2、1202封5v(x)=603活4v(x)=304封活4v(x)=125冲4v(x)=96封冲4v(x)=61活3v(x)=52跳3v(x)=53冲3v(x)=24活2v(x)=2此处是一些五子棋落子的术语,参考文献http://baike.baidu.com/view/679408.htm具体当面解释,权值v(x)是经过我经验和思考后权衡过的,有待测试改善。h(x)=v1(x)+v2(x)+v3(x)+…vn(x)即对于一个空位置,判断落子的价值,落子后满足专家系统中的10条规则,一步棋可以满足多条规则,一个规则可被满足多次,然后将所有的满足的

3、规则,将权值加起来赋予h(x)图解如下:13XXX2X4如果下1,则XXXXX形成一个活3,两个活2,h(x)=v(活3)+2*v(活2)=5+2*2=9如果下3,则XXXXX行成一个活4,一个活2,h(x)=v(活4)+v(活2)=30+2=32显然32大,故应该执行3这个位置启发博弈应用电脑评估有个极大极小的过程,初步设计是有个价值条,0--------100初始值t(x)为50,每在预测过程中行动一步都将改变价值条的值t(x)执黑:t(x)=t(x-1)+h(x)执白:t(x)=t(x-1)-h(x)t(x)越大黑方越有优势,白方相反局部

4、最佳搜索定式开局后,则棋盘上有3个棋子,将此3棋子放入closed(),表示已经写过的位置,将这3个子的拓展16位置(即8个方向延伸2格如图所示)xXXxxXXx1xXXxXxxx先判断该位置是否在open(),或者closed(),若都不在,则将该位置加入open()。如果执行评估。评估open()中的各个位置的价值,先将open()复制到test(),将closed()复制到down()。Begint(x)=50;test()=[s0s1s2…sn],down()=[d0d1d2…dn],对test()中每个位置根据专家系统规则给予该点h(

5、x),排列顺序,高的放左边。for(i=0;i<3;i++)//i根据智能等级设置,此为搜索宽度{将s0移至down(),将此点的h(x)计入t(x)Ifwin,returnelsebegin产生s0的拓展16点,作为其孩子c0,c1,c2…cn判断孩子是否在test()或down(),将不在的加入test()评估test(),循环3次//根据智能等级设置搜索深度选出最好的3条路径//经过3*3*3的拓展搜索后将有27条路径随机选一条路径执行,除非差距在t(x)10以上//避免程序陷入固定的途径}end取极大值搜索树如下:[s0s1s2…sn]

6、取极小值取极小值取极小值排序排序排序取极大值取极大值取极大值[s0…sn][s0…sn][s0…sn][s0…sn][s0…sn][s0…sn][s0…sn][s0…sn][s0…sn]根据智能等级设置路径数:3*3*3=27新手等级35=243行家等级55=3125大师等级评估完后,选出落子点,放入棋子,判断输赢,如果还没赢,将该点移至closed(),将该点的拓展16点判断是否在open()和closed(),然后加入open()。

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。