定 价:¥65.00
作 者: | 邱虹坤,王亚杰,孙玉霞,刘成,王晓岩,郭建新,杨煦 |
出版社: | 清华大学出版社 |
丛编项: | |
标 签: | 暂缺 |
ISBN: | 9787302641711 | 出版时间: | 2023-09-01 | 包装: | 平装-胶订 |
开本: | 16开 | 页数: | 字数: |
第1章C语言概述/1
1.1计算机语言/1
1.1.1低级语言和高级语言/1
1.1.2面向过程和面向对象/2
1.2C语言概述/3
1.2.1C语言的发展/3
1.2.2C语言的特点/3
1.3C语言程序示例/4
1.4C语言程序的开发过程/8
1.5小结/13
1.6习题/13
1.7扩展阅读——初识人工智能/14
第2章算法基础/16
2.1算法的概念/16
2.2算法的描述方法/17
2.3机器博弈的概念/19
2.4博弈算法/21
2.4.1搜索算法的分类与特点/21
2.4.2典型博弈算法介绍/21
2.5机器博弈项目规则/23
2.5.1井字棋规则/23
2.5.2亚马逊棋规则/23
2.5.3五子棋规则/24
2.5.4爱恩斯坦棋规则/24
2.6小结/252.7习题/25
2.8扩展阅读——机器博弈的发展历程/25
第3章数据类型与表达式/28
3.1棋局要素/29
3.2常量与变量/30
3.2.1常量/30
3.2.2变量/33
3.2.3变量的定义与声明/34
3.2.4变量初始化/35
3.3数据类型转换/36
3.3.1隐式类型转换/36
3.3.2显式类型转换/37
3.4运算符和表达式/38
3.4.1算术运算符及其表达式/38
3.4.2赋值运算符及其表达式/39
3.4.3机器博弈中的局面评估函数/40
3.5输入与输出/40
3.5.1字符输入/输出函数/40
3.5.2棋局信息输出/41
3.5.3棋局信息输入/43
3.6小结/45
3.7习题/45
3.8扩展阅读——机器博弈竞赛/46
第4章选择结构/48
4.1引例/48
4.2关系运算与逻辑运算/49
4.2.1关系运算符及其表达式/49
4.2.2逻辑运算符及其表达式/50
4.2.3井字棋落子坐标合法性判断/51
4.3if语句/52
4.3.1简单逻辑判断/52
4.3.2复杂逻辑判断/56
4.3.3井字棋步数和落子颜色判断/57
4.4switch语句/58
4.4.1switch语句的基本应用/59
4.4.2爱恩斯坦棋着法选择/60
4.5小结/60
4.6习题/60
4.7扩展阅读——机器博弈系统组成/61
第5章循环结构/63
5.1引例/63
5.23种循环语句/64
5.2.1while语句/64
5.2.2do…while语句/64
5.2.3for语句/66
5.3计数循环/67
5.3.1计数循环的基本应用/67
5.3.2蒙特卡洛方法求π的近似值/69
5.3.3井字棋随机落子/70
5.4条件循环/71
5.4.1条件循环的基本应用/71
5.4.2井字棋落子坐标控制/73
5.5循环嵌套/73
5.5.1循环嵌套的基本应用/73
5.5.2绘制五子棋棋盘/75
5.6控制转移语句/75
5.7综合程序举例——五子棋棋盘坐标及落子/77
5.8小结/80
5.9习题/80
5.10扩展阅读——博弈树/82
第6章数组/84
6.1一维数组/84
6.1.1引例/84
6.1.2一维数组的基本操作/85
6.1.3一维数组实现井字棋棋盘数字化/93
6.2二维数组/94
6.2.1二维数组的基本操作/94
6.2.2二维数组实现井字棋人人对弈/98
6.3字符数组/101
6.3.1字符数组的定义和引用/1016.3.2字符数组的输入/输出/103
6.3.3常用字符串处理函数/105
6.4综合程序举例——五子棋人人对弈程序/110
6.5小结/116
6.6习题/116
6.7扩展阅读——机器博弈中的蒙特卡洛方法/117
第7章函数/119
7.1概述/119
7.1.1基本概念与引例/119
7.1.2井字棋博弈程序的函数/122
7.2函数的定义/123
7.2.1函数定义的基本格式/124
7.2.2函数的参数/124
7.2.3return语句/128
7.2.4函数原型的声明/129
7.2.5实现博弈程序的一般过程和方法/130
7.3函数的调用/132
7.3.1函数调用的形式/132
7.3.2函数调用的过程/133
7.4递归函数的设计与调用/134
7.4.1简单递归函数的设计与调用/134
7.4.2井字棋博弈程序中的递归函数/136
7.5变量的作用域和生存期/137
7.5.1变量的作用域/138
7.5.2变量的生存期/139
7.5.3井字棋博弈程序中的全局变量/140
7.6综合程序举例/142
7.7小结/149
7.8习题/149
7.9扩展阅读——Minimax算法原理及其实现/150
第8章预处理与位运算/152
8.1预处理命令/152
8.1.1机器博弈中常量值的处理/152
8.1.2文件包含——机器博弈中多文件操作/156
8.1.3条件编译——防止机器博弈中重复包含/159
8.2位运算/161
8.3机器博弈中的Zobrist哈希技术/166
8.4小结/168
8.5习题/168
8.6扩展阅读——AlphaBeta剪枝/169
第9章指针/171
9.1指针的基本概念/171
9.1.1指针在博弈程序中的作用/171
9.1.2变量的地址/172
9.1.3指针变量的概念/174
9.2指针变量的定义与引用/174
9.2.1指针变量的定义与赋值/174
9.2.2指针变量的引用/176
9.2.3指针变量作为函数参数/177
9.3指针与数组/178
9.3.1通过指针访问数组元素/178
9.3.2指针变量所支持的运算/179
9.3.3数组名作函数参数/180
9.3.4指向数组的指针/182
9.4指针与字符串/184
9.5指向函数的指针/186
9.6指针型函数/187
9.7指针数组和多级指针/188
9.7.1指针数组的概念/188
9.7.2多级指针/190
9.7.3main函数的参数/190
9.8指针在博弈程序中的应用/191
9.8.1用命令行参数设置博弈程序的先后手/192
9.8.2构建大小可变的棋盘/193
9.9综合程序举例/194
9.10小结/198
9.11习题/199
9.12扩展阅读——遗传算法/201
第10章结构体和链表/203
10.1结构体的基本操作——记录竞赛相关信息/203
10.1.1记录五子棋棋谱数据/203
10.1.2结构体的声明和定义/204
10.1.3结构体的初始化和引用/207
10.1.4类型定义符typedef/211
10.2结构体指针——记录竞赛得分信息/211
10.2.1指向结构体变量的指针/211
10.2.2指向结构体数组的指针/213
10.3单向链表——记录赛队成绩/213
10.3.1概念/214
10.3.2动态存储分配/216
10.3.3链表的基本操作/218
10.4综合程序举例——比赛积分数据维护/225
10.5小结/227
10.6习题/227
10.7扩展阅读——人工神经网络/228
第11章文件/230
11.1文件的概述/230
11.2文件的打开和关闭/232
11.2.1文件指针/232
11.2.2打开或关闭文件——棋谱文件的打开或关闭/233
11.3文件的读写函数/236
11.3.1字符读写函数——存取五子棋棋盘/236
11.3.2字符串读写函数——读取名言警句/240
11.3.3格式化读写函数——保存落子信息/241
11.3.4块读写函数——保存赛队信息/244
11.4文件的定位函数/245
11.5综合程序举例——五子棋棋谱的读写/246
11.6小结/250
11.7习题/250
11.8扩展阅读——机器学习/251
第12章浅谈面向对象/253
12.1面向对象概念/253
12.2面向对象设计/254
12.2.1类的基本概念/254
12.2.2类的实例化/256
12.3Windows窗体设计/258
12.4综合程序举例/265
12.5小结/268
12.6习题/269
12.7扩展阅读——深度学习/269
第13章项目实战/271
13.1猜数游戏挑战赛/271
13.1.1功能与要求/271
13.1.2程序的构成/271
13.1.3程序运行截图/272
13.2简易五子棋/273
13.2.1关键数据结构设计/273
13.2.2系统设计/274
13.2.3函数功能及说明/280
13.2.4数据结构和搜索算法的优化/281
13.3综合程序举例——五子棋的棋盘设计(C#)/283
13.4小结/291
13.5扩展阅读——AlphaGo/292
附录AC语言运算符优先级和结合性表/295
参考文献/297