《C++语言学习利器-AI-CODE坦克机器人》PDF下载

  • 购买积分:14 如何计算积分?
  • 作  者:杜飞雪,陈胜峰等编著
  • 出 版 社:北京:中国水利水电出版社
  • 出版年份:2007
  • ISBN:7508445295
  • 页数:401 页
图书介绍:本书是编程革命系列的第二本,把机器人设计与C++语言巧妙结合起来,让读者在躲避子弹、前进后退中全面掌握C++语言的变量、函数、数组、类、对象、继承、多态、运算符重载、模板、文件流等各个要素。本书从浅入深,侧重于C++的特性与机器人代码实现。随着C++水平和机器人策略能力的提高,在最后本文还介绍了人工智能及一些极具创意的机器人的C++设计。本书章节设计合理,符合人脑思维定式,更易掌握各个知识点。首先定出章节学习目标与任务,其次分析任务,穿插C++知识与机器人策略并用代码实现,然后在任务的基础进行知识点扩展,最后对章节总结要点,并给出练习。本书可作为高等院校、职高、培训机构的AI-CODE正式教材。

第一部分 基础篇 1

第1章 C++平台与AI-CODE概述 1

1.1 教育理念 1

1.1.1 传统教育 1

1.1.2 游戏教育理念 1

1.1.3 游戏化学习 2

1.2 机器人编程游戏的历史 3

1.2.1 AI-CODE的诞生和发展 3

1.2.2 AI-CODE游戏教育系统简介 4

1.2.3 AI-CODE两大主题 5

1.3 程序和算法 6

1.3.1 面向对象程序设计思想 11

1.3.3 C++语言概述 12

1.3.2 C++语言简介 12

1.3.4 C++平台、环境说明 13

1.3.5 C++与C语言的异同 14

1.4 快速体验 14

1.4.1 下载与安装AI-CODE 14

1.4.2 我的快乐竞技之旅 17

1.4.3 虚拟机器人运行平台——AIRobot 19

1.4.4 图形编辑器——机器人快车 20

1.4.5 代码编辑器——CodeCanvas 21

第2章 AI-CODE的数学与物理知识 22

2.1 数学知识 22

2.1.1 坐标系统 22

2.1.2 三角几何学与方向 24

2.1.3 离散数学 26

2.1.4 数学函数 27

2.2.1 机器人解剖 33

2.2 物理知识 33

2.2.2 机器人速度、距离、力 34

2.2.3 子弹能量、热、速度 36

2.2.4 Force与动量守恒定理 37

2.3 基本参数 42

2.3.1 系统时钟 42

2.3.2 其他辅助参数 42

第3章 图形编程—快速步入程序之门 45

3.1 学习目标与任务 45

3.2 机器人快车概述 45

3.2.1 机器人快车的安装与卸载 46

3.2.2 机器人快车简介 46

3.2.3 流程模块拖拉编程 48

3.3 向战场中央靠拢机器人 54

3.4 机器人快车函数封装 57

3.5 小结与练习 59

第4章 第一个C++机器人 60

4.1 学习目标与任务 60

4.2 编辑、编译、运行C++机器人 60

4.3 机器人开发 62

4.3.1 AI-CODE开发目录设置 62

4.3.2 创建First机器人 63

4.3.3 机器人名称与hpp头文件 69

4.4 FirstRobot结构解析 71

4.4.1 Action与onTick处理函数 71

4.4.2 常用函数 73

4.5 初识对象、类与继承 74

4.5.1 面向对象思想 74

4.5.2 First类及AI-TANK类图 76

4.5.3 AI-TANK常用头文件 77

4.6.1 关键字与注释码 86

4.6.2 经典例子机器人说明 86

4.6 知识扩展 86

4.6.3 新型头文件与名字空间 87

4.7 小结与练习 88

第二部分 中级篇 89

第5章 基本运动与C++语言基础 89

5.1 学习目标与任务 89

5.2 基本运动策略 89

5.3 直线运动与C++基本元素 90

5.3.1 运动原理分析 90

5.3.2 绕墙走机器人剖析 91

5.3.3 数据类型、表达式、If-else控制 93

5.4 指定方向或位置运动 99

5.4.1 运动原理分析 99

5.4.2 heading与bearing方向解析 102

5.4.3 SuperCenter机器人剖析 104

5.4.4 C++代码规范 105

5.5 曲线运动 111

5.5.1 运动原理分析 111

5.5.2 圆周与倒8字运动机器人剖析 112

5.5.3 while、for流程控制 116

5.6 扩展知识 122

5.6.1 变量与常量定义 122

5.6.2 三角函数与C++函数 123

5.6.3 switch分支语句 123

5.6.4 运算符和赋值概念 124

5.6.5 基本防御组合应用分析 124

5.7 小结与练习 125

6.2.2 相关事件的处理 126

6.2 基本瞄准策略 126

6.2.1 三大基本瞄准策略 126

第6章 基本瞄准与函数 126

6.1 学习目标与任务 126

6.3 定点瞄准 127

6.4 线性预测瞄准 128

6.4.1 提前量直线瞄准原理分析与正弦原理应用 129

6.4.2 提前量直线瞄准机器人剖析 131

6.4.3 直线迭代瞄准与#define关键字 133

6.5 圆周预测瞄准与C++函数 134

6.5.1 圆周预测瞄准原理分析 134

6.5.2 圆周预测瞄准机器人剖析 138

6.5.3 C++函数详析 140

6.6 小结与练习 144

7.1 学习目标与任务 145

7.2.1 信息收集机器人 145

7.2 信息收集与数组 145

第7章 战争情报员与数组、指针 145

