当前位置:主页 > 计算机电子书 > C++ > C++编程 pdf电子书
通过游戏编程实战教新手学C++编程

通过游戏编程实战教新手学C++编程 PDF 清晰版

  • 更新:2021-07-28
  • 大小:1.49MB
  • 类别:C++编程
  • 作者:Michael、Dawson
  • 出版:清华大学出版社
  • 格式:PDF

  • 资源介绍
  • 学习心得
  • 相关内容

通过游戏编程实战教新手学C++编程》是由清华大学出版社出版的一本关于C++编程方面的书籍,作者是Michael、Dawson,主要介绍了关于游戏编程、C++编程方面的知识内容,目前在C++编程类书籍综合评分为:7.9分。

书籍介绍

本书从游戏视角来介绍C++,既独具匠心又妙趣横生。即使读者初学C++,还没有任何编程经验,也可以在MichaelDawson的循循善诱下掌握C++的各种概念与技巧。书中每章涵盖一系列彼此相关的主题,并在结尾部分编写一个简单的文本游戏来巩固所学概念。随着学习的深入,读者将学会如何组织编程项目,如何将问题分解为可管理的子问题块,以及如何精炼代码。最后一章的游戏将综合运用《游戏开发经典丛书:通过游戏编程实战教新手学C++编程》介绍的概念与技巧,创建一个相对复杂的游戏。读完《游戏开发经典丛书:通过游戏编程实战教新手学C++编程》,您将为C++开发打下坚实的基础。

