《Python 游戏编程快速上手 第4版》PDF [美]Al Sweigart

瑾年安好 201 0

《Python 游戏编程快速上手 第4版》PDF [美]Al Sweigart

大小 : 6.67 MB |  下载量 : 2 次 |  文件类型 : PDF文档  

信息简介

书名:《Python 游戏编程快速上手 第4版》

副标题:《Python 游戏编程快速上手 第4版》

作者:[美]AlSweigart

类别:计算编程

页数:332

格式:PDF

ISBN:9787115466419

出版社:人民邮电出版社

出版日期:2017年10月

内容简介

Python是一种高级程序设计语言,因其简洁、易读及可扩展性日渐成为程序设计领域备受推崇的语言。本书通过编写一个个小巧、有趣的游戏来教授Python编程,并且采用直接展示游戏的源代码并通过实例来解释编程的原理的方式。全书共21章,12个游戏程序和示例贯穿其中,介绍了Python基础知识、数据类型、函数、流程控制、程序调试、流程图设计、字符串操作、列表和字典、笛卡尔坐标系、密码学基础、游戏AI模拟、动画图形、碰撞检测、声音和图像等方方面面的程序设计知识。本书可以帮助读者在轻松有趣的过程中,掌握Python游戏编程的基本技能。本书适合不同年龄和层次的Python编程初学者阅读。

作者简介

AlSweigart是一名教授孩子和成人编程的软件开发者。通过http://inventwithpython.com/可以访问他编写的编程教程。他是畅销书《Python编程快速上手——让繁琐工作自动化》的作者。

作品目录

第1章交互式Shell1

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创建HelloWorld程序11

2.3.2保存程序12

2.3.3运行程序13

2.4HelloWorld程序如何工作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.3for循环语句25

3.7玩家的猜测26

3.8使用int()函数、float()函数、str()

函数和bool()函数来转换值26

3.9布尔数据类型28

3.9.1比较操作符28

3.9.2用条件检查True或

False29

3.9.3体验布尔值、比较操作符

和条件29

3.9.4=和==的区别30

3.10if语句30

3.11用break语句提早离开循环31

3.12判断玩家是否赢了31

3.13判断玩家是否输了32

3.14小结32

第4章一个讲笑话程序35

4.1Jokes游戏的运行示例35

4.2Jokes游戏的源代码36

4.3代码如何工作36

4.4转义字符37

4.5单引号和双引号38

4.6print()的end关键字形参39

4.7小结39

第5章DragonRealm41

5.1如何玩DragonRealm41

5.2DragonRealm的运行示例42

5.3DragonRealm的流程图42

5.4DragonRealm的源代码43

5.5导入random和time模块44

5.6DragonRealm中的函数44

5.6.1def语句45

5.6.2调用函数45

5.6.3把函数定义放在哪里45

5.7多行字符串46

5.8while语句实现循环46

5.9布尔操作符47

5.9.1and操作符47

5.9.2or操作符48

5.9.3not操作符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.1Bug的类型57

6.2调试器58

6.2.1启动调试器59

6.2.2用调试器单步执行程序60

6.3查找Bug63

6.4设置断点65

6.5使用断点66

6.6小结68

第7章用流程图设计Hangman69

7.1如何玩Hangman69

7.2Hangman的运行示例70

7.3ASCII字符图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.1Hangman的源代码79

8.2导入random模块82

8.3常量82

8.4列表数据类型83

8.4.1用索引访问元素83

8.4.2列表连接84

8.4.3in操作符85

8.5调用方法85

8.5.1列表方法reverse()和

append()86

8.5.2字符串方法split()86

8.6从单词列表中获取一个神秘

单词87

8.7向玩家显示游戏板87

8.7.1list()函数和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.9elif语句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章TicTacToe111

10.1TicTacToe的运行示例112

10.2TicTacToe的源代码113

10.3设计程序116

10.3.1用数据表示游戏板117

10.3.2游戏AI117

10.4导入random模块119

10.5在屏幕上打印游戏板119

10.6让玩家来选择X或O120

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.15None值130

10.16创建计算机的AI131

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章推理游戏Bagels137

11.1Bagels的运行示例138

11.2Bagels的源代码138

11.3Bagels的流程图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章SonarTreasureHunt游戏159

13.1SonarTreasureHunt的运行

示例160

13.2SonarTreasureHunt的源

代码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如何玩Reversegam195

15.2Reversegam的运行示例198

15.3Reversegam的源代码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章ReversegamAI模拟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使用百分数评级AI229

16.3比较不同的AI算法231

16.3.1模拟程序3的源代码231

16.3.2模拟程序3的AI是

如何工作的232

16.3.3比较AI235

16.4小结237

第17章创建图形239

17.1安装pygame240

17.2pygame中的HelloWorld240

17.3运行pygameHelloWorld程序的

示例240

17.4pygameHelloWorld的

源代码241

17.5导入pygame模块242

17.6初始化pygame243

17.7设置pygame窗口243

17.7.1元组243

17.7.2Surface对象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.11pygame的绘制函数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.12Surface对象的blit()方法252

17.13将Surface对象绘制到

屏幕上253

17.14事件和游戏循环253

17.14.1获取事件对象253

17.14.2退出程序254

17.15小结254

第18章动画图形255

18.1Animation程序的运行示例255

18.2Animation程序的源代码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.2CollisionDetection程序的

源代码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使用精灵添加图像279

20.2声音文件和图像文件280

20.3SpritesandSounds程序的

运行示例281

20.4SpritesandSounds程序的

源代码281

20.5创建窗口和数据结构284

20.5.1添加一个精灵284

20.5.2改变一个精灵的大小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章带有声音和图像的Dodger289

21.1回顾pygame的基本数据

类型289

21.2Dodger的运行示例290

21.3Dodger的源代码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

大小 : 6.67 MB |  下载量 : 2 次 |  文件类型 : PDF文档  

标签: 计算编程

发表评论 (已有0条评论)

还木有评论哦,快来抢沙发吧~