Python AI游戲編程入門——基於Pygame和PyTorch

肖凱

  • 出版商: 人民郵電
  • 出版日期: 2024-09-01
  • 售價: $474
  • 貴賓價: 9.5$450
  • 語言: 簡體中文
  • 頁數: 196
  • ISBN: 7115645809
  • ISBN-13: 9787115645807
  • 相關分類: Python程式語言DeepLearning
  • 立即出貨 (庫存 < 3)

  • Python AI游戲編程入門——基於Pygame和PyTorch-preview-1
  • Python AI游戲編程入門——基於Pygame和PyTorch-preview-2
Python AI游戲編程入門——基於Pygame和PyTorch-preview-1

買這商品的人也買了...

相關主題

商品描述

本書以Python為開發環境,以小游戲開發為載體,對編程及人工智能技術進行講解,讓讀者同時學習編程及人工智能知識。 本書共16章,可分為4個部分。第1部分為第1~3章,分別是編程、游戲和AI,Python環境準備及Pygame基礎知識。第2部分為第4~7章,分別講解了貪吃蛇游戲編程、打磚塊游戲編程、笨鳥先飛游戲編程和五子棋游戲編程。第3部分為第8~12章,分別介紹了神經網絡和PyTorch基礎、蒙特卡羅模擬、強化學習入門、深度強化學習DQN及遺傳算法。第4部分為第13~16章,分佈介紹了貪吃蛇AI編程、打磚塊AI編程、笨鳥先飛AI編程和五子棋AI編程。 本書內容系統性強,語言精練,適合對AI游戲編程感興趣的讀者閱讀,也適合作為青少年游戲編程培訓的參考用書。

作者簡介

肖凱,螞蟻集團大安全事業群算法專家,經濟學碩士,長年工作於互聯網行業,專注於互聯網大數據挖掘和機器學習相關領域的研究。B站“肖老師的退休生活”,不定期更新的UP主,眼下致力於講解人工智能/遊戲設計/批判性思維。目前從事風控算法開發,精通機器學習算法理論和編程應用。

目錄大綱

第1章 編程、游戲和AI 1

1.1 代碼的世界 1

1.2 什麽是編程 2

1.3 什麽是AI 2

1.4 游戲編程和游戲AI 3

1.4.1 游戲主循環 3

1.4.2 二維圖形顯示 4

1.4.3 輸入處理 5

1.4.4 游戲AI

1.5 本章小結 6

 

第2章 Python環境準備和預備知識 7

2.1 Python編程環境安裝 7

2.2 編寫第一個小游戲 8

2.3 面向對象編程 11

2.4 使用Python模塊 14

2.4.1 random模塊 15

2.4.2 NumPy模塊 15

2.4.3 matplotlib模塊 16

2.4.4 copy模塊 17

2.4.5 collections模塊 17

2.5 本章小結 18

 

第3章 Pygame基礎知識 19

3.1 Pygame的Hello World 19

3.2 顯示圖形 21

3.3 鍵盤和鼠標交互 22

3.4 加載圖片和文字資源 24

3.5 增加音效和運動 25

3.6 連續鍵盤控制 27

3.7 碰撞檢測 28

3.8 一個完整的游戲 29

3.9 本章小結 34

 

第4章 貪吃蛇游戲編程 35

4.1 貪吃蛇游戲介紹 35

4.1.1 游戲規則 35

4.1.2 游戲資源 36

4.2 游戲功能和程序設計 37

4.2.1 游戲功能 37

4.2.2 程序設計

4.3 代碼實現 38

4.3.1 模塊加載、位置和方向 38

4.3.2 Snake類 38

4.3.3 Berry類 40

4.3.4 Wall類 41

4.3.5 Game類定義 42

4.3.6 碰撞檢測 43

4.3.7 繪圖輸出 43

4.3.8 游戲主循環 44

4.4 本章小結 45

 

第5章 打磚塊游戲編程 46

5.1 打磚塊游戲介紹 46

5.1.1 游戲規則 46

5.1.2 游戲資源 47

5.2 游戲功能和程序設計 47

5.2.1 游戲功能 47

5.2.2 程序設計 48

5.3 打磚塊游戲代碼實現 48

5.3.1 Bat類 48

5.3.2 Ball類 49

5.3.3 Bricks類 50

5.3.4 Game類 51

5.3.5 碰撞檢測 52

5.3.6 繪圖輸出 53

5.3.7 游戲主循環 54

5.4 雙人對戰游戲 55

5.5 本章小結

 

