
编程书籍推荐:Python游戏编程快速上手 第4版,由人民邮电出版社2017-10-01月出版,本书发行作者信息: [美] Al,Sweigart(斯维加特) 著,李强 译此次为第1次发行, 国际标准书号为:9787115466419,品牌为异步图书, 这本书采用平装开本为16开,附件信息:未知,纸张采为胶版纸,全书共有310页字数万 字,值得推荐的Python Book。
此书内容摘要
    Python是一种高级程序设计语言,因其简洁、易读及可扩展性日渐成为程序设计领域备受推崇的语言。 
本书通过编写一个个小巧、有趣的游戏来教授Python编程,并且采用直接展示游戏的源代码并通过实例来解释编程的原理的方式。全书共21章,12个游戏程序和示例贯穿其中,介绍了Python基础知识、数据类型、函数、流程控制、程序调试、流程图设计、字符串操作、列表和字典、笛卡尔坐标系、密码学基础、游戏AI模拟、动画图形、碰撞检测、声音和图像等方方面面的程序设计知识。本书可以帮助读者在轻松有趣的过程中,掌握Python游戏编程的基本技能。 
本书适合不同年龄和层次的Python编程初学者阅读。    
关于此书作者
Al Sweigart是一名教授孩子和成人编程的软件开发者。通过http://inventwithpython.com/可以访问他编写的编程教程。他是畅销书《Python编程快速上手——让繁琐工作自动化》的作者。
编辑们的推荐
                                    本书教你如何使用流行的Python编程语言来编写计算机游戏,即便你之前没有任何编程经验。 
