ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

C++ QT开发人机象棋(搜索算法)

2019-07-28 16:41:32  阅读:334  来源: 互联网

标签:小明 QT 下棋 象棋 电脑 C++ 搜索算法 权值 小偷


使用极大极小值算法,在满足电脑下棋的时候自己的局势能够获得最大权值的情况下判断在当前局势下的玩家的最小的权值,这样能够保证算法最优。

 

先从一个故事说起,比如说现在有有一个小偷偷了一些物品,小明看到后跟小偷说如果小偷给他一部分东西他就不报警,并且小明只取一件物品,图中的三个箱子里面分别有两个不同价值的物品,那小偷也说了,你选择箱子,我给你拿物品,这个时候为了获得最大的利益,小明应该选择2号箱子,这样按照博弈的思想,小明和小偷都能够让利益最大化。

 

那么我们可以把这个思想枚举到我们的象棋上面来:

 

 

现在按照两步来说,作为电脑,在第一步下棋的时候选择的肯定是最大分,但是如果说直接用搜索一层的分值来下棋的话,人机象棋的棋力其实是十分十分弱的,那么我们就应该考虑n步人机,按照前面提到的小偷的例子,在电脑下棋的时候,在满足电脑和玩家都是绝顶聪明的情况下进行判断,那么在1这一步,电脑选择的应该是权值最大的,下一步玩家下棋,这时候,电脑应该选择的是人下期完之后的权值的最小值。

 

标签:小明,QT,下棋,象棋,电脑,C++,搜索算法,权值,小偷
来源: https://blog.csdn.net/zbq_tt5/article/details/97616074

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有