admin 发表于 2016-11-10 12:10:59

基于java的西洋棋的设计与实现

技术:Java等
摘要:
西洋棋电脑博弈是人工智能研究领域的一个重要方面。由于国际象棋的复杂程度略高,人工智能的发展水平,切实的表现在计算机博弈的能力上。国际上对电脑国际象棋智能的研究有卓越的成就,而电脑智能跟人类国际象棋冠军对弈并获得胜利,已经广为人知。西洋棋电脑博弈在国际上的地位母庸置疑,在人工智能领域上也是举足轻重。 我在查阅大部分关于计算机博弈,游戏程序开发资料的基础上,结合我对西洋棋的理解,介绍如何实现一款具有一定棋力,且能双人博弈,交互友好的西洋棋学习软件程序,文中的主要工作如下:

1.简述西洋棋的历史与玩法,让人知道西洋棋的背景,包括西洋棋的起源,发展,以及在当今社会下的地位,并对西洋棋的玩法进行介绍,让大家深入地对西洋棋进行了解并让大家知道西洋棋的乐趣所在。
2.总结分析西洋棋电脑博弈的关键技术问题,包括数据结构的组成、搜索算法的研究、局面评估的函数还有交互界面的绘制等等。并对整个系统进行初步分析,确定开发过程中要实现什么功能。首先解决的是西洋棋在计算机中的绘制问题,研究如何能让计算机绘制成正确的棋盘跟把正确的棋子贴图放到正确的位置。
3.文中还研究了游戏中的算法设计,如何与人类对弈。而且要知道什么样的着法是合理的,假如程序连不合理的招数都不能检测出来,那么对手就可以利用这种招数来欺骗电脑;找出所有合理棋法的算法,这样程序就可以从这些棋法中找到最好的,而不是随便找一种棋法;要学会比较方法,包括比较着的方法和比较局面的方法,这样程序就可以选择最佳的棋法。 然后对搜索算法进行了一部分研究,首先对所处的局面进行评估,得出评估值,然后通过搜索算法搜索出最佳的局面,最后进行判断,做出电脑的选择。

关键词 : java西洋棋对弈

目录:
1绪论    10
    1.1西洋棋历史    10
1.1.1简述西洋棋    10
1.1.2西洋棋的起源    10
1.1.3西洋棋的变革    12
1.2西洋棋的基本规则    14
1.2.1 棋盘和棋子    14
1.2.2棋子的走法    15
1.2.3胜负的规则    17
2 西洋棋游戏的需求分析    18
2.1软件实现的目标分析    18
2.2用户的特点    18
2.3 系统初步分析    18
2.4对功能的设定    19
2.4.1对弈双方设定    19
2.4.2时间设定    20
2.4.3对弈开始结束的设定    20
3 西洋棋学习软件的架构设计    20
3.1初步设计    21
3.2 局面表示    22
3.3数据结构    23
3.4走法生成    23
3.5搜索算法    24
3.6局面评估    25
3.7窗口探测    25
3.7.1渴望搜索    25
3.7.2极小窗口算法    26
3.8静寂搜索    27
3.9历史启发    28
3.10深层迭代    29
3.11静态评估算法详述    30
3.11.1.对棋子攻击性和棋力的评估    31
3.11.2对棋子位置附加价值的综合评估    31
3.11.3.对灵活性的评估    31
3.11.4.对棋子的保护性和协调性的评估    32
3.11.5.静态估值函数    32
3.11.6.静态估值函数的缺陷    32
3.12局势因子及动态局势再评估函数    33
3.13动态局势再评估算法的步骤    34
4 西洋棋学习软件系统实现    35
4.1界面实现    35
4.1.1详细实现    35
4.1.2关键代码展示    37
4.2走棋规则    38
4.2.1局面表示    38
4.2.2走法表示    39
4.2.3关键代码展示    42
4.3胜负判断    44
4.3.1王是否被吃    44
4.3.2时间是否用完    45
4.3.3王是否被将死    45
4.3.4关键代码展示    46
4.4游戏模式及限时    47
4.4.1时间限制的设置    47
4.4.2游戏模式的设置    48
4.5 AI 算法分析    48
4.5.1算法概述    49
4.5.2局面评估    49
4.5.3搜索算法    51
4.5.4置换表和开局残局库    53
      4.6其余部分代码展示...................................................................................................54
5程序测试    56
5.1系统测试环境    56
5.2测试方法    57
5.3测试用例设计    57
5.3.1人人对弈    57
5.3.2人机对弈    57
      5.3.3走法错位判断.....................................................................................................57
5.3.4胜负判断    58
5.4测试计算时间    58
5.5测试结果分析    58
    5.6项目运行截图...................................................................................................................59
结论    60
参考文献    61
致谢    62

论文字数:36257
包含资料:


截图:


百度网盘下载地址(金币充值):
**** 本内容需购买 ****

页: [1]
查看完整版本: 基于java的西洋棋的设计与实现