|
技术:Java等
摘要:
在最近的几年当中,我们通过改革开放引进许多新的技术,而用计算机编写的象棋程序也拥有极高的水平。20世纪的时候,有一个算法非常大的提升了机器下棋水准,alpha-beta修剪算法大家可以上了解一下,把需要走下一步棋用的搜索量降到了最低。我们通过前面学术人员总结出的经验和教训,来设计我们自己的程序,我们自己的软件。
关键词:java;象棋;棋盘;Zobrist键值;单据库;置换表;评价残局
目录:
摘 要 Ⅰ
ABSTRACT Ⅱ
目 录 III
1 概述 1
1.1 棋盘的标记 2
1.1.1 纵线方式 2
1.1.2 坐标方式 2
1.2 棋子的名称 2
1.3 棋谱的记录方法 3
1.3.1 坐标记法 3
1.3.2 中文纵线记法 3
1.3.3 符号纵线记法 4
2 基本数据结构——位棋盘 5
2.1 什么是位棋盘 5
2.2 位棋盘的作用 5
2.3 位棋盘的基本运算 7
2.4 JAVA中位棋盘的实现 7
2.4.1 位棋盘类的实现 7
2.4.2 位棋盘的初始化 8
2.4.3 位棋盘的更新 9
3 基本数据结构——ZOBRIST键值 11
3.1 比较局面的方法 11
3.2 ZOBRIST键值的实现方法 11
3.3 ZOBRIST键值的工作原理及用途 11
3.3.1 ZOBRIST键值的工作原理 11
3.3.2 ZOBRIST键值的用途 11
3.4 JAVA中实现ZOBRIST键值 12
4 着法生成 13
4.1伪合法着法的生成 13
4.1.1 数组及其下标的含义 13
4.1.2 举例算法——车和炮的走法 16
4.2 合法着法的生成 18
5 搜索算法 20
5.1 最小-最大搜索 20
5.1.1基于最小-最大的评价函数 21
5.1.2 最小-最大搜索 22
6 程序的设计及实现 23
6.1 搜索引擎的实现(ENGINE包) 23
6.2 棋子信息的传输(MESSAGE包) 23
6.3 棋子(PIECES包) 24
6.4 主控模块(MAIN包) 25
参考文献 26
致 谢 27
论文字数:9177
包含资料:
截图:
百度网盘下载地址(金币充值):
游客,本付费内容需要支付 200金币 才能浏览 支付
|
|