首先,本书带领读者猜数字和Tic Tac Toe这样的经典游戏,然后开始学习更加高级的游戏的开发,例如基于文本的Sonar Treasure Hunt游戏以及带有音效和动画的Dodger游戏。在此过程中, 我们还会学习关键的编程和数学概念,这些将使得你的游戏开发技能达到更高的层级。 
通过本书,你将学习: 
使用组合循环、变量和流程控制语句; 
选择合适的数据结构来完成任务,例如列表、字典和元组; 
使用pygame模块,为游戏添加图形和动画; 
处理键盘和鼠标输入; 
编写简单的人工智能程序,从而能够和计算机玩游戏; 
使用加密技术把文本信息转换为密码; 
调试程序并找出常见错误。 
随着你编写每一个游戏,你将打下牢固的Python编程基础,并且能够更好地理解计算机的基础知识。                
Python游戏编程快速上手 第4版图书的目录
目录
第1章 交互式Shell 1 
1.1 一些简单的数学知识 1 
1.1.1 整数和浮点数 2 
1.1.2 表达式 2 
1.2 计算表达式 3 
1.3 语法错误 4 
1.4 在变量中存储值 4 
1.5 小结 8 
第2章 编写程序 9 
2.1 字符串值 10 
2.2 连接字符串 10 
2.3 在IDLE的文件编辑器中 
编写程序 11 
2.3.1 创建Hello World程序 11 
2.3.2 保存程序 12 
2.3.3 运行程序 13 
2.4 Hello World程序如何工作 14 
2.4.1 注释 15 
2.4.2 函数:程序中的小程序 15 
2.4.3 终止程序 16 
2.5 命名变量 16 
2.6 小结 17 
第3章 “猜数字”游戏 19 
3.1 “猜数字”的运行示例 20 
3.2 “猜数字”程序的源代码 20 
3.3 导入random模块 21 
3.4 用random.randint()函数 
生成随机数 22 
3.5 欢迎玩家 23 
3.6 流程控制语句 23 
3.6.1 使用循环来重复代码 23 
3.6.2 组织语句块 24 
3.6.3 for循环语句 25 
3.7 玩家的猜测 26 
3.8 使用int()函数、float()函数、str() 
函数和bool()函数来转换值 26 
3.9 布尔数据类型 28 
3.9.1 比较操作符 28 
3.9.2 用条件检查True或 
False 29 
3.9.3 体验布尔值、比较操作符 
和条件 29 
3.9.4 =和==的区别 30 
3.10 if语句 30 
3.11 用break语句提早离开循环 31 
3.12 判断玩家是否赢了 31 
3.13 判断玩家是否输了 32 
3.14 小结 32 
第4章 一个讲笑话程序 35 
4.1 Jokes游戏的运行示例 35 
4.2 Jokes游戏的源代码 36 
4.3 代码如何工作 36 
4.4 转义字符 37 
4.5 单引号和双引号 38 
4.6 print()的end关键字形参 39 
4.7 小结 39 
第5章 Dragon Realm 41 
5.1 如何玩Dragon Realm 41 
5.2 Dragon Realm的运行示例 42 
5.3 Dragon Realm的流程图 42 
5.4 Dragon Realm的源代码 43 
5.5 导入random和time模块 44 
5.6 Dragon Realm中的函数 44 
5.6.1 def语句 45 
5.6.2 调用函数 45 
5.6.3 把函数定义放在哪里 45 
5.7 多行字符串 46 
5.8 while语句实现循环 46 
5.9 布尔操作符 47 
5.9.1 and操作符 47 
5.9.2 or操作符 48 
5.9.3 not操作符 49 
5.9.4 布尔操作符的运算 49 
5.10 返回值 50 
5.11 全局作用域和局部作用域 51 
5.12 函数形参 52 
5.13 显示游戏结果 53 
5.14 决定哪个山洞有友善的龙 53 
5.15 游戏循环 54 
5.15.1 在程序中调用函数 55 
5.15.2 询问玩家要不要再玩 
一局 55 
5.16 小结 56 
第6章 使用调试器 57 
6.1 Bug的类型 57 
6.2 调试器 58 
6.2.1 启动调试器 59 
6.2.2 用调试器单步执行程序 60 
6.3 查找Bug 63 
6.4 设置断点 65 
6.5 使用断点 66 
6.6 小结 68 
第7章 用流程图设计Hangman 69 
7.1 如何玩Hangman 69 
7.2 Hangman的运行示例 70 
7.3 ASCII字符图 71 
7.4 用流程图来设计一个程序 71 
7.4.1 生成流程图 72 
7.4.2 流程图的分支 73 
7.4.3 结束或者重新开始游戏 74 
7.4.4 再猜一次 75 
7.4.5 为玩家提供反馈 77 
7.5 小结 78 
第8章 编写Hangman的代码 79 
8.1 Hangman的源代码 79 
8.2 导入random模块 82 
8.3 常量 82 
8.4 列表数据类型 83 
8.4.1 用索引访问元素 83 
8.4.2 列表连接 84 
8.4.3 in操作符 85 
8.5 调用方法 85 
8.5.1 列表方法reverse()和 
append() 86 
8.5.2 字符串方法split() 86 
8.6 从单词列表中获取一个神秘 
单词 87 
8.7 向玩家显示游戏板 87 
8.7.1 list()函数和range()函数 88 
8.7.2 列表和字符串分片 89 
8.7.3 用空格表示神秘单词 90 
8.8 获取玩家的猜测 91 
8.8.1 字符串方法lower()和 
upper() 92 
8.8.2 离开while循环 93 
8.9 elif语句 93 
8.10 确保玩家输入一个有效的 
猜测 94 
8.11 询问玩家是否想再玩一局 94 
8.12 回顾Hangman中的函数 95 
8.13 游戏循环 96 
8.13.1 调用displayBoard()函数 96 
8.13.2 让玩家输入他们的猜测 96 
8.13.3 判断字母是否在这个 
神秘单词中 97 
8.13.4 判断玩家是否获胜 97 
8.13.5 当玩家猜错时 97 
8.13.6 检查玩家是否输了 98 
8.13.7 结束并重新设置游戏 98 
8.14 小结 99 
第9章 Hangman扩展 101 
9.1 添加更多的猜测机会 101 
9.2 字典数据类型 102 
9.2.1 用len()函数获取字典的 
大小 103 
9.2.2 字典和列表的区别 103 
9.2.3 字典方法keys()和 
values() 104 
9.2.4 在Hangman中使用单词的 
字典 104 
9.3 从一个列表中随机选取 105 
9.4 从列表中删除项 106 
9.5 多变量赋值 107 
9.6 向玩家显示单词的分类 108 
9.7 小结 109 
第10章 Tic Tac Toe 111 
10.1 Tic Tac Toe的运行示例 112 
10.2 Tic Tac Toe的源代码 113 
10.3 设计程序 116 
10.3.1 用数据表示游戏板 117 
10.3.2 游戏AI 117 
10.4 导入random模块 119 
10.5 在屏幕上打印游戏板 119 
10.6 让玩家来选择X或O 120 
10.7 决定谁先走 121 
10.8 在游戏板上放置一个标记 121 
10.8.1 列表引用 121 
10.8.2 在makeMove()中使用 
列表引用 124 
10.9 判断玩家是否获胜 125 
10.10 复制游戏板的数据 126 
10.11 判断游戏板上的格子是否 
为空 127 
10.12 让玩家输入他们的落子 127 
10.13 短路求值 128 
10.14 从落子列表中选择一个 
落子 130 
10.15 暂无.值 130 
10.16 创建计算机的AI 131 
10.16.1 计算机判断自己能否 
落子即获胜 132 
10.16.2 计算机判断玩家是否 
可以落子即获胜 132 
10.16.3 依次判断角、中心 
和边 133 
10.16.4 判断游戏板是否满了 133 
10.17 游戏循环 134 
10.17.1 决定玩家的符号和 
谁先走 134 
10.17.2 运行玩家的轮次 134 
10.17.3 运行计算机的轮次 135 
10.17.4 询问玩家是否再玩 
一次 136 
10.18 小结 136 
第11章 推理游戏Bagels 137 
11.1 Bagels的运行示例 138 
11.2 Bagels的源代码 138 
11.3 Bagels的流程图 140 
11.4 导入random并定义 
getSecretNum() 140 
11.5 打乱一组唯一数的顺序 141 
11.5.1 用random.shuffle()函数改变 
列表项的顺序 141 
11.5.2 从打乱次序的数中获取神秘 
数字 142 
11.6 复合赋值操作符 142 
11.7 计算要给出的线索 143 
11.8 列表方法sort() 144 
11.9 字符串方法join() 145 
11.10 检查字符串中是否只包含 
数字 145 
11.11 游戏的开始 146 
11.12 字符串插值 146 
11.13 游戏循环 147 
11.13.1 获取玩家的猜测 147 
11.13.2 根据玩家的猜测给出 
线索 148 
11.13.3 判断玩家的输赢 148 
11.13.4 询问玩家是否再玩 
一局 148 
11.14 小结 149 
第12章 笛卡尔坐标 151 
12.1 网格和笛卡尔坐标 151 
12.2 负数 153 
12.3 计算机屏幕的坐标系 154 
12.4 数学技巧 155 
12.4.1 技巧1:减号吃掉它左边 
的加号 155 
12.4.2 技巧2:两个减号合并为 
一个加号 155 
12.4.3 技巧3:加法的可 
交换性 156 
12.5 绝对值和abs()函数 156 
12.6 小结 157 
第13章 Sonar Treasure Hunt游戏 159 
13.1 Sonar Treasure Hunt的运行 
示例 160 
13.2 Sonar Treasure Hunt的源 
代码 162 
13.3 设计程序 167 
13.4 导入random、sys和math 
模块 167 
13.5 创建一个新的游戏板 167 
13.6 绘制游戏板 168 
13.6.1 在顶部绘制X轴 169 
13.6.2 绘制海洋 170 
13.6.3 打印出海洋中的行 170 
13.6.4 在游戏板底部绘制X轴 
坐标 171 
13.7 创建随机的藏宝箱 171 
13.8 判断一次移动是否有效 172 
13.9 在游戏板上进行一次移动 172 
13.9.1 找到最近的藏宝箱的 
算法 172 
13.9.2 使用列表方法remove() 
删除值 175 
13.9.3 获取玩家的移动 176 
13.10 为玩家打印出游戏说明 177 
13.11 游戏循环 177 
13.11.1 为玩家显示游戏的 
状态 179 
13.11.2 处理玩家的移动 179 
13.11.3 找到一个沉没的 
藏宝箱 179 
13.11.4 判断玩家是否赢了 180 
13.11.5 判断玩家是否输了 180 
13.11.6 用sys.exit()函数终止 
程序 181 
13.12 小结 181 
第14章 凯撒密码 183 
14.1 密码学和加密 184 
14.2 凯撒密码简介 184 
14.3 凯撒密码的运行示例 185 
14.4 凯撒密码程序的源代码 186 
14.5 设置最大键长度 187 
14.6 决定加密还是解密 187 
14.7 从玩家处得到消息 188 
14.8 从玩家处得到密钥 188 
14.9 加密或解密消息 188 
14.9.1 使用字符串方法find() 
找到所传递的字符串 189 
14.9.2 加密或解密每个字母 190 
14.10 程序开始 191 
14.11 暴力破解 191 
14.12 添加暴力破解模式 192 
14.13 小结 193 
第15章 Reversegam游戏 195 
15.1 如何玩Reversegam 195 
15.2 Reversegam的运行示例 198 
15.3 Reversegam的源代码 200 
15.4 导入模块和设置常量 205 
15.5 游戏板数据结构 205 
15.5.1 在屏幕上绘制游戏板数据 
结构 205 
15.5.2 创建一个新的游戏板数据 
结构 206 
15.6 判断一次落子是否有效 207 
15.6.1 查看8个方向中的每一个 
方向 208 
15.6.2 发现是否有可以反转的 
棋子 209 
15.7 判断有效的坐标 210 
15.7.1 得到所有有效移动的一个 
列表 210 
15.7.2 调用bool()函数 211 
15.8 计算游戏板的得分 212 
15.9 获取玩家的棋子选择 212 
15.10 决定谁先走 213 
15.11 在游戏板上落下一个棋子 213 
15.12 复制游戏板数据结构 214 
15.13 判断一个格子是否在 
角落上 214 
15.14 获取玩家的移动 214 
15.15 获取计算机的移动 216 
15.15.1 角落移动策略 216 
15.15.2 获取最高得分的移动的 
列表 217 
15.16 在屏幕上打印分数 218 
15.17 游戏开始 218 
15.17.1 检查僵局 218 
15.17.2 运行玩家的轮次 219 
15.17.3 运行计算机的轮次 220 
15.18 游戏循环 221 
15.19 询问玩家是否再玩一局 222 
15.20 小结 222 
第16章 Reversegam AI模拟 223 
16.1 让计算机和自己下棋 224 
16.1.1 模拟程序1的运行 
示例 224 
16.1.2 模拟程序1的源代码 225 
16.1.3 删除玩家提示并添加一个 
计算机玩家 226 
16.2 让计算机自己多玩几次 227 
16.2.1 模拟程序2的运行 
示例 227 
16.2.2 模拟程序2的源代码 227 
16.2.3 记录多次游戏 228 
16.2.4 注释掉print()函数 
调用 229 
16.2.5 使用百分数评级AI 229 
16.3 比较不同的AI算法 231 
16.3.1 模拟程序3的源代码 231 
16.3.2 模拟程序3的AI是 
如何工作的 232 
16.3.3 比较AI 235 
16.4 小结 237 
第17章 创建图形 239 
17.1 安装pygame 240 
17.2 pygame中的Hello World 240 
17.3 运行pygame Hello World程序的 
示例 240 
17.4 pygame Hello World的 
源代码 241 
17.5 导入pygame模块 242 
17.6 初始化pygame 243 
17.7 设置pygame窗口 243 
17.7.1 元组 243 
17.7.2 Surface对象 244 
17.8 设置颜色变量 244 
17.9 将文本写到pygame窗口上 245 
17.9.1 使用字体来样式化 
文本 245 
17.9.2 渲染一个Font对象 246 
17.9.3 使用Rect属性设置文本 
位置 247 
17.10 用一种颜色填充一个Surface 
对象 248 
17.11 pygame的绘制函数 249 
17.11.1 绘制一个多边形 249 
17.11.2 绘制直线 250 
17.11.3 绘制圆形 250 
17.11.4 绘制椭圆形 251 
17.11.5 绘制矩形 251 
17.11.6 给像素着色 252 
17.12 Surface对象的blit()方法 252 
17.13 将Surface对象绘制到 
屏幕上 253 
17.14 事件和游戏循环 253 
17.14.1 获取事件对象 253 
17.14.2 退出程序 254 
17.15 小结 254 
第18章 动画图形 255 
18.1 Animation程序的运行示例 255 
18.2 Animation程序的源代码 256 
18.3 让积木移动和弹回 258 
18.4 设置常量变量 258 
18.4.1 用于方向的常量变量 259 
18.4.2 用于颜色的常量变量 260 
18.5 设置积木数据结构 260 
18.6 游戏循环 260 
18.6.1 处理玩家退出的情况 261 
18.6.2 移动每一个积木 261 
18.6.3 弹跳一个积木 262 
18.6.4 将积木绘制到窗口中 
新的位置 263 
18.6.5 在屏幕上绘制窗口 264 
18.7 小结 264 
第19章 碰撞检测 265 
19.1 碰撞检测程序的运行示例 266 
19.2 Collision Detection程序的 
源代码 266 
19.3 导入模块 268 
19.4 使用一个时钟来同步程序 268 
19.5 创建窗口和数据结构 269 
19.6 设置变量以记录移动 270 
19.7 处理事件 270 
19.7.1 处理KEYDOWN事件 271 
19.7.2 处理KEYUP事件 273 
19.8 转移玩家 274 
19.9 添加新的食物方块 274 
19.10 在屏幕上移动玩家 275 
19.10.1 将玩家绘制到屏幕上 275 
19.10.2 检查碰撞 276 
19.11 在窗口上绘制食物方块 276 
19.12 小结 277 
第20章 声音和图像 279 
20.1 使用ipipgo添加图像 279 
20.2 声音文件和图像文件 280 
20.3 Sprites and Sounds程序的 
运行示例 281 
20.4 Sprites and Sounds程序的 
源代码 281 
20.5 创建窗口和数据结构 284 
20.5.1 添加一个ipipgo 284 
20.5.2 改变一个ipipgo的大小 284 
20.6 创建音乐和声音 285 
20.6.1 添加声音文件 285 
20.6.2 切换和关闭声音 285 
20.7 把玩家绘制到窗口上 286 
20.8 检查碰撞 286 
20.9 在窗口中绘制樱桃 287 
20.10 小结 287 
第21章 带有声音和图像的Dodger 289 
21.1 回顾pygame的基本数据 
类型 289 
21.2 Dodger的运行示例 290 
21.3 Dodger的源代码 291 
21.4 导入模块 295 
21.5 创建常量 295 
21.6 定义函数 296 
21.6.1 终止和暂停游戏 296 
21.6.2 记录和敌人的碰撞 297 
21.6.3 将文本绘制到窗口 297 
21.7 初始化pygame并设置窗口 298 
21.8 设置Font、Sound和Image 
对象 299 
21.9 显示开始界面 300 
21.10 开始游戏 300 
21.11 游戏循环 302 
21.11.1 处理键盘事件 302 
21.11.2 处理鼠标移动 303 
21.12 增加新的敌人 303 
21.13 移动玩家角色和敌人 305 
21.14 实现作弊模式 306 
21.15 删除敌人 306 
21.16 绘制窗口 307 
21.16.1 绘制玩家的得分 307 
21.16.2 绘制玩家角色和敌人 307 
21.17 碰撞检测 308 
21.18 游戏结束屏幕 308 
21.19 修改Dodger游戏 309 
21.20 小结 310    
部分内容试读
暂无.
关于此书评价
暂无.
书摘内容
暂无.
Python游戏编程快速上手 第4版最新最全的试读、书评、目录、简介信息由Python中文网整理提供。
神龙|纯净稳定代理IP免费测试>>>>>>>>天启|企业级代理IP免费测试>>>>>>>>IPIPGO|全球住宅代理IP免费测试
 
                     
                


