五子棋实现算法设计.doc

上传人:鲁** 文档编号:558369125 上传时间:2023-05-27 格式:DOC 页数:4 大小:35.57KB
返回 下载 相关 举报
五子棋实现算法设计.doc_第1页
第1页 / 共4页
五子棋实现算法设计.doc_第2页
第2页 / 共4页
五子棋实现算法设计.doc_第3页
第3页 / 共4页
五子棋实现算法设计.doc_第4页
第4页 / 共4页
亲,该文档总共4页,全部预览完了,如果喜欢就下载吧!
资源描述

《五子棋实现算法设计.doc》由会员分享,可在线阅读,更多相关《五子棋实现算法设计.doc(4页珍藏版)》请在金锄头文库上搜索。

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

2、x)=304 封活4 v(x)=125 冲4 v(x)=96 封冲4 v(x)=67 活3 v(x)=58 跳3 v(x)=59 冲3 v(x)=210 活2 v(x)=2此处是一些五子棋落子的术语,参考文献http:/ v3(x)+vn(x)即对于一个空位置,判断落子的价值,落子后满足专家系统中的10条规则,一步棋可以满足多条规则,一个规则可被满足多次,然后将所有的满足的规则,将权值加起来赋予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

3、(活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)越大黑方越有优势,白方相反局部最佳搜索定式开局后,则棋盘上有3个棋子,将此3棋子放入closed(),表示已经写过的位置,将这3个子的拓展16位置(即8个方向延伸2格如图所示)xXXxxXXx1xXXxXxxx先判断该位置是否在open(),或者closed(),若都不在,则将该位置加入open()。如果执行评估。评

4、估open()中的各个位置的价值,先将open()复制到test(),将closed()复制到down()。Begin t(x)=50; test()= s0s1s2sn, down()= d0d1d2dn, 对test()中每个位置根据专家系统规则给予该点h(x),排列顺序,高的放左边。 for(i=0;i3;i+) /i根据智能等级设置,此为搜索宽度 将s0移至down(),将此点的h(x)计入t(x) If win,return else begin 产生s0的拓展16点,作为其孩子c0,c1,c2cn 判断孩子是否在test()或down(),将不在的加入test() 评估test()

5、,循环3次 /根据智能等级设置搜索深度 选出最好的3条路径 /经过3*3*3的拓展搜索后将有27条路径 随机选一条路径执行,除非差距在t(x)10以上 /避免程序陷入固定的途径end取极大值搜索树如下:s0s1s2sn取极小值取极小值取极小值 排序 排序 排序取极大值取极大值取极大值 s0sn s0sn s0sn s0sn s0sn s0sn s0sn s0sn s0sn根据智能等级设置路径数: 3*3*3=27 新手等级 35 =243 行家等级 55 =3125 大师等级评估完后,选出落子点,放入棋子,判断输赢,如果还没赢,将该点移至closed(),将该点的拓展16点判断是否在open()和closed(),然后加入open()。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 社会民生

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号