Python游戲編程快速上手(第4版)
1 交互式Shell
1.1 一些簡單的數學知識
1.1.1 整數和浮點數
1.1.2 表達式
1.2 計算表達式
1.3 語法錯誤
1.4 在變量中存儲值
1.5 小結
2 編寫程序
2.1 字符串值
2.2 連接字符串
2.3 在IDLE的文件編輯器中編寫程序
2.3.1 創建Hello World程序
2.3.2 保存程序
2.3.3 運行程序
2.4 Hello World程序如何工作
2.4.1 注釋
2.4.2 函數:程序中的小程序
2.4.3 終止程序
2.5 命名變量
2.6 小結
3 “猜數字”游戲
3.1 “猜數字”的運行示例
3.2 “猜數字”程序的源代碼
3.3 導入random模塊
3.4 用random.randint()函數生成隨機數
3.5 歡迎玩家
3.6 流程控制語句
3.6.1 使用循環來重復代碼
3.6.2 組織語句塊
3.6.3 for循環語句
3.7 玩家的猜測
3.8 使用int()函數、float()函數、str()函數和bool()函數來轉換值
3.9 布爾數據類型
3.9.1 比較操作符
3.9.2 用條件檢查True或False
3.9.3 體驗布爾值、比較操作符和條件
3.9.4 =和==的區別
3.10 if語句
3.11 用break語句提早離開循環
3.12 判斷玩家是否贏了
3.13 判斷玩家是否輸了
3.14 小結
4 一個講笑話程序
4.1 Jokes游戲的運行示例
4.2 Jokes游戲的源代碼
4.3 代碼如何工作
4.4 轉義字符
4.5 單引號和雙引號
4.6 print()的end關鍵字形參
4.7 小結
5 Dragon Realm
5.1 如何玩Dragon Realm
5.2 Dragon Realm的運行示例
5.3 Dragon Realm的流程圖
5.4 Dragon Realm的源代碼
5.5 導入random和time模塊
5.6 Dragon Realm中的函數
5.6.1 def語句
5.6.2 調用函數
5.6.3 把函數定義放在哪里
5.7 多行字符串
5.8 while語句實現循環
5.9 布爾操作符
5.9.1 and操作符
5.9.2 or操作符
5.9.3 not操作符
5.9.4 布爾操作符的運算
5.10 返回值
5.11 全局作用域和局部作用域
5.12 函數形參
5.13 顯示游戲結果
5.14 決定哪個山洞有友善的龍
5.15 游戲循環
5.15.1 在程序中調用函數
5.15.2 詢問玩家要不要再玩一局
5.16 小結
6 使用調試器
6.1 Bug的類型
6.2 調試器
6.2.1 啟動調試器
6.2.2 用調試器單步執行程序
6.3 查找Bug
6.4 設置斷點
6.5 使用斷點
6.6 小結
7 用流程圖設計Hangman
7.1 如何玩Hangman
7.2 Hangman的運行示例
7.3 ASCII字符圖
7.4 用流程圖來設計一個程序
7.4.1 生成流程圖
7.4.2 流程圖的分支
7.4.3 結束或者重新開始游戲
7.4.4 再猜一次
7.4.5 為玩家提供反饋
7.5 小結
8 編寫Hangman的代碼
8.1 Hangman的源代碼
8.2 導入random模塊
8.3 常量
8.4 列表數據類型
8.4.1 用索引訪問元素
8.4.2 列表連接
8.4.3 in操作符
8.5 調用方法
8.5.1 列表方法reverse()和append()
8.5.2 字符串方法split()
8.6 從單詞列表中獲取一個神秘單詞
8.7 向玩家顯示游戲板
8.7.1 list()函數和range()函數
8.7.2 列表和字符串分片
8.7.3 用空格表示神秘單詞
8.8 獲取玩家的猜測
8.8.1 字符串方法lower()和upper()
8.8.2 離開while循環
8.9 elif語句
8.10 確保玩家輸入一個有效的猜測
8.11 詢問玩家是否想再玩一局
8.12 回顧Hangman中的函數
8.13 游戲循環
8.13.1 調用displayBoard()函數
8.13.2 讓玩家輸入他們的猜測
8.13.3 判斷字母是否在這個神秘單詞中
8.13.4 判斷玩家是否獲勝
8.13.5 當玩家猜錯時
8.13.6 檢查玩家是否輸了
8.13.7 結束並重新設置游戲
8.14 小結
9 Hangman擴展
9.1 添加更多的猜測機會
9.2 字典數據類型
9.2.1 用len()函數獲取字典的大小
9.2.2 字典和列表的區別
9.2.3 字典方法keys()和values()
9.2.4 在Hangman中使用單詞的字典
9.3 從一個列表中隨機選取
9.4 從列表中刪除項
9.5 多變量賦值
9.6 向玩家顯示單詞的分類
9.7 小結
10 Tic Tac Toe
10.1 Tic Tac Toe的運行示例
10.2 Tic Tac Toe的源代碼
10.3 設計程序
10.3.1 用數據表示游戲板
10.3.2 游戲AI
10.4 導入random模塊
10.5 在屏幕上打印游戲板
10.6 讓玩家來選擇X或O
10.7 決定誰先走
10.8 在游戲板上放置一個標記
10.8.1 列表引用
10.8.2 在makeMove()中使用列表引用
10.9 判斷玩家是否獲勝
10.10 復制游戲板的數據
10.11 判斷游戲板上的格子是否為空
10.12 讓玩家輸入他們的落子
10.13 短路求值
10.14 從落子列表中選擇一個落子
10.15 None值
10.16 創建計算機的AI
10.16.1 計算機判斷自己能否落子即獲勝
10.16.2 計算機判斷玩家是否可以落子即獲勝
10.16.3 依次判斷角、中心和邊
10.16.4 判斷游戲板是否滿了
10.17 游戲循環
10.17.1 決定玩家的符號和誰先走
10.17.2 運行玩家的輪次
10.17.3 運行計算機的輪次
10.17.4 詢問玩家是否再玩一次
10.18 小結
11 推理游戲Bagels
11.1 Bagels的運行示例
11.2 Bagels的源代碼
11.3 Bagels的流程圖
11.4 導入random並定義getSecretNum()
11.5 打亂一組唯一數的順序
11.5.1 用random.shuffle()函數改變列表項的順序
11.5.2 從打亂次序的數中獲取神秘數字
11.6 復合賦值操作符
11.7 計算要給出的線索
11.8 列表方法sort()
11.9 字符串方法join()
11.10 檢查字符串中是否只包含數字
11.11 游戲的開始
11.12 字符串插值
11.13 游戲循環
11.13.1 獲取玩家的猜測
11.13.2 根據玩家的猜測給出線索
11.13.3 判斷玩家的輸贏
11.13.4 詢問玩家是否再玩一局
11.14 小結
12 笛卡爾坐標
12.1 網格和笛卡爾坐標
12.2 負數
12.3 計算機屏幕的坐標系
12.4 數學技巧
12.4.1 技巧1:減號吃掉它左邊的加號
12.4.2 技巧2:兩個減號合並為一個加號
12.4.3 技巧3:加法的可交換性
12.5 絕對值和abs()函數
12.6 小結
13 Sonar Treasure Hunt游戲
13.1 Sonar Treasure Hunt的運行示例
13.2 Sonar Treasure Hunt的源代碼
13.3 設計程序
13.4 導入random、sys和math模塊
13.5 創建一個新的游戲板
13.6 繪制游戲板
13.6.1 在頂部繪制X軸
13.6.2 繪制海洋
13.6.3 打印出海洋中的行
13.6.4 在游戲板底部繪制X軸坐標
13.7 創建隨機的藏寶箱
13.8 判斷一次移動是否有效
13.9 在游戲板上進行一次移動
13.9.1 找到最近的藏寶箱的算法
13.9.2 使用列表方法remove()刪除值
13.9.3 獲取玩家的移動
13.10 為玩家打印出游戲說明
13.11 游戲循環
13.11.1 為玩家顯示游戲的狀態
13.11.2 處理玩家的移動
13.11.3 找到一個沉沒的藏寶箱
13.11.4 判斷玩家是否贏了
13.11.5 判斷玩家是否輸了
13.11.6 用sys.exit()函數終止程序
13.12 小結
14 凱撒密碼
14.1 密碼學和加密
14.2 凱撒密碼簡介
14.3 凱撒密碼的運行示例
14.4 凱撒密碼程序的源代碼
14.5 設置最大鍵長度
14.6 決定加密還是解密
14.7 從玩家處得到消息
14.8 從玩家處得到密鑰
14.9 加密或解密消息
14.9.1 使用字符串方法find()找到所傳遞的字符串
14.9.2 加密或解密每個字母
14.10 程序開始
14.11 暴力破解
14.12 添加暴力破解模式
14.13 小結
15 Reversegam游戲
15.1 如何玩Reversegam
15.2 Reversegam的運行示例
15.3 Reversegam的源代碼
15.4 導入模塊和設置常量
15.5 游戲板數據結構
15.5.1 在屏幕上繪制游戲板數據結構
15.5.2 創建一個新的游戲板數據結構
15.6 判斷一次落子是否有效
15.6.1 查看8個方向中的每一個方向
15.6.2 發現是否有可以反轉的棋子
15.7 判斷有效的坐標
15.7.1 得到所有有效移動的一個列表
15.7.2 調用bool()函數
15.8 計算游戲板的得分
15.9 獲取玩家的棋子選擇
15.10 決定誰先走
15.11 在游戲板上落下一個棋子
15.12 復制游戲板數據結構
15.13 判斷一個格子是否在角落上
15.14 獲取玩家的移動
15.15 獲取計算機的移動
15.15.1 角落移動策略
15.15.2 獲取最高得分的移動的列表
15.16 在屏幕上打印分數
15.17 游戲開始
15.17.1 檢查僵局
15.17.2 運行玩家的輪次
15.17.3 運行計算機的輪次
15.18 游戲循環
15.19 詢問玩家是否再玩一局
15.20 小結
16 Reversegam AI模擬
16.1 讓計算機和自己下棋
16.1.1 模擬程序1的運行示例
16.1.2 模擬程序1的源代碼
16.1.3 刪除玩家提示並添加一個計算機玩家
16.2 讓計算機自己多玩幾次
16.2.1 模擬程序2的運行示例
16.2.2 模擬程序2的源代碼
16.2.3 記錄多次游戲
16.2.4 注釋掉print()函數調用
16.2.5 使用百分數評級AI
16.3 比較不同的AI算法
16.3.1 模擬程序3的源代碼
16.3.2 模擬程序3的AI是如何工作的
16.3.3 比較AI
16.4 小結
17 創建圖形
17.1 安裝pygame
17.2 pygame中的Hello World
17.3 運行pygame Hello World程序的示例
17.4 pygame Hello World的源代碼
17.5 導入pygame模塊
17.6 初始化pygame
17.7 設置pygame窗口
17.7.1 元組
17.7.2 Surface對象
17.8 設置顏色變量
17.9 將文本寫到pygame窗口上
17.9.1 使用字體來樣式化文本
17.9.2 渲染一個Font對象
17.9.3 使用Rect屬性設置文本位置
17.10 用一種顏色填充一個Surface對象
17.11 pygame的繪制函數
17.11.1 繪制一個多邊形
17.11.2 繪制直線
17.11.3 繪制圓形
17.11.4 繪制橢圓形
17.11.5 繪制矩形
17.11.6 給像素着色
17.12 Surface對象的blit()方法
17.13 將Surface對象繪制到屏幕上
17.14 事件和游戲循環
17.14.1 獲取事件對象
17.14.2 退出程序
17.15 小結
18 動畫圖形
18.1 Animation程序的運行示例
18.2 Animation程序的源代碼
18.3 讓積木移動和彈回
18.4 設置常量變量
18.4.1 用於方向的常量變量
18.4.2 用於顏色的常量變量
18.5 設置積木數據結構
18.6 游戲循環
18.6.1 處理玩家退出的情況
18.6.2 移動每一個積木
18.6.3 彈跳一個積木
18.6.4 將積木繪制到窗口中其新的位置
18.6.5 在屏幕上繪制窗口
18.7 小結
19 碰撞檢測
19.1 碰撞檢測程序的運行示例
19.2 Collision Detection程序的源代碼
19.3 導入模塊
19.4 使用一個時鍾來同步程序
19.5 創建窗口和數據結構
19.6 設置變量以記錄移動
19.7 處理事件
19.7.1 處理KEYDOWN事件
19.7.2 處理KEYUP事件
19.8 轉移玩家
19.9 添加新的食物方塊
19.10 在屏幕上移動玩家
19.10.1 將玩家繪制到屏幕上
19.10.2 檢查碰撞
19.11 在窗口上繪制食物方塊
19.12 小結
20 聲音和圖像
20.1 使用精靈添加圖像
20.2 聲音文件和圖像文件
20.3 Sprites and Sounds程序的運行示例
20.4 Sprites and Sounds程序的源代碼
20.5 創建窗口和數據結構
20.5.1 添加一個精靈
20.5.2 改變一個精靈的大小
20.6 創建音樂和聲音
20.6.1 添加聲音文件
20.6.2 切換和關閉聲音
20.7 把玩家繪制到窗口上
20.8 檢查碰撞
20.9 在窗口中繪制櫻桃
20.10 小結
21 帶有聲音和圖像的Dodger
21.1 回顧pygame的基本數據類型
21.2 Dodger的運行示例
21.3 Dodger的源代碼
21.4 導入模塊
21.5 創建常量
21.6 定義函數
21.6.1 終止和暫停游戲
21.6.2 記錄和敵人的碰撞
21.6.3 將文本繪制到窗口
21.7 初始化pygame並設置窗口
21.8 設置Font、Sound和Image對象
21.9 顯示開始界面
21.10 開始游戲
21.11 游戲循環
21.11.1 處理鍵盤事件
21.11.2 處理鼠標移動
21.12 增加新的敵人
21.13 移動玩家角色和敵人
21.14 實現作弊模式
21.15 刪除敵人
21.16 繪制窗口
21.16.1 繪制玩家的得分
21.16.2 繪制玩家角色和敵人
21.17 碰撞檢測
21.18 游戲結束屏幕
21.19 修改Dodger游戲
21.20 小結
思維導圖
防止博客圖床圖片失效,防止圖片源站外鏈:
http://www.processon.com/chart_image/5e5b3494e4b03627650b12bf.png)
思維導圖在線編輯鏈接: