
0人評分過此書
Python好好玩:趣學電玩遊戲程式設計
「Python好好玩|趣學電玩遊戲程式設計」這本書會教您怎麼利用廣受歡迎的Python程式語言來開發製作電玩遊戲程式,本書內容針對初學者所設計,就算沒有編寫過程式的讀者也能輕鬆學習! 本書一開始會從幾個經典的遊戲程式,例如猜單字的Hangman、猜數字和井字棋等範例起步,然後再教您提升到更多進階深入的遊戲程式,例如文字模式的尋寶遊戲和帶有音效的動畫碰撞閃避遊戲。沿著這條學習路徑,您將學到最關鍵必備的程式設計知識,以及基礎實用的數學概念,這些技能會帶領您將遊戲程式設計的能力提升到更高的層次。 在本書中,您將學到: ‧把迴圈、變數和流程控制陳述句等技巧整合應用到現實的程式設計工作中 ‧正確理解和選用串列、字典和元組等資料結構 ‧利用pygame模組把圖像和動畫加到遊戲程式中 ‧處理鍵盤和滑鼠的輸入 ‧設計簡易的人工智慧(AI),在遊戲中讓電腦自己對戰 ‧活用密碼學把文字訊息轉換成密文 ‧程式偵錯及找出一般常見的錯誤經過本書每個範例的學習和實作,您就能擁有強固的Python程式設計基礎,並能理解和掌握電腦的基本運作。 接下您會利用強大的Python製作什麼新穎好玩的遊戲呢?
-
簡介
-
本書的適用對象
-
本書簡介
-
如何使用本書
-
行號和縮排
-
長度很長的程式碼行
-
-
下載與安裝Python
-
啟動IDLE
-
找尋線上的輔助說明
-
-
第1章 互動式Shell
-
一些簡單的數學
-
整數和浮點數
-
表示式
-
-
表示式運算求解
-
語法錯誤
-
把值存放到變數中
-
總結
-
-
第2章 編寫程式
-
字串
-
字串連接
-
在IDLE的FileEditor中編寫程式
-
製作HellWorld程式
-
儲存程式
-
執行程式
-
-
HelloWorld這支程式的運作原理
-
注釋
-
函式:在程式中的小程式
-
程式的結束
-
-
變數的取名
-
總結
-
-
第3章 猜數字
-
猜數字遊戲的執行範例
-
猜數字遊戲的原始程式碼
-
匯入random模組
-
使用random.randint()函式來產生隨機數字
-
歡迎玩家的文字提示
-
流程控制陳述句
-
使用迴圈來重複某些程式碼
-
組成區塊
-
陳述句隨著迴圈重複執行
-
-
取得玩家所猜的數字
-
利用int()、float()和str()函式來轉換值
-
布林資料型別
-
比較運算子
-
依條件檢查結果是True或False
-
體驗一下布林、比較運算子和條件的運用
-
=和==的不同
-
-
if陳述句
-
利用break陳述句提早跳出迴圈
-
檢查玩家是否獲勝
-
檢查玩家是否輸了
-
總結
-
-
第4章 腦筋急轉彎
-
腦筋急轉彎程式的執行範例
-
腦筋急轉彎程式的原始程式碼
-
程式的運作原理
-
轉義字元
-
單引號和雙引號
-
print()函式和關鍵字參數
-
總結
-
-
第5章 龍域(DragonRealm)
-
怎麼玩龍域
-
龍域的執行範例
-
龍域遊戲的流程圖
-
龍域的原始程式碼
-
匯入random和time模組
-
龍域中的函式
-
def陳述句
-
呼叫函式
-
在哪裡放置函式的定義
-
-
多行字串
-
如何使用while陳述句來進行迴圈
-
布林運算子
-
and運算子
-
or運算子
-
not運算子
-
布林運算子的運算求解
-
-
返回值
-
全域和區域作用範疇
-
函式參數
-
顯示遊戲的結果
-
決定哪個洞穴放入善龍
-
遊戲迴圈
-
呼叫程式中定義的函式
-
詢問是否要再玩一次
-
-
總結
-
-
第6章 使用Debugger
-
Bug的類型
-
Debugger
-
啟動Debugger
-
利用Debugger逐步執行程式
-
-
找出Bug
-
設定中斷點
-
使用中斷點
-
總結
-
-
第7章 使用流程圖設計Hangman遊戲
-
Hangman遊戲怎麼玩
-
Hangman遊戲程式的執行示範畫面
-
ASCII文字畫
-
使用流程圖來設計一支程式
-
製作流程圖
-
流程圖的分支
-
結束或重玩
-
再猜一次
-
對玩家提供回應反饋
-
-
總結
-
-
第8章 編寫Hangman猜單字遊戲的程式碼
-
Hangman猜單字遊戲的原始程式碼
-
匯入random模組
-
常數
-
串列資料型別
-
以索引足標存取項目
-
串列的連接
-
in運算子
-
-
呼叫方法
-
reverse()和append()方法
-
split()字串方法
-
-
從單字串列中取得讓玩家猜測的神秘單字
-
顯示遊戲畫板
-
list()和range()函式
-
串列與字串的分割切片
-
以空白加底線來顯示要猜測的神秘單字
-
-
取得玩家猜測的字元
-
lower()和upper()字串方法
-
離開while迴圈
-
-
elif陳述句
-
確定玩家輸入的是合法的值
-
詢問玩家要不要再玩一次
-
回顧Hangman程式中的函式
-
遊戲迴圈
-
呼叫displayBoard()函式
-
讓玩家輸入猜測的字母
-
檢查比對字母是否有在神秘單字中
-
檢查玩家贏了沒
-
處理猜錯的情況
-
檢查玩家輸了沒
-
結束和重設遊戲
-
-
總結
-
-
第9章 擴充Hangman猜單字遊戲
-
增加更多猜單字的次數
-
字典資料型別
-
利用len()算出字典的大小
-
字典與串列有何不同
-
keys()和values()字典方法
-
Hangman程式中的單字使用字典型別
-
-
從串列中隨機選擇
-
刪除串列中的項目
-
多重指定
-
對玩家顯示要猜單字的種類
-
總結
-
-
第10章 井字棋遊戲程式
-
井字棋的執行範例
-
井字棋遊戲的原始程式碼
-
程式的規劃與設計
-
用來表示遊戲棋盤的資料
-
制訂遊戲AI
-
-
匯入random模組
-
在螢幕上印出遊戲棋盤
-
讓玩家選擇X或O
-
決定誰先下第一步
-
在井字棋盤中標上OX
-
串列參照
-
在makeMove()中使用串列參照
-
-
檢查玩家贏了沒
-
複製井字棋盤的資料
-
檢查井字棋盤中位置是否為空白
-
讓玩家輸入要下OX的位置
-
短路運算求值
-
選擇下OX位置
-
None值
-
製作電腦的AI
-
先判斷有沒有下下去就會贏的位置
-
檢查玩家下到哪個位置會獲勝
-
依序檢查角落、中心和邊上的位置
-
檢查井字棋棋盤是否已填滿
-
-
遊戲迴圈
-
決定玩家的OX字母和誰先走第一步
-
輪到玩家下OX
-
輪到電腦下OX
-
詢問玩家是否要再玩一次
-
-
總結
-
-
第11章 Bagels推理遊戲
-
Bagels程式的執行範例
-
Bagels遊戲的原始程式碼
-
Bagels遊戲的流程圖
-
匯入random和定義getSecretNum()
-
對一組唯一數進行洗牌
-
利用random.shuffle()對串列中的項目重新安排順序
-
從洗牌後的數字中取出神秘數字
-
-
擴充指定運算子
-
計算要給玩家的提示
-
sort()字串方法
-
join()字串方法
-
檢查字串中是否只有數字
-
遊戲起始
-
字串插值
-
遊戲迴圈
-
取得玩家所猜的數字
-
對玩家所猜的數字提供提示
-
檢查玩家是贏還是輸
-
詢問玩家要不要再玩一次
-
-
總結
-
-
第12章 笛卡兒座標系統
-
格線與笛卡兒座標
-
負數
-
電腦螢幕的座標系統
-
數學的技巧
-
技巧1:負號吃掉它左側的加號
-
技巧2:兩個負號組合成加號
-
技巧3:兩個相加的數字可以交換位置
-
-
絕對值和abs()函式
-
總結
-
-
第13章 聲納尋寶遊戲
-
聲納尋寶遊戲的執行範例畫面
-
聲納尋寶遊戲的原始程式碼
-
設計程式
-
匯入random、sys和math模組
-
建立新的遊戲畫板
-
畫出遊戲畫板
-
在畫板最上方畫出x座標軸
-
繪製海洋文字畫
-
印出每列的海洋波浪
-
在畫板最底端畫上x軸座標
-
-
建立隨機的寶箱
-
判斷投放聲納的座標位置是否合法
-
在畫板上放置聲納裝置
-
找出最接近的寶箱
-
利用remove()串列方法移除串列中的值
-
取得玩家的輸入
-
-
對玩家印出遊戲的說明指示
-
遊戲迴圈
-
顯示玩家的遊戲狀態
-
處理玩家的聲納投放
-
找到沉沒的寶箱
-
檢查玩家是否獲勝了
-
檢查玩家是否輸了
-
使用sys.exit()函式結束程式
-
-
總結
-
-
第14章 凱撒密碼(CaesarCipher)
-
密碼學與密碼
-
凱撒密碼的運作原理
-
凱撒密碼程式的執行範例
-
凱撒密碼的原始程式碼
-
設定最大密鑰(key)長度
-
決定要加密或解密
-
從玩家取得訊息文字
-
從玩家取得密鑰
-
對訊息文字加密或解密
-
利用find()字串方法尋找傳入的字串
-
對每個字母進行加密或解密處理
-
-
程式的開始
-
蠻力破解技術
-
新增蠻力破解模式
-
總結
-
-
第15章 黑白棋
-
黑白棋怎麼玩
-
黑白棋遊戲的執行範例
-
黑白棋遊戲的原始程式碼
-
匯入模組與設定常數
-
遊戲棋盤的資料結構
-
在畫面上繪製棋盤資料結構
-
建立全新的棋盤資料結構
-
-
檢查下棋落子的位置是否合法
-
檢查8個方向的每一個方向
-
找出是否還有棋子可反轉
-
-
檢查是否為合法的座標
-
取得所有下棋落子合法座標的串列
-
呼叫bool()函式
-
-
計算黑白棋棋盤的分數
-
取得玩家所選的棋子
-
決定誰要先下
-
在棋盤上放入棋子
-
複製棋盤資料結構
-
判斷位置是否在角落
-
取得玩家想要落子下棋的位置
-
取得電腦想要落子下棋的座標位置
-
策略性先選角落位置來下棋
-
取得最高分的落子下棋座標位置
-
-
把分數印在畫面上
-
遊戲起始
-
檢查是否為僵局
-
輪到玩家下棋
-
輪到電腦下棋
-
-
遊戲迴圈
-
詢問要不要再玩一次
-
總結
-
-
第16章 黑白棋人工智慧模擬
-
讓電腦和自己對戰
-
模擬1的執行範例
-
模擬1的原始程式碼
-
移除玩家相關的顯示並新增一個電腦玩家
-
-
讓電腦自己對戰多次並求出勝率
-
模擬2的執行範例
-
模擬2的原始程式碼
-
追蹤多個棋局
-
注釋掉print()函式的呼叫
-
使用比率(百分比)來評比AI的成效
-
-
不同AI演算法的比較
-
模擬3的原始程式碼
-
在模擬3中的AI是怎麼運作的
-
各個AI的相互對戰
-
-
總結
-
-
第17章 繪製圖案
-
安裝pygame
-
在pygame中的HelloWorld程式
-
pygameHelloWorld程式的執行範例
-
pygameHelloWorld的原始程式碼
-
匯入pygame模組
-
初始化pygame
-
設定pygame視窗
-
多元組
-
Surface物件
-
-
設定色彩變數
-
在pygame視窗中寫入文字
-
利用字型來格式化文字
-
彩現Font物件
-
使用Rect屬性設定文字位置
-
-
對Surface物件填滿色彩
-
pygame的繪圖功能
-
繪製多邊形
-
繪製線條
-
繪製圓圈
-
繪製橢圓
-
繪製矩形
-
以像素為單位著色
-
-
Surface物件的blit()方法
-
繪製Surface物件到螢幕上
-
事件與遊戲迴圈
-
取得事件物件
-
結束程式
-
-
總結
-
-
第18章 動畫
-
動畫程式執行範例
-
動畫程式的原始程式碼
-
方框的移動與反彈
-
設定常數變數
-
存放方向的常數變數
-
存放色彩的常數變數
-
-
設定方框資料結構
-
遊戲迴圈
-
當玩家要結束時的處理
-
每個方框的移動
-
反彈方框
-
在視窗新的位置繪製方框
-
在螢幕上繪製視窗
-
-
總結
-
-
第19章 碰撞偵測
-
碰撞偵測程式的執行範例
-
碰撞偵測的原始程式碼
-
匯入模組
-
使用時鐘調慢程式的執行
-
設定視窗和資料結構
-
設定變數來追蹤記錄移動
-
事件的處理
-
處理KEYDOWN事件
-
處理KEYUP事件
-
-
玩家方框的瞬移閃現
-
加入新的食物小方框
-
玩家在視窗中移動方框
-
在視窗上繪製玩家方框
-
碰撞檢測
-
-
在視窗上繪製食物小方框
-
總結
-
-
第20章 使用聲音和影像
-
新增遊戲角色精靈的影像圖片
-
音效和影像圖檔
-
角色精靈影像和音效程式的執行範例
-
角色精靈影像和音效遊戲的原始程式碼
-
設定視窗與資料結構
-
新增角色精靈
-
改變角色精靈的大小
-
-
設定音樂和音效
-
加入音效檔
-
切換聲音的開與關
-
-
將玩家繪製在視窗上
-
偵測是否有碰撞
-
繪製櫻桃到視窗上
-
總結
-
-
第21章 使用了聲音和影像的Dodger遊戲
-
複習基本的pygame資料型別
-
Dodger程式的執行範例
-
Dodger遊戲的原始程式碼
-
匯入模組
-
設定常數
-
定義函式
-
結束和暫停遊戲
-
追蹤記錄壞蛋的碰撞
-
繪製文字到視窗中
-
-
初始化pygame和設定視窗
-
設定字型、聲音和影像物件
-
顯示起始畫面
-
開始遊戲
-
遊戲迴圈
-
處理鍵盤事件
-
處理滑鼠的移動
-
-
新增壞蛋
-
移動玩家角色和壞蛋圖像
-
實作作弊模式
-
刪除壞蛋
-
繪製視窗
-
繪製玩家的分數
-
繪製玩家角色和壞蛋圖樣
-
-
檢查是否有碰撞
-
GameOver畫面
-
修改Dodger遊戲
-
總結
-
- 出版地 : 臺灣
- 語言 : 繁體中文
評分與評論
請登入後再留言與評分