博舍

中国象棋人工智能实现 象棋人工智能对弈棋谱图片

中国象棋人工智能实现

中国象棋在我看来最难的人工对战中电脑怎能走这个问题,以下为本人浅见,希望各位多多包涵!

1.初步尝试

电脑的优势在于强大的计算能力,虽然其不知道怎么走合适,但是它能够模拟的将每一种走法都走一遍,选最优的走法来走。我们的思路就有了,首先需要解决两个问题:

(1)怎么判断局面最优?

(2)怎么模拟走?

第一个问题可以用每一个棋子的重要程度来打分,比如将最重要,所以给1000分,而车次之给100分,炮80等等

第二个问题因为每一个中国象棋实现方式不同,所以我分享一下本人代码

电脑模拟走一步的代码:

movBoard::getbestmove(){/**1.获取所有可能走的步数*2.试着走一下*3.看看局面怎么样*4.选择最好的走法*/QVectorcanstep;canstep=getallstep();intmaxscore=-100000;movret;for(autoit=canstep.begin();it!=canstep.end();it++){movstep=*it;fakemove(step);//模拟走一步intscore=ctscore();//计算局面分unfakemove(step);//返回if(score>maxscore)//计算最大的局面分{maxscore=score;ret.equal(step);}}qDebug()

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。

上一篇

下一篇