第三部分 高级篇 145

7.2.2 C++数组 146

7.3 指针在AI-TANK中的应用 150

7.4 扩展知识 154

7.5 小结与练习 154

8.2.1 躲避子弹原理 156

8.2 躲避子弹机器人 156

8.1 学习目标与任务 156

第8章 类和对象实现避弹避墙 156

8.2.2 躲避子弹机器人剖析 157

8.2.3 子弹类实现 160

8.3 对象和类 161

8.3.1 面向对象概述 161

8.3.2 类与结构体 162

8.3.3 类和对象的定义与声明 163

8.3.4 深入研究new运算符 165

8.3.5 构造函数与析构函数 167

8.4 因数避墙机器人 169

8.4.1 因数避墙原理 169

8.4.2 因数避墙机器人剖析 170

8.4.3 因数避墙机器人的改进与扩展 173

8.4.4 const关键字 175

8.4.5 static关键字 176

8.5 扩展知识 180

8.5.1 动态内存分配 180

8.5.2 数据抽象与信息隐藏 180

8.5.3 对机器人进行管理 181

8.6 小结与练习 184

第9章 继承、多态实现高级机器人 185

9.1 学习目标与任务 185

9.2 高级运动策略与继承、多态性 185

9.2.1 高级运动策略分析 185

9.2.2 高级运动机器人实现 188

9.3 C++继承与多态 200

9.3.1 继承基本概念 200

9.3.2 各种继承方式 203

9.3.3 在派生类中使用构造函数和析构函数 204

9.3.4 多重继承 206

9.3.5 多态性的概念 207

9.3.6 虚函数与虚析构函数 207

9.4 反重力运动机器人剖析 210

9.5 高级瞄准策略 215

9.5.1 高级瞄准策略分析 215

9.5.2 振荡瞄准机器人 215

9.5.3 模式匹配瞄准机器人 220

9.5.4 统计学瞄准、虚拟子弹、波 227

9.5.5 其他瞄准算法 239

9.6.1 随机运动策略介绍 240

9.6 扩展知识 240

9.6.2 this指针 241

9.6.3 AI-TANK Point2D二维点类 241

9.7 小结与练习 242

第10章 战略合成与运算符重载、模板 243

10.1 学习目标与任务 243

10.2 设计可重用机器人结构 243

10.3 运算符重载 245

10.3.1 Action事件中的运算符重载 245

10.3.2 用作类成员与友元函数的运算符函数 252

10.3.3 重载一元、二元运算符 253

10.3.4 重载流插入与流读取运算符 255

10.4 模板 255

10.4.1 函数模板 255

10.4.2 类模板 257

10.4.3 模板与友元、static关系 258

10.5 C++机器人编程接口 259

10.6 扩展知识 263

10.6.1 类型之间的转换 263

10.6.2 友元的概念 264

10.7 小结与练习 267

第11章 异常调试与Record机器人 268

11.1 学习目标与任务 268

11.2 调试机器人 268

11.2.1 AI-TANK控制台 268

11.2.2 输出变量的值 270

11.2.3 AI-TANK调试函数 272

11.2.4 C++字符与字符串处理简介 273

11.3 C++异常 274

11.4 Record机器人 280

11.5.1 C++IO流 281

11.5 C++IO流与文件 281

11.5.2 C++文件概述 285

11.6 扩展知识 290

11.7 小结与练习 293

第12章 团队作战实现 294

12.1 学习目标与任务 294

12.2 团队作战机制与通信兵 294

12.2.1 创建机器人团队 294

12.2.2 团队内的通讯 295

12.3 团队作战机器人 298

12.3.1 混战避敌原理 298

12.3.2 混战算法设计 299

12.3.3 混战避敌代码的实现 301

12.3.4 混战避敌算法改进与扩展 304

12.4 小结与练习 305

13.2.1 打开机器人图形控制 306

13.2.2 绘图机器人实现 306

第13章 高级调试与绘图机器人 306

13.2 美丽的轨迹图 306

13.1 学习目标与任务 306

13.3 机器人绘图类实现原理 308

13.4 小结与练习 314

第四部分 专家篇 315

第14章 智能机器人 315

14.1 人工智能 315

14.1.1 人工智能概念 315

14.1.2 人工智能的研究和应用领域 316

14.1.3 AI-TANK在人工智能领域的研究范围 318

14.2 强化学习机器人 319

14.2.1 原理概述 319

14.2.2 机器人设计分析 321

14.2.3 算法设计 326

14.3 神经网络机器人 328

14.3.1 原理概述 328

14.3.2 机器人设计分析 333

14.3.3 反向传播算法设计 337

14.4 遗传算法机器人 342

14.4.1 原理概述 342

14.4.2 预设策略进化机器人剖析 348

14.4.3 遗传操作机器人 350

14.4.4 中间解释程序进化机器人 351

14.5 机器学习机器人 354

14.5.1 机器学习原理 354

14.5.2 Bayesian团队机器人设计 358

14.5.3 算法设计 359

15.1 联赛系统 363

第15章 联赛系统、XML与内部机制 363

15.2 机器人配置与启动原理 366

15.3 机器人编程接口与内核 368

15.4 XML入门 379

15.5 XML DOM模型实现机器人通信 381

第16章 AI-CODE外传 389

16.1 策略流派 389

16.2 天才创意机器人 390

16.2.1 克隆机器人Dolly 390

16.2.2 撞击攻击机器人RamFire 391

16.2.3 跟踪者Tracker 392

16.2.4 舞蹈机器人Dancer 393

16.2.5 振动波绘图机器人Shining 395

附录1 章节机器人对照表 397

附录2 知识点 398

参考文献 401