注冊 | 登錄讀書好,好讀書,讀好書!
讀書網(wǎng)-DuShu.com
當(dāng)前位置: 首頁出版圖書科學(xué)技術(shù)計(jì)算機(jī)/網(wǎng)絡(luò)軟件與程序設(shè)計(jì)Python面向?qū)ο缶幊蹋簶?gòu)建游戲和GUI

Python面向?qū)ο缶幊蹋簶?gòu)建游戲和GUI

Python面向?qū)ο缶幊蹋簶?gòu)建游戲和GUI

定 價(jià):¥99.80

作 者: [美]艾維·卡爾布(Irv Kalb)
出版社: 人民郵電出版社
叢編項(xiàng):
標(biāo) 簽: 暫缺

ISBN: 9787115602312 出版時(shí)間: 2023-03-01 包裝: 平裝-膠訂
開本: 128開 頁數(shù): 字?jǐn)?shù):  

內(nèi)容簡介

  本書首先介紹構(gòu)建類和創(chuàng)建對象的基礎(chǔ)知識,并結(jié)合代碼講述如何將理論付諸實(shí)踐;然后討論面向?qū)ο缶幊痰年P(guān)鍵概念——封裝、多態(tài)性和繼承,包括如何使用對象管理器創(chuàng)建并管理多個(gè)對象,如何通過封裝對客戶端代碼隱藏對象的內(nèi)部細(xì)節(jié),如何使用多態(tài)性定義一個(gè)接口并在多個(gè)類中實(shí)現(xiàn)它,如何應(yīng)用繼承構(gòu)建現(xiàn)有代碼;后講述如何構(gòu)建一款帶完整的動畫和聲音的視頻游戲,從而將所有內(nèi)容整合在一起。本書涵蓋了兩個(gè)功能齊全的Python代碼包,它們將加速Python中圖形用戶界面程序的開發(fā)。本書不僅適合Python開發(fā)人員閱讀,還適合計(jì)算機(jī)相關(guān)專業(yè)的師生閱讀。

作者簡介

  Irv Kalb是加州大學(xué)圣克魯斯硅谷分校和硅谷大學(xué)的客座教授,負(fù)責(zé)“Python入門”與“Python面向?qū)ο缶幊?rdquo;課程的教學(xué)。Irv擁有計(jì)算機(jī)科學(xué)的學(xué)士和碩士學(xué)位,使用多種計(jì)算機(jī)語言進(jìn)行面向?qū)ο缶幊桃殉^30年,并且到現(xiàn)在已經(jīng)有超過10年的教學(xué)經(jīng)驗(yàn)。他有幾十年的軟件開發(fā)經(jīng)驗(yàn),主要關(guān)注教育軟件的開發(fā)。在Furry Pants Productions公司,他和妻子以Darby the Dalmatian這個(gè)角色為原型,制作并發(fā)布了兩張?jiān)⒔逃跇返腃D-ROM。Irv還撰寫了Learn to Program with Python 3: A Step-by-step Guide to Programming(Apress)一書。Irv深入?yún)⑴c了極限飛盤(Ultimate Frisbee)這項(xiàng)運(yùn)動的早期開發(fā)。他主持編寫了多個(gè)版本的官方規(guī)則手冊,并與人合著了關(guān)于這項(xiàng)運(yùn)動的圖書—— Ultimate: Fundamentals of the Sport。

圖書目錄

