论文部分内容阅读
计算机博弈是人工智能研究领域的一个重要方面。鉴于国际象棋的复杂程度较高,人工智能的发展水平,切实的表现在计算机博弈的能力上。国际上对国际象棋的研究有卓越的成就,而电脑跟国际象棋冠军对弈并获胜,已经街知巷闻。国际象棋计算机博弈在国际上的地位不容置疑,在人工智能领域也是举足轻重。本人在查阅大部分关于计算机博弈,游戏程序开发资料的基础上,结合本人对国际象棋的理解,介绍如何实现一款具有一定棋力,且能双人博弈,交互友好的国际象棋学习软件程序,文中的主要工作如下:1.分析并总结国际象棋计算机博弈的关键技术问题,包括数据结构组成、搜索算法研究、局面评估函数还有交互界面的绘制等等。2.对整个系统进行初步分析,确定开发过程中要实现什么功能。文中详细写了本系统的设计,包括界面设计,局面表示,走法表示,还有胜负判断,游戏模式设置等。3.首先解决的是国际象棋在计算机中的绘制问题,研究如何能让计算机绘制成正确的棋盘跟把正确的棋子贴图放到正确的位置。4.文中还研究了游戏中的算法设计,即什么样的着法是合理的,如果程序连不合理的着法都不能检测出来,那么对手就可以利用这种着法来欺骗程序;找出所有合理着法的算法,这样程序就可以从这些着法中找到最好的,而不是随便找一种着法;比较方法,包括比较着法的方法和比较局面的方法,这样程序就可以选择最佳的着法。5.然后对搜索算法进行了一部分研究,首先所处的局面进行评估,得出评估值,然后通过搜索算法搜索出最佳的局面,最后进行判断,本文还提出引入置换表,开局残局库的概念,供以后扩展程序做基础。6.对开发出来的国际象棋游戏的学习软件Chess进行一系列的测试,防止出现低级错误根据本文的研究,使用MFC文档视图,基于Visual C++编写的,国际象棋是“信息完备”的游戏,因为游戏双方面对的局面是同一个局面,任何一方所掌握的棋子及其位置的信息是一样的。最后开发出一个完整的国际象棋游戏的学习软件Chess,能基本实现人机对弈,双人对弈。