具体描述
Python是一种高级程序设计语言,因其简洁、易读及可扩展性日渐成为程序设计领域备受推崇的语言。
本书通过编写一个个小巧、有趣的游戏来教授Python编程,并且采用直接展示了游戏的源代码,通过实例来解释编程的原理的方式。全书共21章,14个游戏程序和示例贯穿其中,介绍了Python基础知识、数据类型、函数、流程控制、程序调试、流程图设计、字符串操作、列表和字典、图形和动画、碰撞检测、声音和图像等方方面面的程序设计知识。本书可以帮助读者在轻松有趣的过程中,掌握Python游戏编程的基本技能。
本书适合不同年龄和层次的Python编程初学者阅读。
作者简介
Al Sweigart是加利福尼亚州旧金山的一名软件开发者。他很喜欢骑自行车、当志愿者、泡咖啡吧以及开发有用的软件。他编写了《Python游戏编程快速上手》《Python和Pygame游戏开发指南》《Python密码学编程》《Python编程快速上手——让繁琐工作自动化》等图书,深受读者欢迎。他生于德克萨斯的休斯顿。他在德克萨斯大学Austin分校读完了计算机科学学位。
目录信息
1.1 下载和安装Python 1
1.2 启动IDLE 2
1.3 如何使用本书 3
1.4 寻求在线帮助 4
第2章 交互式shell 6
2.1 一些简单的数学知识 6
2.2 计算表达式 7
2.4 本章小结 12
第3章 编写程序 13
3.1 字符串 13
3.2 字符串连接 14
3.3 在IDLE的文件编辑器中编写程序 14
3.4 Hello World! 15
3.5 保存程序 16
3.6 打开保存过的程序 16
3.7 “Hello World”程序如何工作 18
3.8 变量名称 20
3.9 本章小结 21
第4章 “猜数字”游戏 22
4.1 “猜数字”游戏的运行示例 22
4.2 “猜数字”游戏的源代码 23
4.3 import语句 24
4.4 random.randint()函数 25
4.5 循环 26
4.6 语句块 26
4.7 布尔数据类型 27
4.8 比较操作符 28
4.9 条件 28
4.10 =和==的区别 30
4.11 while循环语句 30
4.12 使用int()函数、float()函数、str()
函数和bool()函数来转换值 31
4.14 if语句 33
4.15 用break语句提早离开循环 34
4.16 流程控制语句 36
4.17 本章小结 36
第5章 Jokes 38
5.1 用好print()函数 38
5.2 Jokes游戏的运行示例 38
5.3 Jokes游戏的源代码 38
5.4 转义字符 39
5.5引号和双引号 40
5.6 print()的end关键字参数 41
5.7 本章小结 42
第6章 Dragon Realm 43
6.1 函数 43
6.2 如何玩“Dragon Realm” 43
6.3 Dragon Realm游戏的运行示例 44
6.4 Dragon Realm的源代码 44
6.5 def语句 46
6.6 布尔操作符 47
6.7 返回值 51
6.8 全局作用域和局部作用域 51
6.9 形参(parameter) 53
6.10 设计游戏 56
6.11 本章小结 57
第7章 使用调试器 58
7.1 Bug! 58
7.2 调试器 59
7.3 单步执行 61
7.4 查找Bug 63
7.5 断点 66
7.6 使用断点的示例 67
7.7 本章小结 68
第8章 流程图 69
8.1 如何玩Hangman 69
8.2 Hangman的运行示例 69
8.3 ASCII字符图 71
8.4 用流程图来设计一个程序 71
8.5 生成流程图 73
8.6 本章小结 79
第9章 Hangman 81
9.1 Hangman的源代码 81
9.2 多行字符串 86
9.3 常量 86
9.4 列表 86
9.5 方法 91
9.6 字符串方法lower()和upper() 91
9.7 列表方法reverse()和append() 92
9.8 列表方法split() 93
9.9 range()函数和list()函数 95
9.10 for循环 96
9.11 切片 98
9.12 elif (“Else If”)语句 101
9.13 本章小结 108
第10章 Hangman扩展 109
10.1 字典 110
10.2 random.choice()函数 113
10.3 多变量赋值 114
10.4 本章小结 116
第11章 Tic Tac Toe 117
11.1 Tic Tac Toe的运行示例 117
11.2 Tic Tac Toe的源代码 118
11.3 设计程序 123
11.4 游戏AI 124
11.5 引用 129
11.6 短路求值 137
11.7 None值 140
11.8 本章小结 146
第12章 Bagels 147
12.1 Bagels的运行示例 147
12.2 Bagels的源代码 148
12.3 random.shuffle()函数 151
12.4 复合赋值操作符 153
12.5 列表方法sort() 154
12.6 字符串方法join() 155
12.7 字符串插值 157
12.8 本章小结 160
第13章 笛卡尔坐标 161
13.1 网格和笛卡尔坐标 161
13.2 负数 163
13.3 数学技巧 164
13.4 绝对值和abs()函数 166
13.5 计算机屏幕的坐标系 167
13.6 本章小结 167
第14章 Sonar Treasure Hunt 168
14.1 Sonar Treasure Hunt的
运行示例 169
14.2 Sonar Treasure Hunt的源代码 173
14.3 设计程序 179
14.4 找到最近的藏宝箱的算法 185
14.5 列表方法remove() 187
14.6 本章小结 195
第15章 Caesar Cipher 196
15.1 密码学 196
15.2 凯撒密码 197
15.3 ASCII码以及用数字表示字母 198
15.4 函数chr()和ord() 199
15.5 凯撒密码的运行示例 200
15.6 Caesar Cipher的源代码 201
15.7 代码如何工作 202
15.8 字符串方法isalpha() 204
15.9 字符串方法isupper()和
islower() 205
15.10 暴力破解 207
15.11 本章小结 209
第16章 Reversi 210
16.1 Reversi的运行示例 211
16.2 Reversi的源代码 215
16.3 代码如何工作 223
16.4 bool()函数 231
16.5 本章小结 244
第17章 Reversi AI模拟 245
17.1 让计算机和自己下棋 245
17.2 百分数 250
17.3 round()函数 251
17.4 AISim2.py的运行示例 252
17.5 比较不同的AI算法 252
17.6 本章小结 259
第18章 图形和动画 260
18.1 安装Pygame 260
18.2 Pygame中的Hello World 261
18.3 Hello World的源代码 261
18.4 运行Hello World程序 263
18.5 元组 264
18.6 RGB颜色 265
18.7 字体和pygame.font.SysFont()
函数 266
18.8 属性 267
18.9 构造函数 269
18.10 Pygame的绘制函数 269
18.11 事件和游戏循环 272
18.12 动画 273
18.13 Animation程序的源代码 274
18.14 Animation程序如何工作 276
18.15 运行程序循环 279
18.16 本章小结 282
第19章 碰撞检测与鼠标/键盘的输入 284
19.1 Collision Detection程序的
源代码 284
19.2 Collision Detection算法 288
19.3 当遍历一个列表的时候,
不要修改该列表 292
19.4 键盘输入程序的源代码 293
19.5 colliderect()方法 300
19.6 本章小结 301
第20章 声音和图像 302
20.1 声音文件和图像文件 303
20.2 精灵和声音程序 303
20.3 Sprites and Sounds程序的
源代码 304
20.4 pygame.transform.scale()函数 308
20.5 本章小结 311
第21章 Dodger 312
21.1 回顾Pygame的基本数据类型 312
21.2 Dodger的源代码 313
21.3 全屏模式 322
21.4 游戏循环 325
21.5 事件处理 325
21.6 move_ip()方法 328
21.7 pygame.mouse.set_pos()函数 331
21.8 修改Dodger游戏 335
21.9 本章小结 335
· · · · · · (收起)
读后感
读中学的时候,除了游戏厅里的投币街机,我第一次见到的游戏机是城里学生带到学校的俄罗斯方块掌机,虽然是现在看起来很简陋的黑白游戏,但那时候足以吸引一群同学围观一个下午。直至上大学及工作前几年,我对电子游戏一直很着迷。后来因为工作和生活的压力,个人空闲时间越来...
读中学的时候,除了游戏厅里的投币街机,我第一次见到的游戏机是城里学生带到学校的俄罗斯方块掌机,虽然是现在看起来很简陋的黑白游戏,但那时候足以吸引一群同学围观一个下午。直至上大学及工作前几年,我对电子游戏一直很着迷。后来因为工作和生活的压力,个人空闲时间越来...
读中学的时候,除了游戏厅里的投币街机,我第一次见到的游戏机是城里学生带到学校的俄罗斯方块掌机,虽然是现在看起来很简陋的黑白游戏,但那时候足以吸引一群同学围观一个下午。直至上大学及工作前几年,我对电子游戏一直很着迷。后来因为工作和生活的压力,个人空闲时间越来...
读中学的时候,除了游戏厅里的投币街机,我第一次见到的游戏机是城里学生带到学校的俄罗斯方块掌机,虽然是现在看起来很简陋的黑白游戏,但那时候足以吸引一群同学围观一个下午。直至上大学及工作前几年,我对电子游戏一直很着迷。后来因为工作和生活的压力,个人空闲时间越来...
读中学的时候,除了游戏厅里的投币街机,我第一次见到的游戏机是城里学生带到学校的俄罗斯方块掌机,虽然是现在看起来很简陋的黑白游戏,但那时候足以吸引一群同学围观一个下午。直至上大学及工作前几年,我对电子游戏一直很着迷。后来因为工作和生活的压力,个人空闲时间越来...
用户评价
如果非要找出一个可以改进的地方,那可能是在高级AI和网络对战方面的覆盖略显不足,但这或许也正是这本书定位的体现——“快速上手”。对于一个渴望在短时间内看到自己创造的小世界运转起来的读者来说,这本书无疑是最佳的入门伴侣。它提供的素材和方法论,足以支撑我完成一个功能完备的独立小游戏,并且让我有信心去探索更复杂的主题。我将这本书推荐给了我所有的游戏制作圈的朋友,特别是那些被复杂引擎吓退的人。它证明了,用Python进行游戏开发,门槛并没有想象中那么高,关键在于你手上的第一本引导手册是否足够优秀。
坦白说,我拿到这本书的时候,心里还是有点打鼓,毕竟“快速上手”这个词听起来有点夸张。但实际阅读下来,我发现作者对“快速”的定义非常务实:它指的是让你快速建立信心并看到成果,而不是让你一蹴而就地成为高手。书中对Pygame库的各个模块的介绍,结构非常合理,逻辑性很强。我个人对书中关于事件处理机制的讲解特别满意,那是初学者最容易感到困惑的地方。作者通过大量的代码片段和流程图,将复杂的异步事件处理梳理得井井有条,让我很快就能掌控游戏的交互逻辑。这本书的排版也十分友好,代码块的颜色和字体大小都非常适中,长时间阅读下来眼睛也不会感到疲劳。
这本书的价值远远超过了它的价格,它成功地搭建了一座从零基础到初步掌握独立开发游戏的桥梁。我过去尝试过一些开源项目文档,但那些往往假设读者已经具备一定的编程基础,术语密集,阅读体验很差。而这本《Python游戏编程快速上手》则完全站在了小白的角度,用一种极其平易近人的语言,讲解了面向对象编程在游戏开发中的应用。比如,书中讲解如何使用类来管理不同的游戏对象(敌人、道具、玩家),这个过程非常流畅自然,让我明白了为什么要用OOP,而不是单纯地告诉我“你应该这样做”。这种对“为什么”的深入探讨,极大地提升了我的编程思维的深度。
这本书的深度和广度都超乎我的预期,尤其是在游戏设计理念的阐述上,给我留下了深刻的印象。它不仅仅是一本技术手册,更像是一本实战指南。作者在介绍完基本的图形库操作后,立刻将我们带入了实际的项目案例中,比如如何实现角色的移动、碰撞检测、动画效果等。这些案例设计得非常巧妙,既贴合了现代游戏的常见元素,又不会因为复杂度过高而让初学者望而却步。我尤其欣赏作者在处理性能优化上的态度,他没有回避底层细节,而是用通俗易懂的方式解释了为什么某些做法会导致卡顿,以及如何通过调整逻辑来提升用户体验。这种注重实效的教学方式,让我感觉学到的不仅仅是代码,更是解决问题的思路。
这本《Python游戏编程快速上手》的书籍,对于我这种编程新手来说,简直就是打开了一扇新世界的大门。从最基础的Python语法讲解开始,作者就展现出了极强的教学功底。他没有那种高高在上的说教感,而是像一位耐心的老朋友一样,一步步引导我进入游戏编程的世界。特别是书中关于如何搭建游戏框架的部分,讲解得异常清晰。我之前尝试过看一些其他教程,但往往在环境配置和基础架构搭建时就迷失了方向,而这本书则巧妙地将复杂的概念拆解成易于理解的小模块,让我能快速上手,并且有成就感地完成第一个简单的小游戏。那种“原来如此”的顿悟感,是其他教材难以比拟的。
非常有意思!
非常有意思!
练手项目,完全可以把编程里面的游戏文字也汉化。
不错的入门级书📖,相对浅显易上手,解释的也很详细
练手项目,完全可以把编程里面的游戏文字也汉化。