Python面向对象编程:构建游戏和GUI:master oop by building games and GUIs
- ISBN:9787115602312
- 装帧:一般胶版纸
- 册数:暂无
- 重量:暂无
- 开本:24cm
- 页数:295页
- 出版时间:2023-03-01
- 条形码:9787115602312 ; 978-7-115-60231-2
本书特色
适读人群 :本书不仅适合Python开发人员阅读,还适合计算机相关专业的师生阅读。1.通过面向对象编程(Object-Oriented Programming,OOP),能有效地解决计算问题;2.深入剖析OOP的封装、多态性和继承,展示了如何在Python中使用这些特性开发游戏和应用程序;3.通过实践,综合运用本书介绍的许多OOP技术和GUI元素,创建一个功能完整的视频游戏;4.理解OOP的工作方式,提高代码的可读性,提升编程的水平和效率。
内容简介
本书首先介绍构建类和创建对象的基础知识,并结合代码讲述如何将理论付诸实践;然后讨论面向对象编程的关键概念——封装、多态性和继承,包括如何使用对象管理器创建并管理多个对象,如何通过封装对客户端代码隐藏对象的内部细节,如何使用多态性定义一个接口并在多个类中实现它,如何应用继承构建现有代码;*后讲述如何构建一款带完整的动画和声音的视频游戏,从而将所有内容整合在一起。本书涵盖了两个功能齐全的Python代码包,它们将加速Python中图形用户界面程序的开发。本书不仅适合Python开发人员阅读,还适合计算机相关专业的师生阅读。
目录
第 一部分 面向对象编程入门
第 1章 过程式Python示例 2
1.1 Higher or Lower纸牌游戏 2
1.1.1 表示数据 2
1.1.2 实现 3
1.1.3 可重用的代码 5
1.2 银行账户模拟 5
1.2.1 分析必要的操作和数据 5
1.2.2 实现1:不使用函数的单个账户 6
1.2.3 实现2:使用函数的单个账户 7
1.2.4 实现3:两个账户 9
1.2.5 实现4:使用列表的多个账户 10
1.2.6 实现5:账户字典的列表 13
1.3 过程式实现的常见问题 15
1.4 面向对象解决方案:初识类 15
1.5 小结 16
第 2章 通过面向对象编程模拟物体 17
2.1 构建物体的软件模型 17
2.2 类和对象简介 18
2.3 类、对象和实例化 19
2.3.1 在Python中编写类 20
2.3.2 作用域和实例变量 21
2.3.3 函数和方法的区别 22
2.3.4 从类创建对象 22
2.3.5 调用对象的方法 23
2.3.6 从相同类创建多个实例 24
2.3.7 Python数据类型被实现为类 25
2.3.8 对象的定义 26
2.4 创建一个更加复杂的类 26
2.5 将一个更加复杂的物理对象表示为类 28
2.5.1 向方法传递实参 32
2.5.2 多个实例 33
2.5.3 初始化参数 34
2.6 类的使用 35
2.7 以OOP作为解决方案 35
2.8 小结 36
第3章 对象的思维模型和 “self”的意义 37
3.1 重看DimmerSwitch类 37
3.2 1号高级思维模型 38
3.3 2号深层模型 39
3.4 self的含义 41
3.5 小结 43
第4章 管理多个对象 44
4.1 银行账户类 44
4.2 导入类的代码 46
4.3 创建一些测试代码 47
4.3.1 创建多个账户 47
4.3.2 在列表中包含多个Account对象 49
4.3.3 具有唯一标识符的多个对象 51
4.3.4 创建一个交互式菜单 53
4.4 创建对象管理器 54
4.4.1 创建对象管理器 56
4.4.2 创建对象管理器的主代码 58
4.5 使用异常更好地处理错误 59
4.5.1 try和except 60
4.5.2 raise语句和自定义异常 60
4.6 在Bank程序中使用异常 61
4.6.1 使用异常的Account类 61
4.6.2 优化后的Bank类 63
4.6.3 处理异常的主代码 64
4.7 在对象列表上调用相同的方法 65
4.8 接口与实现 67
4.9 小结 67
第二部分 使用pygame创建图形
用户界面
第5章 pygame简介 70
5.1 安装pygame 70
5.2 窗口 71
5.2.1 窗口坐标系统 71
5.2.2 像素颜色 74
5.3 事件驱动的程序 75
5.4 使用pygame 76
5.4.1 打开一个空白窗口 76
5.4.2 绘制图片 79
5.4.3 检测鼠标单击 81
5.4.4 处理键盘操作 83
5.4.5 创建基于位置的动画 86
5.4.6 使用pygame矩形 88
5.5 播放声音 90
5.5.1 播放音效 90
5.5.2 播放背景音乐 91
5.6 绘制形状 92
5.7 小结 95
第6章 面向对象的pygame 96
6.1 使用OOP pygame创建屏保球 96
6.1.1 创建Ball类 96
6.1.2 使用Ball类 98
6.1.3 创建多个Ball对象 99
6.1.4 创建大量Ball对象 100
6.2 构建可重用的、面向对象的按钮 101
6.2.1 构建一个Button类 101
6.2.2 使用SimpleButton的主代码 103
6.2.3 创建包含多个按钮的程序 104
6.3 构建可重用的、面向对象的文本显示 105
6.3.1 显示文本的步骤 105
6.3.2 创建SimpleText类 106
6.4 包含SimpleText和SimpleButton的弹球示例 107
6.5 对比接口与实现 109
6.6 回调函数 109
6.6.1 创建回调函数 110
6.6.2 对SimpleButton使用回调函数 110
6.7 小结 112
第7章 pygame GUI小部件 113
7.1 向函数或方法传递实参 113
7.1.1 位置和关键字形参 114
7.1.2 关于关键字形参的一些说明 115
7.1.3 使用None作为默认值 115
7.1.4 选择关键字和默认值 116
7.1.5 GUI小部件中的默认值 117
7.2 pygwidgets包 117
7.2.1 设置 117
7.2.2 总体设计方法 118
7.2.3 添加图片 119
7.2.4 添加按钮、复选框和单选按钮 119
7.2.5 文本输出和输入 122
7.2.6 其他pygwidgets类 124
7.2.7 pygwidgets示例程序 124
7.3 一致的API的重要性 125
7.4 小结 125
第三部分 封装、多态性和继承
第8章 封装 128
8.1 函数的封装 128
8.2 对象的封装 129
8.3 封装的含义 129
8.3.1 直接访问方式以及为什么应该避免使用这种方式 130
8.3.2 严格解释getter和setter 133
8.3.3 安全的直接访问 135
8.4 使实例变量更加私密 135
8.4.1 隐式私有 135
8.4.2 更加显式地私有 135
8.5 装饰器和@属性 136
8.6 pygwidgets类中的封装 139
8.7 一个真实的故事 140
8.8 抽象 141
8.9 小结 143
第9章 多态性 144
9.1 向现实世界的对象发送消息 144
9.2 编程中应用多态性的经典示例 145
9.3 使用pygame形状的示例 146
9.3.1 Square类 146
9.3.2 Circle类和Triangle类 147
9.3.3 创建形状的主程序 149
9.3.4 扩展模式 151
9.4 pygwidgets表现出多态性 151
9.5 运算符的多态性 152
9.5.1 魔术方法 153
9.5.2 比较运算符的魔术方法 153
9.5.3 包含魔术方法的Rectangle类 154
9.5.4 使用魔术方法的主程序 156
9.5.5 数学运算符的魔术方法 158
9.5.6 向量示例 158
9.6 创建对象中值的字符串表示 160
9.7 包含魔术方法的Fraction类 162
9.8 小结 165
第 10章 继承 166
10.1 面向对象编程中的继承 166
10.2 实现继承 167
10.3 Employee和Manager示例 168
10.3.1 基类Employee 168
10.3.2 子类Manager 168
10.3.3 测试代码 170
10.4 客户端眼中的子类 171
10.5 现实世界的继承示例 172
10.5.1 InputNumber 172
10.5.2 DisplayMoney 174
10.5.3 示例用法 176
10.6 从同一个基类继承多个类 179
10.7 抽象类和抽象方法 182
10.8 pygwidgets如何使用继承 185
10.9 类的层次 186
10.10 使用继承编程的困难 187
10.11 小结 188
第 11章 管理对象使用的内存 189
11.1 对象的生存期 189
11.1.1 引用计数 189
11.1.2 垃圾回收 194
11.2 类变量 194
11.2.1 类变量常量 194
11.2.2 将类变量用于计数 195
11.3 综合运用:气球示例程序 196
11.3.1 常量模块 197
11.3.2 主程序代码 198
11.3.3 气球管理器 200
11.3.4 Balloon类和对象 202
11.4 使用slots管理内存 204
11.5 小结 206
第四部分 在游戏开发中使用OOP
第 12章 纸牌游戏 208
12.1 Card类 208
12.2 Deck类 210
12.3 Higher or Lower游戏 212
12.3.1 主程序 212
12.3.2 Game对象 213
12.4 使用__name__进行测试 216
12.5 其他纸牌游戏 217
12.5.1 Blackjack牌堆 217
12.5.2 使用非标准牌堆的游戏 217
12.6 小结 218
第 13章 定时器 219
13.1 定时器演示程序 219
13.2 实现定时器的3种方法 220
13.2.1 统计帧数 220
13.2.2 定时器事件 221
13.2.3 通过计算经过的时间来创建定时器 222
13.3 安装pyghelpers 223
13.4 Timer类 224
13.5 显示时间 226
13.5.1 CountUpTimer 226
13.5.2 CountDownTimer 228
13.6 小结 229
第 14章 动画 230
14.1 构建动画类 230
14.1.1 SimpleAnimation类 230
14.1.2 SimpleSpriteSheetAnimation类 234
14.1.3 将两个类合并起来 237
14.2 pygwidgets中的动画类 237
14.2.1 Animation类 238
14.2.2 SpriteSheetAnimation类 239
14.2.3 公共基类PygAnimation 240
14.2.4 示例动画程序 240
14.3 小结 241
第 15章 场景 242
15.1 状态机方法 242
15.2 状态机的一个pygame示例 244
15.3 用于管理许多场景的场景管理器 248
15.4 使用场景管理器的一个示例程序 249
15.4.1 主程序 250
15.4.2 构建场景 252
15.4.3 一个典型场景 254
15.5 使用场景的Rock,Paper,Scissors 255
15.6 场景之间的通信 259
15.6.1 从目标场景请求信息 259
15.6.2 向目标场景发送信息 260
15.6.3 向所有场景发送信息 260
15.6.4 测试场景之间的通信 260
15.7 场景管理器的实现 261
15.7.1 run()方法 262
15.7.2 主方法 263
15.7.3 场景之间的通信 264
15.8 小结 265
第 16章 完整的Dodger 游戏 266
16.1 模态对话框 266
16.1.1 Yes/No和警告对话框 266
16.1.2 Answer对话框 269
16.2 构建完整的Dodger游戏 271
16.2.1 游戏概述 271
16.2.2 实现 272
16.2.3 扩展游戏 287
16.3 小结 287
第 17章 设计模式及收尾 289
17.1 模型-视图-控制器 289
17.1.1 文件显示示例 289
17.1.2 统计显示示例 290
17.1.3 MVC模式的优势 294
17.2 小结 294
作者简介
Irv Kalb是加州大学圣克鲁斯硅谷分校和硅谷大学的客座教授,负责“Python入门”与“Python面向对象编程”课程的教学。Irv拥有计算机科学的学士和硕士学位,使用多种计算机语言进行面向对象编程已超过30年,并且到现在已经有超过10年的教学经验。他有几十年的软件开发经验,主要关注教育软件的开发。在Furry Pants Productions公司,他和妻子以Darby the Dalmatian这个角色为原型,制作并发布了两张寓教于乐的CD-ROM。Irv还撰写了Learn to Program with Python 3: A Step-by-step Guide to Programming(Apress)一书。Irv深入参与了极限飞盘(Ultimate Frisbee)这项运动的早期开发。他主持编写了多个版本的官方规则手册,并与人合著了关于这项运动的图书—— Ultimate: Fundamentals of the Sport。
-
有限与无限的游戏:一个哲学家眼中的竞技世界
¥37.4¥68.0 -
硅谷之火-人与计算机的未来
¥14.3¥39.8 -
全图解零基础word excel ppt 应用教程
¥12.0¥48.0 -
机器学习
¥59.4¥108.0 -
深度学习的数学
¥43.5¥69.0 -
智能硬件项目教程:基于ARDUINO(第2版)
¥37.7¥65.0 -
元启发式算法与背包问题研究
¥38.2¥49.0 -
AI虚拟数字人:商业模式+形象创建+视频直播+案例应用
¥62.9¥89.8 -
UNIX环境高级编程(第3版)
¥164.9¥229.0 -
剪映AI
¥52.8¥88.0 -
深度学习高手笔记 卷2:经典应用
¥90.9¥129.8 -
纹样之美:中国传统经典纹样速查手册
¥77.4¥109.0 -
UG NX 12.0数控编程
¥24.8¥45.0 -
MATLAB计算机视觉与深度学习实战(第2版)
¥90.9¥128.0 -
界面交互设计理论研究
¥30.8¥56.0 -
UN NX 12.0多轴数控编程案例教程
¥25.8¥38.0 -
微机组装与系统维护技术教程(第二版)
¥37.8¥43.0 -
Go 语言运维开发 : Kubernetes 项目实战
¥48.2¥79.0 -
明解C语言:实践篇
¥62.9¥89.8 -
Linux服务器架设实战(Linux典藏大系)
¥84.5¥119.0