第1章 概述 1
1.1 计算机博弈概述 1
1.2 国际计算机奥林匹克大赛 2
1.3 全国大学生计算机博弈大赛 2
第2章 计算机博弈基础 3
2.1 计算机博弈的基本原理 3
2.1.1 基本原理 3
2.1.2 计算机博弈的搜索方法 6
2.1.3 递归 7
2.1.4 回溯 9
2.2 常用搜索算法与示例 11
2.2.1 极大极小算法 11
2.2.2 极大极小法实现Tic-Tac-Toe游戏 16
2.2.3 α-β剪枝算法 23
2.2.4 期望搜索算法 25
2.3 估值函数的设计 28
2.3.1 估值函数设计概述 28
2.3.2 估值函数设计示例 30
2.3.3 布局与估值 33
2.3.4 估值函数调整方法简介 36
第3章 亚马逊棋的设计与实现 38
3.1 简介 38
3.2 规则 39
3.3 搜索算法 40
3.4 估值函数设计 42
3.4.1 领地的估值 42
3.4.2 棋子灵活度的估值 46
3.5 程序的设计与实现 48
3.5.1 棋盘表示与数据处理 50
3.5.2 估值函数中的Dji(a)的实现 51
3.5.3 搜索算法的实现 52
3.5.4 走法生成器的实现 55
第4章 点格棋的设计与实现 59
4.1 简介 59
4.2 规则 60
4.3 点格棋的基本原理 61
4.3.1 基本概念 61
4.3.2 基本理论 63
4.4 搜索算法 67
4.5 估值函数设计 68
4.6 程序的设计与实现 73
4.6.1 基本结构 73
4.6.2 点格棋的数据表示 75
4.6.3 估值模块和搜索模块的实现 77
第5章 六子棋的设计与实现 83
5.1 简介 83
5.2 规则 84
5.3 估值分析 85
5.3.1 以棋型为基础的分析方法 85
5.3.2 以“路”为基础的分析方法 88
5.4 估值函数设计 88
5.4.1 基于棋型的估值函数设计 88
5.4.2 基于“路”的估值函数设计 89
5.5 程序的设计与实现 90
5.5.1 软件的基本结构 90
5.5.2 棋盘数据表示 94
5.5.3 走法生成器 94
5.5.4 开局库的使用 97
5.5.5 估值函数的实现 99
5.5.6 搜索算法实现 102
5.5.7 走法生成器的实现 104
5.5.8 置换表与哈希表 111
第6章 苏拉卡尔塔棋的设计与实现 115
6.1 简介 115
6.2 规则 116
6.3 算法分析 116
6.4 估值函数设计 117
6.4.1 棋子的位置分析 117
6.4.2 吃子路径的分析 118
6.4.3 棋子的灵活度分析 120
6.4.4 棋局估值 120
6.5 程序的设计与实现 121
6.5.1 软件的基本结构 121
6.5.2 棋盘数据与棋盘位置价值 121
6.5.3 走法生成模块的实现 123
第7章 西洋跳棋的设计与实现 130
7.1 简介 130
7.2 规则 131
7.3 估值分析 133
7.4 程序的设计与实现 135
7.4.1 程序基本结构 135
7.4.2 棋盘表示 137
7.4.3 走法生成 138
7.4.4 估值函数的实现 152
7.4.5 搜索算法的实现 155
第8章 计算机博弈大赛部分项目规则 158
8.1 幻影围棋(Phantom Go)规则 158
8.2 不围棋(No Go)规则 158
8.3 二人军棋规则 159
8.4 爱恩斯坦棋规则 161
参考文献 162