我就当你已经学过编程语言了。
我姐夫编过一个叫做《跳棋专家》的程序。
他跟我说过大概的方法。其实就是深搜、广搜。
对于己方和对方每个棋子,算出后面N步的可选情况。
再找出最优解。
像跳棋专家,可以设置可算的步数,比如算后面仔念6步,在这种情况下,理论上来说人已经不可能赢过电脑的。
但是,随着预算步数的增加,计算念尺困量会呈指数级增长。
比如算一步,电脑需要1秒钟反应时间,算9步,可能就需要几个小时。
所以,强度和效率有些时候需要折中一下,因为他们是相对的。
而且由于深搜和广搜是递归算法,单层的效率直接决定算法消耗时间的增长程度。
希望我的回答对你有所帮助!
如果觉得好的话,请麻烦楼主采纳qianguozheng_ 的答案,为了团队的采纳率,多谢了!
国际象茄睁棋打败人类10多年前就已经由深蓝颤棚岁完成了,近年仅是个人电脑的国际象棋软件的等级分就已经和简大幅度超过人类,已经没有人类的世界冠军笨到跟计算机挑战自取其辱了。原先还经常的举办国际象棋人机对抗赛,但是几年前开始,为了使人机对抗赛更为有悬念,比赛规则已经改变成计算机让F线以外的一兵了——如果对国际象棋有较为深入一点的研究,就知道一个兵是多么大的价值。国际象棋软件的结构分为:
1,人机界面:让人类能直接以国际象棋语言和计算机对话;
2,引擎:计算局面得分权重,以一定的算法得出分值,正数则白棋优势,负数则黑棋优势,分数越大(越小)则白棋(黑棋)越优。世界电脑国际象棋锦标赛(WCCC)每年都举办,引擎的计算能力是以摩尔定律的年为尺度的,而人类大脑的计算能力是以进化的百万年为尺度的,差距只会越拉越大,何况之中还有程序员的努力将算法优化的因素在内;
3,开局库:集合数以百万计的人类国际象棋比赛的开局,使得在有开局库的前提下,计算机可以不必计算直接走出人类认为的开局谱招。国际象棋大师们都会记住相当多的开局,但是计算机会记住几百万盘棋局;
4,残局库:由超级电脑计算好剩余棋子的所有局面,并存储以备调用。当局面剩余残局库中所存储的局面时,不必计算,计算机直接可以知道结果。6子以内残局库已经算完,7子残局库也已经算出大半。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)