6.《C++程序设计》:包含C++面向对象编程(OOP)部分和泛型编程部分(GP)。面向对象编程部分主要介绍封装、继承、多态等面向对象编程的概念和方法;泛型编程部分主要介绍容器、迭代器、函数对象、算法、适配器等泛型编程的概念和方法。
本教材适合于本科阶段的学生在已经完成C语言学习的基础上,用大约48学时理论课及28学时的实验课掌握C++的面向对象编程和泛型编程。本教材适合作为高等学校计算机专业和非计算机专业程序设计课程教材,也可作为组件、游戏、面向对象数据库、ACM/ICPC竞赛编程的参考书。
7.《C++大学教程》:本书是一本讲解C++编程的优秀教材,全面介绍了面向对象编程的原理和方法,详细分析了与C++编程有关的技术,具体包括类与对象、控制语句、函数与递归、数组、指针、运算符重载、继承、多态、模板、流输入/输出、异常处理、文件处理、搜索与排序、数据结构、标准模板库等内容,本书的同步学习网站上还包含了更多的扩展内容。全书以“活代码”方式详细分析了每个知识要点,是初学者和中、高级程序员学习C++编程的理想用书。本书可作为高等院校相关专业的编程语言教材和C++编程教材,也是软件设计人员学习C++编程的理想读物。
8.《C++游戏编程》:介绍如何用C++语言进行游戏程序开发。全书可分为C++语言的基础语法、面向对象编程技术、标准模板库的应用三个部分,共18章,主要内容包括:概观程序设计,开发环境简介,基本数据类型,运算符与表达式,程序的结构,宏和编译预处理,数组,函数与程序结构,指针和引用,结构、联合、枚举,类与对象,静态成员与友元,继承与多态,运算符重载,模板,标准模板库,I/O流,异常处理等。本书适合游戏开发人员及游戏相关专业师生学习使用,也可供C++编程爱好者参考。
9.《C++图形与游戏编程基础》:为入门教材,采用一种新颖、有趣的“寓教于乐”的方式来讲授传统主题,即鼓励并引导学生亲自动手写程序来生成图形、处理图像/声音和玩游戏。所有例子和作业都经过精心设计,能很好地激发学生的学习兴趣,使其在整个课程中都能兴趣盎然地专心学、动手做。
全书共12章,涵盖的基本主题包括数据类型、变量、输入、输出、控制结构、函数、数组、文件、类和对象。在学习过程中,循序渐进地介绍如何画一些基本的图形,如何加载和处理图像,如何创建图形和动画,如何播放音乐和音效,如何检测程序不同图形元素(称为sprite)之间的碰撞。同时还介绍如何综合运用这些技能创建互动电脑游戏。本书适合没有任何编程背景但对游戏编程具有强烈兴趣的读者,是帮助他们进入图形和游戏编程世界的理想教程。
10.《基于UML的五子棋的分析与设计》:以五子棋为例,用UML开发人机博弈程序。五子棋博弈算法采用了博弈树的方法,应用了剪枝和极大极小值原理进行搜索寻找最优的下子位置。用面向对象的思想并结合UML建模工具,对程序进行分析、设计。此外,程序可以通过增加机器学习,对棋局进行记忆、总结学习,可以进一步提高系统的智能。
11.《基于搜索算法的人工智能在五子棋博弈中的应用研究》:本文以计算机五子棋博弈系统作为研究课题,在对大量的相关文献进行分析研究的基础上,按照人工智能和计算机博弈的一般原理设计了一个五子棋博弈系统的基本模型,并作了简单的实现和验证,所做的工作包括三个方面:第一研究了五子棋在计算机中的表示问题,讨论了计算机中存贮棋局和识别下棋次序,局势状态变化及局势特征、走法产生等方法。第二研究了博弈树的极小极大搜索技术及在此基础上的Alpha-Beta剪枝过程和剪枝优化问题。实现将候选的后继节点按位置邻近顺序排序,使剪枝过程得到优化。第三根据五子棋的特点,提取棋局局势的若干特征,对这些特征赋加权分,并对整个棋局进行特征统计,采用线性函数求得棋局的总估计分值,从而提高了五子棋程序对弈的水平和能力。在上述工作的基础上,本文的创新性研究主要包括以下两个方面:第一对五子棋博弈的专业知识进行了认真的整理,针对五子棋博弈规则简单、局势判断清楚的特点,对五子棋常见的开局、定式及其后的对局做了细致的统计分析,阐明了五子棋对弈中黑白双方优劣势并非均衡的规律,这一规律作为一个指导原则在设计五子棋博弈系统时起到重要作用。第二通过线性函数获得的总估计值,实现了算法的优化和加强,主要有以下两个方面:在执行常规的Alpha-Beta搜索和NegaScout算法之前,使用置换表搜索避免相同局面的节点的搜索。通过使用威胁空间搜索,让计算机对某一局面找出全部的致胜威胁次序,避免了对静态估值函数的调用,只有计算机对当前局面无法找到致胜威胁次序时,才执行对静态估值函数的调用,由于五子棋博弈中,黑方先行者占有很强的优势,大多数局面往往都能找到致胜威胁次序,所以采用威胁空间搜索,结果表明,可以极大的提高程序的表现和对弈水平。