第一范文网 - 专业文章范例文档资料分享平台

刘声传毕业设计初稿

来源:用户分享 时间:2025/5/19 2:27:18 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

个黑棋

wpointcan4, //这个位置空,它旁边有四个白棋

bpointcan3, //这个位置空,它的旁边有三个黑棋

wpointcan3, //这个位置空,它的旁边有三个白棋

bpointcan2, //这个位置空,它的旁边有两个黑棋

wpointcan2, //这个位置空,它的旁边有两个白棋

bpointcan1; //不是以上情况,这个位置空

并在搜索之前都赋值为(-1,-1),然后,进行搜索,并把相应的值保存在相应变量里面,而如果前面已经对变量赋值,我们依然赋值,用新值代替旧值。注意:只保存最后一个值,这样的一个好处是,避免了每次都从左上角开始,并且它的随机性比随机函数还随机。

全盘搜索完之后,由于上面的变量中至少有一个已经被

赋值,即不是(-1,-1),可以采用多数优先的方法,让已经有多个同色棋子的位置先下棋。

其原理是,如果已经有四个黑棋,计算机再下一个黑棋就赢了;否则,如果人已经有四个白棋,那么计算机就必须放下一个黑棋,阻止白棋下一步赢;如果已经有三个黑棋,再下一个黑棋,变成四个;否则,如果已经有三个白棋,下一个黑棋,破坏它;两个棋子的同理;否则,在刚才白棋下的地方,顺便找一个位置,下棋。computerdown()函数如下:

//轮到计算机下棋

void CMy3_1View::computerdown() {

//把各种情形赋值为如下 bpointcan4=(-1,-1); wpointcan4=(-1,-1); bpointcan3=(-1,-1); wpointcan3=(-1,-1); bpointcan2=(-1,-1); wpointcan2=(-1,-1);

bpointcan1=(-1,-1);

//搜索最好的落棋点 for(int i=0;i<19;i++) for(int j=0;j<19;j++) bestputdown(i,j); //判断放在哪里 //棋多的位置优先 //黑白一样多时黑先 //不是-1就表示已经被赋值! if(bpointcan4.x!=-1) {

putdown(bpointcan4); return; }

else if(wpointcan4.x!=-1) {

putdown(wpointcan4); return;

}

else if(bpointcan3.x!=-1) {

putdown(bpointcan3); return; }

else if(wpointcan3.x!=-1) {

putdown(wpointcan3); return; }

else if(bpointcan2.x!=-1) {

putdown(bpointcan2); return; }

else if(wpointcan2.x!=-1) {

putdown(wpointcan2);

搜索更多关于: 刘声传毕业设计初稿 的文档
刘声传毕业设计初稿.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c8x0oi08gu87f1wl0kih4_4.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top