第6章 笨鳥先飛游戲編程 61

6.1 笨鳥先飛游戲介紹 61

6.1.1 游戲規則 61

6.1.2 游戲資源 62

6.2 游戲功能和程序設計 62

6.2.1 游戲功能 62

6.2.2 程序設計 62

6.3 代碼實現 63

6.3.1 Bird類 63

6.3.2 Pipe類 66

6.3.3 Button類 67

6.3.4 Game類 68

6.3.5 玩家輸入處理 69

6.3.6 碰撞檢測 69

6.3.7 游戲數據更新 70

6.3.8 繪圖輸出 72

6.3.9 游戲主循環 72

6.4 本章小結

 

第7章 五子棋游戲編程 74

7.1 五子棋游戲介紹 74

7.1.1 游戲規則 74

7.1.2 游戲資源 74

7.2 游戲功能和程序設計 75

7.2.1 游戲功能 75

7.2.2 程序設計 75

7.3 代碼實現 76

7.3.1 Board類 76

7.3.2 Button類 78

7.3.3 Board_Area類 78

7.3.4 Message_Area類 79

7.3.5 Game類 79

7.4 本章小結 84

 

第8章 神經網絡和PyTorch基礎 85

8.1 最優化方法 85

8.1.1 什麽是最優化 85

8.1.2 梯度下降算法 86

8.2 PyTorch基礎知識 89

8.2.1 什麽是PyTorch 89

8.2.2 PyTorch的張量操作 90

8.2.3 自動計算梯度 92

8.2.4 用PyTorch進行最優化 93

8.3 神經網絡 94

8.3.1 神經網絡是什麽 94

8.3.2 矩形周長問題 95

8.3.3 用PyTorch解決矩形周長問題 99

8.3.4 用PyTorch解決矩形面積問題 100

8.4 使用神經網絡玩井字棋游戲 101

8.5 本章小結 104

 

第9章 蒙特卡羅模擬 105

9.1 什麽是隨機模擬 105

9.2 骰子的模擬實驗 107

9.3 硬幣的模擬實驗 109

9.4 撲克牌的模擬實驗 111

9.5 使用蒙特卡羅方法玩井字棋游戲 112

9.6 本章小結 116

 

第10章 強化學習入門 118

10.1 什麽是強化學習 118

10.2 冰湖迷宮問題 120

10.3 用蒙特卡羅方法解決冰湖迷宮問題 123

10.4 SARSA算法 127

10.5 Q-Learning算法 129

10.6 本章小結 132

 

第11章 深度強化學習算法DQN 133

11.1 什麽是深度強化學習 133

11.2 用DQN解決冰湖迷宮問題 135

11.3 DQN的完整結構和優化 138

11.4 本章小結

 

第12章 遺傳算法 143

12.1 什麽是遺傳算法 143

12.2 用遺傳算法解決最優化問題 144

12.3 用遺傳算法解決背包問題 148

12.4 用遺傳算法訓練神經網絡 150

12.5 本章小結

 

第13章 貪吃蛇游戲AI編程 156

13.1 整體設計思路 156

13.2 貪吃蛇游戲環境改造 157

13.2.1 環境改造思路 157

13.2.2 改造代碼 158

13.3 AI引擎的設計和編寫 162

13.3.1 DQN回顧 162

13.3.2 編寫AI引擎 162

13.4 AI環境與AI引擎的組裝運行 165

13.5 本章小結 168

 

第14章 打磚塊游戲AI編程 169

14.1 打磚塊游戲環境改造 169

14.1.1 環境改造思路 169

14.1.2 代碼實現 170

14.2 AI引擎的設計和編寫 172

14.3 AI環境和AI引擎的組裝運行 174

14.4 本章小結 176

 

第15章 笨鳥先飛游戲AI編程 178

15.1 基於DQN的AI引擎 178

15.1.1 笨鳥先飛游戲代碼改造 178

15.1.2 笨鳥先飛游戲的AI引擎的組裝 181

15.2 基於遺傳算法的AI引擎 182

15.2.1 整體設計思路 182

15.2.2 Linear_Net類的改造 182

15.2.3 Bird類的改造 183

15.2.4 Game類的改造 184

15.2.5 遺傳算法函數編寫 186

15.2.6 算法效果 188

15.3 本章小結 188

 

第16章 五子棋游戲AI編程 189

16.1 MCTS的整體思路 189

16.2 MCTS代碼實現 191

16.3 五子棋游戲程序改造 196

16.4 本章小結 196