目 錄
第 一部分 面向?qū)ο缶幊倘腴T
第 1章 過程式Python示例2
1.1 Higher or Lower紙牌游戲2
1.1.1 表示數(shù)據(jù)2
1.1.2 實(shí)現(xiàn)3
1.1.3 可重用的代碼5
1.2 銀行賬戶模擬5
1.2.1 分析必要的操作和數(shù)據(jù)5
1.2.2 實(shí)現(xiàn)1:不使用函數(shù)的單個(gè)賬戶6
1.2.3 實(shí)現(xiàn)2:使用函數(shù)的單個(gè)賬戶7
1.2.4 實(shí)現(xiàn)3:兩個(gè)賬戶9
1.2.5 實(shí)現(xiàn)4:使用列表的多個(gè)賬戶10
1.2.6 實(shí)現(xiàn)5:賬戶字典的列表13
1.3 過程式實(shí)現(xiàn)的常見問題15
1.4 面向?qū)ο蠼鉀Q方案:初識類15
1.5 小結(jié)16
第 2章 通過面向?qū)ο缶幊棠M物體17
2.1 構(gòu)建物體的軟件模型17
2.2 類和對象簡介18
2.3 類、對象和實(shí)例化19
2.3.1 在Python中編寫類20
2.3.2 作用域和實(shí)例變量21
2.3.3 函數(shù)和方法的區(qū)別22
2.3.4 從類創(chuàng)建對象22
2.3.5 調(diào)用對象的方法23
2.3.6 從相同類創(chuàng)建多個(gè)實(shí)例24
2.3.7 Python數(shù)據(jù)類型被實(shí)現(xiàn)為類25
2.3.8 對象的定義26
2.4 創(chuàng)建一個(gè)更加復(fù)雜的類26
2.5 將一個(gè)更加復(fù)雜的物理對象表示為類28
2.5.1 向方法傳遞實(shí)參32
2.5.2 多個(gè)實(shí)例33
2.5.3 初始化參數(shù)34
2.6 類的使用35
2.7 以O(shè)OP作為解決方案35
2.8 小結(jié)36
第3章 對象的思維模型和 “self”的意義37
3.1 重看DimmerSwitch類37
3.2 1號高級思維模型38
3.3 2號深層模型39
3.4 self的含義41
3.5 小結(jié)43
第4章 管理多個(gè)對象44
4.1 銀行賬戶類44
4.2 導(dǎo)入類的代碼46
4.3 創(chuàng)建一些測試代碼47
4.3.1 創(chuàng)建多個(gè)賬戶47
4.3.2 在列表中包含多個(gè)Account對象49
4.3.3 具有標(biāo)識符的多個(gè)對象51
4.3.4 創(chuàng)建一個(gè)交互式菜單53
4.4 創(chuàng)建對象管理器54
4.4.1 創(chuàng)建對象管理器56
4.4.2 創(chuàng)建對象管理器的主代碼58
4.5 使用異常更好地處理錯(cuò)誤59
4.5.1 try和except60
4.5.2 raise語句和自定義異常60
4.6 在Bank程序中使用異常61
4.6.1 使用異常的Account類61
4.6.2 優(yōu)化后的Bank類63
4.6.3 處理異常的主代碼64
4.7 在對象列表上調(diào)用相同的方法65
4.8 接口與實(shí)現(xiàn)67
4.9 小結(jié)67
第二部分 使用pygame創(chuàng)建圖形
用戶界面
第5章 pygame簡介70
5.1 安裝pygame70
5.2 窗口71
5.2.1 窗口坐標(biāo)系統(tǒng)71
5.2.2 像素顏色74
5.3 事件驅(qū)動的程序75
5.4 使用pygame76
5.4.1 打開一個(gè)空白窗口76
5.4.2 繪制圖片79
5.4.3 檢測鼠標(biāo)單擊81
5.4.4 處理鍵盤操作83
5.4.5 創(chuàng)建基于位置的動畫86
5.4.6 使用pygame矩形88
5.5 播放聲音90
5.5.1 播放音效90
5.5.2 播放背景音樂91
5.6 繪制形狀92
5.7 小結(jié)95
第6章 面向?qū)ο蟮膒ygame96
6.1 使用OOP pygame創(chuàng)建屏保球96
6.1.1 創(chuàng)建Ball類96
6.1.2 使用Ball類98
6.1.3 創(chuàng)建多個(gè)Ball對象99
6.1.4 創(chuàng)建大量Ball對象100
6.2 構(gòu)建可重用的、面向?qū)ο蟮陌粹o101
6.2.1 構(gòu)建一個(gè)Button類101
6.2.2 使用SimpleButton的主代碼103
6.2.3 創(chuàng)建包含多個(gè)按鈕的程序104
6.3 構(gòu)建可重用的、面向?qū)ο蟮奈谋撅@示105
6.3.1 顯示文本的步驟105
6.3.2 創(chuàng)建SimpleText類106
6.4 包含SimpleText和SimpleButton的彈球示例107
6.5 對比接口與實(shí)現(xiàn)109
6.6 回調(diào)函數(shù)109
6.6.1 創(chuàng)建回調(diào)函數(shù)110
6.6.2 對SimpleButton使用回調(diào)函數(shù)110
6.7 小結(jié)112
第7章 pygame GUI小部件113
7.1 向函數(shù)或方法傳遞實(shí)參113
7.1.1 位置和關(guān)鍵字形參114
7.1.2 關(guān)于關(guān)鍵字形參的一些說明115
7.1.3 使用None作為默認(rèn)值115
7.1.4 選擇關(guān)鍵字和默認(rèn)值116
7.1.5 GUI小部件中的默認(rèn)值117
7.2 pygwidgets包117
7.2.1 設(shè)置117
7.2.2 總體設(shè)計(jì)方法118
7.2.3 添加圖片119
7.2.4 添加按鈕、復(fù)選框和單選按鈕119
7.2.5 文本輸出和輸入122
7.2.6 其他pygwidgets類124
7.2.7 pygwidgets示例程序124
7.3 一致的API的重要性125
7.4 小結(jié)125
第三部分 封裝、多態(tài)性和繼承
第8章 封裝128
8.1 函數(shù)的封裝128
8.2 對象的封裝129
8.3 封裝的含義129
8.3.1 直接訪問方式以及為什么應(yīng)該避免使用這種方式130
8.3.2 嚴(yán)格解釋getter和setter133
8.3.3 安全的直接訪問135
8.4 使實(shí)例變量更加私密135
8.4.1 隱式私有135
8.4.2 更加顯式地私有135
8.5 裝飾器和@屬性136
8.6 pygwidgets類中的封裝139
8.7 一個(gè)真實(shí)的故事140
8.8 抽象141
8.9 小結(jié)143
第9章 多態(tài)性144
9.1 向現(xiàn)實(shí)世界的對象發(fā)送消息144
9.2 編程中應(yīng)用多態(tài)性的經(jīng)典示例145
9.3 使用pygame形狀的示例146
9.3.1 Square類146
9.3.2 Circle類和Triangle類147
9.3.3 創(chuàng)建形狀的主程序149
9.3.4 擴(kuò)展模式151
9.4 pygwidgets表現(xiàn)出多態(tài)性151
9.5 運(yùn)算符的多態(tài)性152
9.5.1 魔術(shù)方法153
9.5.2 比較運(yùn)算符的魔術(shù)方法153
9.5.3 包含魔術(shù)方法的Rectangle類154
9.5.4 使用魔術(shù)方法的主程序156
9.5.5 數(shù)學(xué)運(yùn)算符的魔術(shù)方法158
9.5.6 向量示例158
9.6 創(chuàng)建對象中值的字符串表示160
9.7 包含魔術(shù)方法的Fraction類162
9.8 小結(jié)165
第 10章 繼承166
10.1 面向?qū)ο缶幊讨械睦^承166
10.2 實(shí)現(xiàn)繼承167
10.3 Employee和Manager示例168
10.3.1 基類Employee168
10.3.2 子類Manager168
10.3.3 測試代碼170
10.4 客戶端眼中的子類171
10.5 現(xiàn)實(shí)世界的繼承示例172
10.5.1 InputNumber172
10.5.2 DisplayMoney174
10.5.3 示例用法176
10.6 從同一個(gè)基類繼承多個(gè)類179
10.7 抽象類和抽象方法182
10.8 pygwidgets如何使用繼承185
10.9 類的層次186
10.10 使用繼承編程的困難187
10.11 小結(jié)188
第 11章 管理對象使用的內(nèi)存189
11.1 對象的生存期189
11.1.1 引用計(jì)數(shù)189
11.1.2 垃圾回收194
11.2 類變量194
11.2.1 類變量常量194
11.2.2 將類變量用于計(jì)數(shù)195
11.3 綜合運(yùn)用:氣球示例程序196
11.3.1 常量模塊197
11.3.2 主程序代碼198
11.3.3 氣球管理器200
11.3.4 Balloon類和對象202
11.4 使用slots管理內(nèi)存204
11.5 小結(jié)206
第四部分 在游戲開發(fā)中使用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__進(jìn)行測試216
12.5 其他紙牌游戲217
12.5.1 Blackjack牌堆217
12.5.2 使用非標(biāo)準(zhǔn)牌堆的游戲217
12.6 小結(jié)218
第 13章 定時(shí)器219
13.1 定時(shí)器演示程序219
13.2 實(shí)現(xiàn)定時(shí)器的3種方法220
13.2.1 統(tǒng)計(jì)幀數(shù)220
13.2.2 定時(shí)器事件221
13.2.3 通過計(jì)算經(jīng)過的時(shí)間來創(chuàng)建定時(shí)器222
13.3 安裝pyghelpers223
13.4 Timer類224
13.5 顯示時(shí)間226
13.5.1 CountUpTimer226
13.5.2 CountDownTimer228
13.6 小結(jié)229
第 14章 動畫230
14.1 構(gòu)建動畫類230
14.1.1 SimpleAnimation類230
14.1.2 SimpleSpriteSheetAnimation類234
14.1.3 將兩個(gè)類合并起來237
14.2 pygwidgets中的動畫類237
14.2.1 Animation類238
14.2.2 SpriteSheetAnimation類239
14.2.3 公共基類PygAnimation240
14.2.4 示例動畫程序240
14.3 小結(jié)241
第 15章 場景242
15.1 狀態(tài)機(jī)方法242
15.2 狀態(tài)機(jī)的一個(gè)pygame示例244
15.3 用于管理許多場景的場景管理器248
15.4 使用場景管理器的一個(gè)示例程序249
15.4.1 主程序250
15.4.2 構(gòu)建場景252
15.4.3 一個(gè)典型場景254
15.5 使用場景的Rock,Paper,Scissors255
15.6 場景之間的通信259
15.6.1 從目標(biāo)場景請求信息259
15.6.2 向目標(biāo)場景發(fā)送信息260
15.6.3 向所有場景發(fā)送信息260
15.6.4 測試場景之間的通信260
15.7 場景管理器的實(shí)現(xiàn)261
15.7.1 run()方法262
15.7.2 主方法263
15.7.3 場景之間的通信264
15.8 小結(jié)265
第 16章 完整的Dodger 游戲266
16.1 模態(tài)對話框266
16.1.1 Yes No和警告對話框266
16.1.2 Answer對話框269
16.2 構(gòu)建完整的Dodger游戲271
16.2.1 游戲概述271
16.2.2 實(shí)現(xiàn)272
16.2.3 擴(kuò)展游戲287
16.3 小結(jié)287
第 17章 設(shè)計(jì)模式及收尾289
17.1 模型-視圖-控制器289
17.1.1 文件顯示示例289
17.1.2 統(tǒng)計(jì)顯示示例290
17.1.3 MVC模式的優(yōu)勢294
17.2 小結(jié)294

本目錄推薦

掃描二維碼
Copyright ? 讀書網(wǎng) m.ranfinancial.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號 鄂公網(wǎng)安備 42010302001612號