Python好好玩|趣學電玩遊戲程式設計

    「Python好好玩|趣學電玩遊戲程式設計」這本書會教您怎麼利用廣受歡迎的Python程式語言來開發製作電玩遊戲程式,本書內容針對初學者所設計,就算沒有編寫過程式的讀者也能輕鬆學習!

    Collecting
    US$14.30
    「Python好好玩|趣學電玩遊戲程式設計」這本書會教您怎麼利用廣受歡迎的Python程式語言來開發製作電玩遊戲程式,本書內容針對初學者所設計,就算沒有編寫過程式的讀者也能輕鬆學習!

    本書一開始會從幾個經典的遊戲程式,例如猜單字的Hangman、猜數字和井字棋等範例起步,然後再教您提升到更多進階深入的遊戲程式,例如文字模式的尋寶遊戲和帶有音效的動畫碰撞閃避遊戲。沿著這條學習路徑,您將學到最關鍵必備的程式設計知識,以及基礎實用的數學概念,這些技能會帶領您將遊戲程式設計的能力提升到更高的層次。

    在本書中,您將學到:
    ‧把迴圈、變數和流程控制陳述句等技巧整合應用到現實的程式設計工作中
    ‧正確理解和選用串列、字典和元組等資料結構
    ‧利用pygame模組把圖像和動畫加到遊戲程式中
    ‧處理鍵盤和滑鼠的輸入
    ‧設計簡易的人工智慧(AI),在遊戲中讓電腦自己對戰
    ‧活用密碼學把文字訊息轉換成密文
    ‧程式偵錯及找出一般常見的錯誤

    經過本書每個範例的學習和實作,您就能擁有強固的Python程式設計基礎,並能理解和掌握電腦的基本運作。

    接下您會利用強大的Python製作什麼新穎好玩的遊戲呢?

    Content

    • 1-1
      封面頁
    • 1-2
      書名頁
    • 1-3
      作者簡介
    • 1-4
      技術審校者簡介
    • 1-5
      致謝
    • 1-6
      目錄
    • 1-7
      簡介
    • 1-8
      本書的適用對象
    • 1-9
      本書簡介
    • 1-10
      如何使用本書
    • 1-11
      行號和縮排
    • 1-12
      長度很長的程式碼行
    • 1-13
      下載與安裝Python
    • 1-14
      啟動IDLE
    • 1-15
      找尋線上的輔助說明
    • 1-16
      CH01 互動式Shell
    • 1-17
      一些簡單的數學
    • 1-18
      整數和浮點數
    • 1-19
      表示式
    • 1-20
      表示式運算求解
    • 1-21
      語法錯誤
    • 1-22
      把值存放到變數中
    • 1-23
      總結
    • 1-24
      CH02 編寫程式
    • 1-25
      字串
    • 1-26
      字串連接
    • 1-27
      在IDLE 的File Editor 中編寫程式
    • 1-28
      製作Hell World 程式
    • 1-29
      儲存程式
    • 1-30
      執行程式
    • 1-31
      Hello World 這支程式的運作原理
    • 1-32
      注釋
    • 1-33
      函式:在程式中的小程式
    • 1-34
      程式的結束
    • 1-35
      變數的取名
    • 1-36
      總結
    • 1-37
      CH03 猜數字
    • 1-38
      猜數字遊戲的執行範例
    • 1-39
      猜數字遊戲的原始程式碼
    • 1-40
      匯入random 模組
    • 1-41
      使用random.randint()函式來產生隨機數字
    • 1-42
      歡迎玩家的文字提示
    • 1-43
      流程控制陳述句
    • 1-44
      使用迴圈來重複某些程式碼
    • 1-45
      組成區塊
    • 1-46
      陳述句隨著迴圈重複執行
    • 1-47
      取得玩家所猜的數字
    • 1-48
      利用int()、float()和str()函式來轉換值
    • 1-49
      布林資料型別
    • 1-50
      比較運算子
    • 1-51
      依條件檢查結果是True 或False
    • 1-52
      體驗一下布林、比較運算子和條件的運用
    • 1-53
      =和==的不同
    • 1-54
      if 陳述句
    • 1-55
      利用break 陳述句提早跳出迴圈
    • 1-56
      檢查玩家是否獲勝
    • 1-57
      檢查玩家是否輸了
    • 1-58
      總結
    • 1-59
      CH04 腦筋急轉彎
    • 1-60
      腦筋急轉彎程式的執行範例
    • 1-61
      腦筋急轉彎程式的原始程式碼
    • 1-62
      程式的運作原理
    • 1-63
      轉義字元
    • 1-64
      單引號和雙引號
    • 1-65
      print()函式和關鍵字參數
    • 1-66
      總結
    • 1-67
      CH05 龍域(Dragon Realm)
    • 1-68
      怎麼玩龍域
    • 1-69
      龍域的執行範例
    • 1-70
      龍域遊戲的流程圖
    • 1-71
      龍域的原始程式碼
    • 1-72
      匯入random 和time 模組
    • 1-73
      龍域中的函式
    • 1-74
      def 陳述句
    • 1-75
      呼叫函式
    • 1-76
      在哪裡放置函式的定義
    • 1-77
      多行字串
    • 1-78
      如何使用while 陳述句來進行迴圈
    • 1-79
      布林運算子
    • 1-80
      and 運算子
    • 1-81
      or 運算子
    • 1-82
      not 運算子
    • 1-83
      布林運算子的運算求解
    • 1-84
      返回值
    • 1-85
      全域和區域作用範疇
    • 1-86
      函式參數
    • 1-87
      顯示遊戲的結果
    • 1-88
      決定哪個洞穴放入善龍
    • 1-89
      遊戲迴圈
    • 1-90
      呼叫程式中定義的函式
    • 1-91
      詢問是否要再玩一次
    • 1-92
      總結
    • 1-93
      CH06 使用Debugger
    • 1-94
      Bug 的類型
    • 1-95
      Debugger
    • 1-96
      啟動Debugger
    • 1-97
      利用Debugger 逐步執行程式
    • 1-98
      找出Bug
    • 1-99
      設定中斷點
    • 1-100
      使用中斷點
    • 1-101
      總結
    • 1-102
      CH07 使用流程圖設計Hangman 遊戲
    • 1-103
      Hangman 遊戲怎麼玩
    • 1-104
      Hangman 遊戲程式的執行示範畫面
    • 1-105
      ASCII 文字畫
    • 1-106
      使用流程圖來設計一支程式
    • 1-107
      製作流程圖
    • 1-108
      流程圖的分支
    • 1-109
      結束或重玩
    • 1-110
      再猜一次
    • 1-111
      對玩家提供回應反饋
    • 1-112
      總結
    • 1-113
      CH08 編寫Hangman 猜單字遊戲的程式碼
    • 1-114
      Hangman 猜單字遊戲的原始程式碼
    • 1-115
      匯入random 模組
    • 1-116
      常數
    • 1-117
      串列資料型別
    • 1-118
      以索引足標存取項目
    • 1-119
      串列的連接
    • 1-120
      in 運算子
    • 1-121
      呼叫方法
    • 1-122
      reverse() 和append() 方法
    • 1-123
      split() 字串方法
    • 1-124
      從單字串列中取得讓玩家猜測的神秘單字
    • 1-125
      顯示遊戲畫板
    • 1-126
      list() 和range() 函式
    • 1-127
      串列與字串的分割切片
    • 1-128
      以空白加底線來顯示要猜測的神秘單字
    • 1-129
      取得玩家猜測的字元
    • 1-130
      lower()和upper()字串方法
    • 1-131
      離開while 迴圈
    • 1-132
      elif 陳述句
    • 1-133
      確定玩家輸入的是合法的值
    • 1-134
      詢問玩家要不要再玩一次
    • 1-135
      回顧Hangman 程式中的函式
    • 1-136
      遊戲迴圈
    • 1-137
      呼叫displayBoard() 函式
    • 1-138
      讓玩家輸入猜測的字母
    • 1-139
      檢查比對字母是否有在神秘單字中
    • 1-140
      檢查玩家贏了沒
    • 1-141
      處理猜錯的情況
    • 1-142
      檢查玩家輸了沒
    • 1-143
      結束和重設遊戲
    • 1-144
      總結
    • 1-145
      CH09 擴充Hangman 猜單字遊戲
    • 1-146
      增加更多猜單字的次數
    • 1-147
      字典資料型別
    • 1-148
      利用len() 算出字典的大小
    • 1-149
      字典與串列有何不同
    • 1-150
      keys()和values()字典方法
    • 1-151
      Hangman 程式中的單字使用字典型別
    • 1-152
      從串列中隨機選擇
    • 1-153
      刪除串列中的項目
    • 1-154
      多重指定
    • 1-155
      對玩家顯示要猜單字的種類
    • 1-156
      總結
    • 1-157
      CH10 井字棋遊戲程式
    • 1-158
      井字棋的執行範例
    • 1-159
      井字棋遊戲的原始程式碼
    • 1-160
      程式的規劃與設計
    • 1-161
      用來表示遊戲棋盤的資料
    • 1-162
      制訂遊戲AI
    • 1-163
      匯入random 模組
    • 1-164
      在螢幕上印出遊戲棋盤
    • 1-165
      讓玩家選擇X 或O
    • 1-166
      決定誰先下第一步
    • 1-167
      在井字棋盤中標上OX
    • 1-168
      串列參照
    • 1-169
      在makeMove()中使用串列參照
    • 1-170
      檢查玩家贏了沒
    • 1-171
      複製井字棋盤的資料
    • 1-172
      檢查井字棋盤中位置是否為空白
    • 1-173
      讓玩家輸入要下OX 的位置
    • 1-174
      短路運算求值
    • 1-175
      選擇下OX 位置
    • 1-176
      None 值
    • 1-177
      製作電腦的AI
    • 1-178
      先判斷有沒有下下去就會贏的位置
    • 1-179
      檢查玩家下到哪個位置會獲勝
    • 1-180
      依序檢查角落、中心和邊上的位置
    • 1-181
      檢查井字棋棋盤是否已填滿
    • 1-182
      遊戲迴圈
    • 1-183
      決定玩家的OX 字母和誰先走第一步
    • 1-184
      輪到玩家下OX
    • 1-185
      輪到電腦下OX
    • 1-186
      詢問玩家是否要再玩一次
    • 1-187
      總結
    • 1-188
      CH11 Bagels 推理遊戲
    • 1-189
      Bagels 程式的執行範例
    • 1-190
      Bagels 遊戲的原始程式碼
    • 1-191
      Bagels 遊戲的流程圖
    • 1-192
      匯入random 和定義getSecretNum()
    • 1-193
      對一組唯一數進行洗牌
    • 1-194
      利用random.shuffle() 對串列中的項目重新安排順序
    • 1-195
      從洗牌後的數字中取出神秘數字
    • 1-196
      擴充指定運算子
    • 1-197
      計算要給玩家的提示
    • 1-198
      sort()字串方法
    • 1-199
      join()字串方法
    • 1-200
      檢查字串中是否只有數字
    • 1-201
      遊戲起始
    • 1-202
      字串插值
    • 1-203
      遊戲迴圈
    • 1-204
      取得玩家所猜的數字
    • 1-205
      對玩家所猜的數字提供提示
    • 1-206
      檢查玩家是贏還是輸
    • 1-207
      詢問玩家要不要再玩一次
    • 1-208
      總結
    • 1-209
      CH12 笛卡兒座標系統
    • 1-210
      格線與笛卡兒座標
    • 1-211
      負數
    • 1-212
      電腦螢幕的座標系統
    • 1-213
      數學的技巧
    • 1-214
      技巧1:負號吃掉它左側的加號
    • 1-215
      技巧2:兩個負號組合成加號
    • 1-216
      技巧3:兩個相加的數字可以交換位置
    • 1-217
      絕對值和abs()函式
    • 1-218
      總結
    • 1-219
      CH13 聲納尋寶遊戲
    • 1-220
      聲納尋寶遊戲的執行範例畫面
    • 1-221
      聲納尋寶遊戲的原始程式碼
    • 1-222
      設計程式
    • 1-223
      匯入random、sys 和math 模組
    • 1-224
      建立新的遊戲畫板
    • 1-225
      畫出遊戲畫板
    • 1-226
      在畫板最上方畫出x 座標軸
    • 1-227
      繪製海洋文字畫
    • 1-228
      印出每列的海洋波浪
    • 1-229
      在畫板最底端畫上x 軸座標
    • 1-230
      建立隨機的寶箱
    • 1-231
      判斷投放聲納的座標位置是否合法
    • 1-232
      在畫板上放置聲納裝置
    • 1-233
      找出最接近的寶箱
    • 1-234
      利用remove() 串列方法移除串列中的值
    • 1-235
      取得玩家的輸入
    • 1-236
      對玩家印出遊戲的說明指示
    • 1-237
      遊戲迴圈
    • 1-238
      顯示玩家的遊戲狀態
    • 1-239
      處理玩家的聲納投放
    • 1-240
      找到沉沒的寶箱
    • 1-241
      檢查玩家是否獲勝了
    • 1-242
      檢查玩家是否輸了
    • 1-243
      使用sys.exit() 函式結束程式
    • 1-244
      總結
    • 1-245
      CH14 凱撒密碼(Caesar Cipher)
    • 1-246
      密碼學與密碼
    • 1-247
      凱撒密碼的運作原理
    • 1-248
      凱撒密碼程式的執行範例
    • 1-249
      凱撒密碼的原始程式碼
    • 1-250
      設定最大密鑰(key)長度
    • 1-251
      決定要加密或解密
    • 1-252
      從玩家取得訊息文字
    • 1-253
      從玩家取得密鑰
    • 1-254
      對訊息文字加密或解密
    • 1-255
      利用find() 字串方法尋找傳入的字串
    • 1-256
      對每個字母進行加密或解密處理
    • 1-257
      程式的開始
    • 1-258
      蠻力破解技術
    • 1-259
      新增蠻力破解模式
    • 1-260
      總結
    • 1-261
      CH15 黑白棋
    • 1-262
      黑白棋怎麼玩
    • 1-263
      黑白棋遊戲的執行範例
    • 1-264
      黑白棋遊戲的原始程式碼
    • 1-265
      匯入模組與設定常數
    • 1-266
      遊戲棋盤的資料結構
    • 1-267
      在畫面上繪製棋盤資料結構
    • 1-268
      建立全新的棋盤資料結構
    • 1-269
      檢查下棋落子的位置是否合法
    • 1-270
      檢查8 個方向的每一個方向
    • 1-271
      找出是否還有棋子可反轉
    • 1-272
      檢查是否為合法的座標
    • 1-273
      取得所有下棋落子合法座標的串列
    • 1-274
      呼叫bool() 函式
    • 1-275
      計算黑白棋棋盤的分數
    • 1-276
      取得玩家所選的棋子
    • 1-277
      決定誰要先下
    • 1-278
      在棋盤上放入棋子
    • 1-279
      複製棋盤資料結構
    • 1-280
      判斷位置是否在角落
    • 1-281
      取得玩家想要落子下棋的位置
    • 1-282
      取得電腦想要落子下棋的座標位置
    • 1-283
      策略性先選角落位置來下棋
    • 1-284
      取得最高分的落子下棋座標位置
    • 1-285
      把分數印在畫面上
    • 1-286
      遊戲起始
    • 1-287
      檢查是否為僵局
    • 1-288
      輪到玩家下棋
    • 1-289
      輪到電腦下棋
    • 1-290
      遊戲迴圈
    • 1-291
      詢問要不要再玩一次
    • 1-292
      總結
    • 1-293
      CH16 黑白棋人工智慧模擬
    • 1-294
      讓電腦和自己對戰
    • 1-295
      模擬1 的執行範例
    • 1-296
      模擬1 的原始程式碼
    • 1-297
      移除玩家相關的顯示並新增一個電腦玩家
    • 1-298
      讓電腦自己對戰多次並求出勝率
    • 1-299
      模擬2 的執行範例
    • 1-300
      模擬2 的原始程式碼
    • 1-301
      追蹤多個棋局
    • 1-302
      注釋掉print() 函式的呼叫
    • 1-303
      使用比率(百分比)來評比AI 的成效
    • 1-304
      不同AI 演算法的比較
    • 1-305
      模擬3 的原始程式碼
    • 1-306
      在模擬3 中的AI 是怎麼運作的
    • 1-307
      各個AI 的相互對戰
    • 1-308
      總結
    • 1-309
      CH17 繪製圖案
    • 1-310
      安裝pygame
    • 1-311
      在pygame 中的Hello World 程式
    • 1-312
      pygame Hello World 程式的執行範例
    • 1-313
      pygame Hello World 的原始程式碼
    • 1-314
      匯入pygame 模組
    • 1-315
      初始化pygame
    • 1-316
      設定pygame 視窗
    • 1-317
      多元組
    • 1-318
      Surface 物件
    • 1-319
      設定色彩變數
    • 1-320
      在pygame 視窗中寫入文字
    • 1-321
      利用字型來格式化文字
    • 1-322
      彩現Font 物件
    • 1-323
      使用Rect 屬性設定文字位置
    • 1-324
      對Surface 物件填滿色彩
    • 1-325
      pygame 的繪圖功能
    • 1-326
      繪製多邊形
    • 1-327
      繪製線條
    • 1-328
      繪製圓圈
    • 1-329
      繪製橢圓
    • 1-330
      繪製矩形
    • 1-331
      以像素為單位著色
    • 1-332
      Surface 物件的blit()方法
    • 1-333
      繪製Surface 物件到螢幕上
    • 1-334
      事件與遊戲迴圈
    • 1-335
      取得事件物件
    • 1-336
      結束程式
    • 1-337
      總結
    • 1-338
      CH18 動畫
    • 1-339
      動畫程式執行範例
    • 1-340
      動畫程式的原始程式碼
    • 1-341
      方框的移動與反彈
    • 1-342
      設定常數變數
    • 1-343
      存放方向的常數變數
    • 1-344
      存放色彩的常數變數
    • 1-345
      設定方框資料結構
    • 1-346
      遊戲迴圈
    • 1-347
      當玩家要結束時的處理
    • 1-348
      每個方框的移動
    • 1-349
      反彈方框
    • 1-350
      在視窗新的位置繪製方框
    • 1-351
      在螢幕上繪製視窗
    • 1-352
      總結
    • 1-353
      CH19 碰撞偵測
    • 1-354
      碰撞偵測程式的執行範例
    • 1-355
      碰撞偵測的原始程式碼
    • 1-356
      匯入模組
    • 1-357
      使用時鐘調慢程式的執行
    • 1-358
      設定視窗和資料結構
    • 1-359
      設定變數來追蹤記錄移動
    • 1-360
      事件的處理
    • 1-361
      處理KEYDOWN 事件
    • 1-362
      處理KEYUP 事件
    • 1-363
      玩家方框的瞬移閃現
    • 1-364
      加入新的食物小方框
    • 1-365
      玩家在視窗中移動方框
    • 1-366
      在視窗上繪製玩家方框
    • 1-367
      碰撞檢測
    • 1-368
      在視窗上繪製食物小方框
    • 1-369
      總結
    • 1-370
      CH20 使用聲音和影像
    • 1-371
      新增遊戲角色精靈的影像圖片
    • 1-372
      音效和影像圖檔
    • 1-373
      角色精靈影像和音效程式的執行範例
    • 1-374
      角色精靈影像和音效遊戲的原始程式碼
    • 1-375
      設定視窗與資料結構
    • 1-376
      新增角色精靈
    • 1-377
      改變角色精靈的大小
    • 1-378
      設定音樂和音效
    • 1-379
      加入音效檔
    • 1-380
      切換聲音的開與關
    • 1-381
      將玩家繪製在視窗上
    • 1-382
      偵測是否有碰撞
    • 1-383
      繪製櫻桃到視窗上
    • 1-384
      總結
    • 1-385
      CH21 使用了聲音和影像的Dodger 遊戲
    • 1-386
      複習基本的pygame 資料型別
    • 1-387
      Dodger 程式的執行範例
    • 1-388
      Dodger 遊戲的原始程式碼
    • 1-389
      匯入模組
    • 1-390
      設定常數
    • 1-391
      定義函式
    • 1-392
      結束和暫停遊戲
    • 1-393
      追蹤記錄壞蛋的碰撞
    • 1-394
      繪製文字到視窗中
    • 1-395
      初始化pygame 和設定視窗
    • 1-396
      設定字型、聲音和影像物件
    • 1-397
      顯示起始畫面
    • 1-398
      開始遊戲
    • 1-399
      遊戲迴圈
    • 1-400
      處理鍵盤事件
    • 1-401
      處理滑鼠的移動
    • 1-402
      新增壞蛋
    • 1-403
      移動玩家角色和壞蛋圖像
    • 1-404
      實作作弊模式
    • 1-405
      刪除壞蛋
    • 1-406
      繪製視窗
    • 1-407
      繪製玩家的分數
    • 1-408
      繪製玩家角色和壞蛋圖樣
    • 1-409
      檢查是否有碰撞
    • 1-410
      Game Over 畫面
    • 1-411
      修改Dodger 遊戲
    • 1-412
      總結
    • 1-413
      版權頁
    • 1-414
      封底頁

    FAQ

    您可以透過手機、平板或是電腦登入 HiSKIO 平台,在【我的學習】>【我的書籍】頁面,選擇想看的電子書。

    Recommendations

    Reviews

    | Collecting

    Sales Plans