目录

  • 第1章 类型、变量与标准
  • i/o:lost fortune
  • 1.1 c++简介
  • 1.1.1 使用c++编写游戏
  • 1.1.2 生成可执行文件
  • 1.1.3 错误处理
  • 1.1.4 理解iso标准
  • 1.2 编写第一个c++程序
  • 1.2.1 game over程序简介
  • 1.2.2 注释
  • 1.2.3 使用空白字符
  • 1.2.4 包含其他文件
  • 1.2.5 定义main()函数
  • 1.2.6 通过标准输出显示文本
  • 1.2.7 语句的终止
  • 1.2.8 从main()函数返回值
  • 1.3 使用std名称空间
  • 1.3.1 game over 2.0程序简介
  • 1.3.2 使用using指令
  • .1.3.3 game over 3.0程序简介
  • 1.3.4 使用using声明
  • 1.3.5 使用using的时机
  • 1.4 使用算术运算符
  • 1.4.1 expensive calculator程序简介
  • 1.4.2 加法、减法与乘法
  • 1.4.3 理解整型与浮点型除法
  • 1.4.4 使用取模运算符
  • 1.4.5 运算符的优先级
  • 1.5 声明和初始化变量
  • 1.5.1 game stats程序简介
  • 1.5.2 基本类型
  • 1.5.3 类型修饰符
  • 1.5.4 变量声明
  • 1.5.5 变量命名
  • 1.5.6 变量的赋值
  • 1.5.7 变量初始化
  • 1.5.8 显示变量值
  • 1.5.9 获取用户输入
  • 1.5.10 为类型定义新名称
  • 1.5.11 类型的选择
  • 1.6 使用变量进行算术运算
  • 1.6.1 game stats 2.0程序简介
  • 1.6.2 修改变量值
  • 1.6.3 使用组合赋值运算符
  • 1.6.4 递增运算符与递减运算符
  • 1.6.5 整数的溢出处理
  • 1.7 使用常量
  • 1.7.1 game stats 3.0程序简介
  • 1.7.2 使用常量
  • 1.7.3 使用枚举类型
  • 1.8 lost fortune简介
  • 1.8.1 创建程序
  • 1.8.2 从玩家获取信息
  • 1.8.3 讲故事
  • 1.9 本章小结
  • 1.10 问与答
  • 1.11 问题讨论
  • 1.12 习题 第2章 真值、分支与游戏循环:
  • guess my number
  • 2.1 理解真值
  • 2.2 使用if语句
  • 2.2.1 score rater程序简介
  • 2.2.2 验证真与假
  • 2.2.3 值的真与假
  • 2.2.4 使用关系运算符
  • 2.2.5 if语句的嵌套
  • 2.3 使用else子句
  • 2.3.1 score rater 2.0程序简介
  • 2.3.2 创建分支
  • 2.4 使用带else子句的if语句序列
  • 2.4.1 score rater 3.0程序简介
  • 2.4.2 创建带else子句的if语句序列
  • 2.5 使用switch语句
  • 2.5.1 menu chooser程序简介
  • 2.5.2 创建多路分支
  • 2.6 使用while循环
  • 2.6.1 play again游戏简介
  • 2.6.2 使用while循环
  • 2.7 使用do循环
  • 2.7.1 play again 2.0程序简介
  • 2.7.2 使用do循环
  • 2.8 使用break和continue语句
  • 2.8.1 finicky counter程序简介
  • 2.8.2 创建while(true)循环
  • 2.8.3 使用break语句退出循环
  • 2.8.4 使用continue语句跳转到循环开始
  • 2.8.5 使用break和continue的时机
  • 2.9 使用逻辑运算符
  • 2.9.1 designers network程序简介
  • 2.9.2 使用逻辑与运算符
  • 2.9.3 使用逻辑或运算符
  • 2.9.4 使用逻辑非运算符
  • 2.9.5 运算符的优先级
  • 2.10 随机数的生成
  • 2.10.1 die roller程序简介
  • 2.10.2 调用rand()函数
  • 2.10.3 为随机数生成器确定种子
  • 2.10.4 在一定范围内计算
  • 2.11 理解游戏主循环
  • 2.12 guess my number游戏简介
  • 2.12.1 采用游戏主循环
  • 2.12.2 初始化游戏
  • 2.12.3 创建游戏主循环
  • 2.12.4 游戏结束
  • 2.13 本章小结
  • 2.14 问与答
  • 2.15 问题讨论
  • 2.16 习题 第3章 for循环、字符串与数组:
  • word jumble
  • 3.1 使用for循环
  • 3.1.1 counter程序简介
  • 3.1.2 使用for循环计数
  • 3.1.3 在for循环中使用空语句
  • 3.1.4 for循环的嵌套
  • 3.2 理解对象
  • 3.3 使用string对象
  • 3.3.1 string tester程序简介
  • 3.3.2 创建string对象
  • 3.3.3 string对象的连接
  • 3.3.4 使用size()成员函数
  • 3.3.5 索引string对象
  • 3.3.6 循环访问string对象
  • 3.3.7 使用find()成员函数
  • 3.3.8 使用erase()成员函数
  • 3.3.9 使用empty()成员函数
  • 3.4 使用数组
  • 3.4.1 hero's inventory程序简介
  • 3.4.2 创建数组
  • 3.4.3 数组的索引
  • 3.4.4 使用数组元素的成员函数
  • 3.4.5 数组边界
  • 3.5 理解c风格字符串
  • 3.6 使用多维数组
  • 3.6.1 tic-tac-toe board程序简介
  • 3.6.2 创建多维数组
  • 3.6.3 多维数组的索引
  • 3.7 word jumble程序简介
  • 3.7.1 创建程序
  • 3.7.2 选择单词
  • 3.7.3 单词乱序
  • 3.7.4 欢迎界面
  • 3.7.5 进入游戏主循环
  • 3.7.6 游戏结束
  • 3.8 本章小结
  • 3.9 问与答
  • 3.10 问题讨论
  • 3.11 习题 第4章 标准模板库:hangman
  • 4.1 标准模板库简介
  • 4.2 使用vector
  • 4.2.1 hero's inventory 2.0程序简介
  • 4.2.2 使用向量的准备工作
  • 4.2.3 向量的声明
  • 4.2.4 使用push_back()成员函数
  • 4.2.5 使用size()成员函数
  • 4.2.6 向量的索引
  • 4.2.7 调用元素的成员函数
  • 4.2.8 使用pop_back()成员函数
  • 4.2.9 使用clear()成员函数
  • 4.2.10 使用empty()成员函数
  • 4.3 使用迭代器
  • 4.3.1 hero's inventory 3.0程序简介
  • 4.3.2 迭代器的声明
  • 4.3.3 循环访问向量
  • 4.3.4 修改向量元素的值
  • 4.3.5 访问向量元素的成员函数
  • 4.3.6 使用向量的成员函数insert()
  • 4.3.7 使用向量的成员函数erase()
  • 4.4 使用算法
  • 4.4.1 high scores程序简介
  • 4.4.2 使用算法的准备工作
  • 4.4.3 使用find()算法
  • 4.4.4 使用random_shuffle()算法
  • 4.4.5 使用sort()算法
  • 4.5 理解向量的性能
  • 4.5.1 向量的增长
  • 4.5.2 元素的插入与删除
  • 4.6 其他stl容器
  • 4.7 对程序进行规划
  • 4.7.1 使用伪代码
  • 4.7.2 逐步细化
  • 4.8 hangman简介
  • 4.8.1 游戏规划
  • 4.8.2 创建程序
  • 4.8.3 变量与常量的初始化
  • 4.8.4 进入游戏主循环
  • 4.8.5 获取玩家的猜测
  • 4.8.6 游戏结束
  • 4.9 本章小结
  • 4.10 问与答
  • 4.11 问题讨论
  • 4.12 习题 第5章 函数:mad lib
  • 5.1 创建函数
  • 5.1.1 instructions程序简介
  • 5.1.2 函数声明
  • 5.1.3 函数定义
  • 5.1.4 函数调用
  • 5.1.5 理解抽象
  • 5.2 使用形参和返回值
  • 5.2.1 yes or no程序简介
  • 5.2.2 返回值
  • 5.2.3 传递参数值
  • 5.2.4 理解封装
  • 5.3 理解软件重用
  • 5.4 使用作用域
  • 5.4.1 scoping程序简介
  • 5.4.2 使用独立的作用域
  • 5.4.3 使用嵌套作用域
  • 5.5 使用全局变量
  • 5.5.1 global reach程序简介
  • 5.5.2 声明全局变量
  • 5.5.3 访问全局变量
  • 5.5.4 隐藏全局变量
  • 5.5.5 修改全局变量
  • 5.5.6 尽量少使用全局变量
  • 5.6 使用全局常量
  • 5.7 使用默认参数
  • 5.7.1 give me a number程序简介
  • 5.7.2 指定默认参数
  • 5.7.3 为形参设置默认参数
  • 5.7.4 重写默认参数
  • 5.8 函数重载
  • 5.8.1 triple程序简介
  • 5.8.2 创建重载函数
  • 5.8.3 调用重载函数
  • 5.9 内联函数
  • 5.9.1 taking damage程序简介
  • 5.9.2 函数内联的指定
  • 5.9.3 调用内联函数
  • 5.10 mad lib游戏简介
  • 5.10.1 创建程序
  • 5.10.2 main()函数
  • 5.10.3 asktext()函数
  • 5.10.4 asknumber()函数
  • 5.10.5 tellstory()函数
  • 5.11 本章小结
  • 5.12 问与答
  • 5.13 问题讨论
  • 5.14 习题 第6章 引用:tic-tac-toe
  • 6.1 使用引用
  • 6.1.1 referencing程序简介
  • 6.1.2 创建引用
  • 6.1.3 访问被引用的值
  • 6.1.4 修改被引用的值
  • 6.2 通过传递引用改变实参
  • 6.2.1 swap程序简介
  • 6.2.2 按值传递参数
  • 6.2.3 按引用传递参数
  • 6.3 传递引用以提高效率
  • 6.3.1 inventory displayer程序简介
  • 6.3.2 引用传递的陷阱
  • 6.3.3 以常量引用声明参数
  • 6.3.4 传递常量引用
  • 6.4 如何传递实参
  • 6.5 返回引用
  • 6.5.1 inventory referencer程序简介
  • 6.5.2 返回一个引用
  • 6.5.3 显示返回的引用的值
  • 6.5.4 将返回的引用赋值给引用
  • 6.5.5 将返回的引用赋值给变量
  • 6.5.6 通过返回的引用修改对象
  • 6.6 tic-tac-toe游戏简介
  • 6.6.1 游戏规划
  • 6.6.2 创建程序
  • 6.6.3 main()函数
  • 6.6.4 instructions()函数
  • 6.6.5 askyesno()函数
  • 6.6.6 asknumber()函数
  • 6.6.7 humanpiece()函数
  • 6.6.8 opponent()函数
  • 6.6.9 displayboard()函数
  • 6.6.10 winner()函数
  • 6.6.11 islegal()函数
  • 6.6.12 humanmove()函数
  • 6.6.13 computermove()函数
  • 6.6.14 announcewinner()函数
  • 6.7 本章小结
  • 6.8 问与答
  • 6.9 问题讨论
  • 6.10 习题 第7章 指针:tic-tac-toe 2.0
  • 7.1 指针基础
  • 7.1.1 pointing程序简介
  • 7.1.2 指针的声明
  • 7.1.3 指针的初始化
  • 7.1.4 将地址赋值给指针
  • 7.1.5 指针的解引用
  • 7.1.6 指针的重新赋值
  • 7.1.7 使用对象的指针
  • 7.2 指针和常量
  • 7.2.1 使用常量指针
  • 7.2.2 使用指向常量的指针
  • 7.2.3 使用指向常量的常量指针
  • 7.2.4 常量与指针小结
  • 7.3 传递指针
  • 7.3.1 swap pointer version程序简介
  • 7.3.2 值传递
  • 7.3.3 传递常量指针
  • 7.4 返回指针
  • 7.4.1 inventory pointer程序简介
  • 7.4.2 返回指针
  • 7.4.3 使用返回的指针显示值
  • 7.4.4 将返回的指针赋值给指针
  • 7.4.5 将返回的指针指向的值赋值给变量
  • 7.4.6 通过返回的指针修改对象
  • 7.5 理解指针与数组的关系
  • 7.5.1 array passer程序简介
  • 7.5.2 将数组名用作常量指针
  • 7.5.3 数组的传递与返回
  • 7.6 tic-tac-toe 2.0程序简介
  • 7.7 本章小结
  • 7.8 问与答
  • 7.9 问题讨论
  • 7.10 习题 第8章 类:critter caretaker
  • 8.1 定义新类型
  • 8.1.1 simple critter程序简介
  • 8.1.2 类的定义
  • 8.1.3 成员函数的定义
  • 8.1.4 对象的实例化
  • 8.1.5 数据成员的访问
  • 8.1.6 成员函数的调用
  • 8.2 使用构造函数
  • 8.2.1 constructor critter程序简介
  • 8.2.2 构造函数的声明与定义
  • 8.2.3 构造函数的自动调用
  • 8.3 设置成员访问级别
  • 8.3.1 private critter程序简介
  • 8.3.2 指定公有与私有访问级别
  • 8.3.3 定义访问器成员函数
  • 8.3.4 定义常量成员函数
  • 8.4 使用静态数据成员与静态成员函数
  • 8.4.1 static critter程序简介
  • 8.4.2 声明与初始化静态数据成员
  • 8.4.3 访问静态数据成员
  • 8.4.4 声明与定义静态成员函数
  • 8.4.5 调用静态成员函数
  • 8.5 critter caretaker游戏简介
  • 8.5.1 游戏规划
  • 8.5.2 规划伪代码
  • 8.5.3 critter类
  • 8.5.4 main()函数
  • 8.6 本章小结
  • 8.7 问与答
  • 8.8 问题讨论
  • 8.9 习题 第9章 高级类与动态内存:
  • game lobby
  • 9.1 使用聚合体
  • 9.1.1 critter farm程序简介
  • 9.1.2 使用对象数据成员
  • 9.1.3 使用容器数据成员
  • 9.2 使用友元函数与运算符重载
  • 9.2.1 friend critter程序简介
  • 9.2.2 创建友元函数
  • 9.2.3 运算符重载
  • 9.3 动态分配内存
  • 9.3.1 heap程序简介
  • 9.3.2 使用new运算符
  • 9.3.3 使用delete运算符
  • 9.3.4 避免内存泄漏
  • 9.4 使用数据成员与堆
  • 9.4.1 heap data member程序简介
  • 9.4.2 声明指向堆中值的指针数据成员
  • 9.4.3 声明与定义析构函数
  • 9.4.4 声明与定义拷贝构造函数
  • 9.4.5 赋值运算符的重载
  • 9.5 game lobby程序简介
  • 9.5.1 player类
  • 9.5.2 lobby类
  • 9.5.3 lobby::addplayer()成员函数
  • 9.5.4 lobby::removeplayer()成员函数
  • 9.5.5 lobby::clear()成员函数
  • 9.5.6 operator[[()成员函数
  • 9.5.7 main()函数
  • 9.6 本章小结
  • 9.7 问与答
  • 9.8 问题讨论
  • 9.9 习题 第10章 继承与多态:blackjack
  • 附录a 创建第一个c++程序
  • 附录b 运算符优先级
  • 附录c 关键字
  • 附录d ascii字符表
  • 附录e 转义序列
     

资源获取

资源地址1:https://pan.baidu.com/s/1lTm_hv5_mJfSv6NFkuOvLg(密码:68ab)

相关资源

网友留言