|
-- 會員 / 註冊 --
|
|
|
|
Python游戲編程快速上手 第4版 ( 簡體 字) |
作者:[美]Al Sweigart(斯維加特) | 類別:1. -> 程式設計 -> Python |
譯者: |
出版社:人民郵電出版社 | 3dWoo書號: 47841 詢問書籍請說出此書號!【缺書】 NT售價: 345 元 |
出版日:10/1/2017 |
頁數:310 |
光碟數:0 |
|
站長推薦: |
印刷:黑白印刷 | 語系: ( 簡體 版 ) |
|
加入購物車 │加到我的最愛 (請先登入會員) |
ISBN:9787115466419 |
作者序 | 譯者序 | 前言 | 內容簡介 | 目錄 | 序 |
(簡體書上所述之下載連結耗時費功, 恕不適用在台灣, 若讀者需要請自行嘗試, 恕不保證) |
作者序: |
譯者序: |
前言: |
內容簡介:Python是一種高級程式設計語言,因其簡潔、易讀及可擴展性日漸成為程式設計領域備受推崇的語言。 本書通過編寫一個個小巧、有趣的遊戲來教授Python程式設計,並且採用直接展示遊戲的原始程式碼並通過實例來解釋程式設計的原理的方式。全書共21章,12個遊戲程式和示例貫穿其中,介紹了Python基礎知識、資料類型、函數、流程控制、程式調試、流程圖設計、字串操作、清單和字典、笛卡爾坐標系、密碼學基礎、遊戲AI類比、動畫圖形、碰撞檢測、聲音和圖像等方方面面的程式設計知識。本書可以幫助讀者在輕鬆有趣的過程中,掌握Python遊戲程式設計的基本技能。 本書適合不同年齡和層次的Python程式設計初學者閱讀。
|
目錄:第1章 互動式Shell 1 1.1 一些簡單的數學知識 1 1.1.1 整數和浮點數 2 1.1.2 運算式 2 1.2 計算運算式 3 1.3 語法錯誤 4 1.4 在變數中存儲值 4 1.5 小結 8 第2章 編寫程式 9 2.1 字串值 10 2.2 連接字串 10 2.3 在IDLE的檔編輯器中 編寫程式 11 2.3.1 創建Hello World程式 11 2.3.2 保存程式 12 2.3.3 運行程式 13 2.4 Hello World程式如何工作 14 2.4.1 注釋 15 2.4.2 函數:程式中的小程式 15 2.4.3 終止程式 16 2.5 命名變數 16 2.6 小結 17 第3章 “猜數字”遊戲 19 3.1 “猜數字”的運行示例 20 3.2 “猜數位”程式的原始程式碼 20 3.3 導入random模組 21 3.4 用random.randint()函數 生成亂數 22 3.5 歡迎玩家 23 3.6 流程控制語句 23 3.6.1 使用迴圈來重複代碼 23 3.6.2 組織語句塊 24 3.6.3 for迴圈語句 25 3.7 玩家的猜測 26 3.8 使用int()函數、float()函數、str() 函數和bool()函數來轉換值 26 3.9 布林資料類型 28 3.9.1 比較操作符 28 3.9.2 用條件檢查True或 False 29 3.9.3 體驗布林值、比較操作符 和條件 29 3.9.4 =和==的區別 30 3.10 if語句 30 3.11 用break語句提早離開迴圈 31 3.12 判斷玩家是否贏了 31 3.13 判斷玩家是否輸了 32 3.14 小結 32 第4章 一個講笑話程式 35 4.1 Jokes遊戲的運行示例 35 4.2 Jokes遊戲的原始程式碼 36 4.3 代碼如何工作 36 4.4 轉義字元 37 4.5 單引號和雙引號 38 4.6 print()的end關鍵字形參 39 4.7 小結 39 第5章 Dragon Realm 41 5.1 如何玩Dragon Realm 41 5.2 Dragon Realm的運行示例 42 5.3 Dragon Realm的流程圖 42 5.4 Dragon Realm的原始程式碼 43 5.5 導入random和time模組 44 5.6 Dragon Realm中的函數 44 5.6.1 def語句 45 5.6.2 調用函數 45 5.6.3 把函式定義放在哪裡 45 5.7 多行字串 46 5.8 while語句實現迴圈 46 5.9 布林操作符 47 5.9.1 and操作符 47 5.9.2 or操作符 48 5.9.3 not操作符 49 5.9.4 布林操作符的運算 49 5.10 返回值 50 5.11 全域作用域和局部作用域 51 5.12 函數形參 52 5.13 顯示遊戲結果 53 5.14 決定哪個山洞有友善的龍 53 5.15 遊戲迴圈 54 5.15.1 在程式中調用函數 55 5.15.2 詢問玩家要不要再玩 一局 55 5.16 小結 56 第6章 使用調試器 57 6.1 Bug的類型 57 6.2 調試器 58 6.2.1 啟動調試器 59 6.2.2 用調試器單步執行程式 60 6.3 查找Bug 63 6.4 設置中斷點 65 6.5 使用中斷點 66 6.6 小結 68 第7章 用流程圖設計Hangman 69 7.1 如何玩Hangman 69 7.2 Hangman的運行示例 70 7.3 ASCII字元圖 71 7.4 用流程圖來設計一個程式 71 7.4.1 生成流程圖 72 7.4.2 流程圖的分支 73 7.4.3 結束或者重新開始遊戲 74 7.4.4 再猜一次 75 7.4.5 為玩家提供回饋 77 7.5 小結 78 第8章 編寫Hangman的代碼 79 8.1 Hangman的原始程式碼 79 8.2 導入random模組 82 8.3 常量 82 8.4 列表資料類型 83 8.4.1 用索引訪問元素 83 8.4.2 列表連接 84 8.4.3 in操作符 85 8.5 調用方法 85 8.5.1 列表方法reverse()和 append() 86 8.5.2 字串方法split() 86 8.6 從單字清單中獲取一個神秘 單詞 87 8.7 向玩家顯示遊戲台 87 8.7.1 list()函數和range()函數 88 8.7.2 清單和字串分片 89 8.7.3 用空格表示神秘單詞 90 8.8 獲取玩家的猜測 91 8.8.1 字串方法lower()和 upper() 92 8.8.2 離開while迴圈 93 8.9 elif語句 93 8.10 確保玩家輸入一個有效的 猜測 94 8.11 詢問玩家是否想再玩一局 94 8.12 回顧Hangman中的函數 95 8.13 遊戲迴圈 96 8.13.1 調用displayBoard()函數 96 8.13.2 讓玩家輸入他們的猜測 96 8.13.3 判斷字母是否在這個 神秘單詞中 97 8.13.4 判斷玩家是否獲勝 97 8.13.5 當玩家猜錯時 97 8.13.6 檢查玩家是否輸了 98 8.13.7 結束並重新設置遊戲 98 8.14 小結 99 第9章 Hangman擴展 101 9.1 添加更多的猜測機會 101 9.2 字典資料類型 102 9.2.1 用len()函數獲取字典的 大小 103 9.2.2 字典和清單的區別 103 9.2.3 字典方法keys()和 values() 104 9.2.4 在Hangman中使用單詞的 字典 104 9.3 從一個列表中隨機選取 105 9.4 從列表中刪除項 106 9.5 多變數賦值 107 9.6 向玩家顯示單詞的分類 108 9.7 小結 109 第10章 Tic Tac Toe 111 10.1 Tic Tac Toe的運行示例 112 10.2 Tic Tac Toe的原始程式碼 113 10.3 設計程式 116 10.3.1 用資料表示遊戲台 117 10.3.2 遊戲AI 117 10.4 導入random模組 119 10.5 在螢幕上列印遊戲台 119 10.6 讓玩家來選擇X或O 120 10.7 決定誰先走 121 10.8 在遊戲台上放置一個標記 121 10.8.1 列表引用 121 10.8.2 在makeMove()中使用 列表引用 124 10.9 判斷玩家是否獲勝 125 10.10 複製遊戲台的資料 126 10.11 判斷遊戲台上的格子是否 為空 127 10.12 讓玩家輸入他們的落子 127 10.13 短路求值 128 10.14 從落子列表中選擇一個 落子 130 10.15 None值 130 10.16 創建電腦的AI 131 10.16.1 電腦判斷自己能否 落子即獲勝 132 10.16.2 電腦判斷玩家是否 可以落子即獲勝 132 10.16.3 依次判斷角、中心 和邊 133 10.16.4 判斷遊戲台是否滿了 133 10.17 遊戲迴圈 134 10.17.1 決定玩家的符號和 誰先走 134 10.17.2 運行玩家的輪次 134 10.17.3 運行電腦的輪次 135 10.17.4 詢問玩家是否再玩 一次 136 10.18 小結 136 第11章 推理遊戲Bagels 137 11.1 Bagels的運行示例 138 11.2 Bagels的原始程式碼 138 11.3 Bagels的流程圖 140 11.4 導入random並定義 getSecretNum() 140 11.5 打亂一組唯一數的順序 141 11.5.1 用random.shuffle()函數改變 清單項的順序 141 11.5.2 從打亂次序的數中獲取神秘 數字 142 11.6 複合賦值操作符 142 11.7 計算要給出的線索 143 11.8 列表方法sort() 144 11.9 字串方法join() 145 11.10 檢查字串中是否只包含 數字 145 11.11 遊戲的開始 146 11.12 字串插值 146 11.13 遊戲迴圈 147 11.13.1 獲取玩家的猜測 147 11.13.2 根據玩家的猜測給出 線索 148 11.13.3 判斷玩家的輸贏 148 11.13.4 詢問玩家是否再玩 一局 148 11.14 小結 149 第12章 笛卡爾座標 151 12.1 網格和笛卡爾座標 151 12.2 負數 153 12.3 電腦螢幕的坐標系 154 12.4 數學技巧 155 12.4.1 技巧1:減號吃掉它左邊 的加號 155 12.4.2 技巧2:兩個減號合併為 一個加號 155 12.4.3 技巧3:加法的可 交換性 156 12.5 絕對值和abs()函數 156 12.6 小結 157 第13章 Sonar Treasure Hunt遊戲 159 13.1 Sonar Treasure Hunt的運行 示例 160 13.2 Sonar Treasure Hunt的源 代碼 162 13.3 設計程式 167 13.4 導入random、sys和math 模組 167 13.5 創建一個新的遊戲台 167 13.6 繪製遊戲台 168 13.6.1 在頂部繪製X軸 169 13.6.2 繪製海洋 170 13.6.3 列印出海洋中的行 170 13.6.4 在遊戲台底部繪製X軸 座標 171 13.7 創建隨機的藏寶箱 171 13.8 判斷一次移動是否有效 172 13.9 在遊戲台上進行一次移動 172 13.9.1 找到最近的藏寶箱的 演算法 172 13.9.2 使用列表方法remove() 刪除值 175 13.9.3 獲取玩家的移動 176 13.10 為玩家列印出遊戲說明 177 13.11 遊戲迴圈 177 13.11.1 為玩家顯示遊戲的 狀態 179 13.11.2 處理玩家的移動 179 13.11.3 找到一個沉沒的 藏寶箱 179 13.11.4 判斷玩家是否贏了 180 13.11.5 判斷玩家是否輸了 180 13.11.6 用sys.exit()函數終止 程式 181 13.12 小結 181 第14章 凱撒密碼 183 14.1 密碼學和加密 184 14.2 凱撒密碼簡介 184 14.3 凱撒密碼的運行示例 185 14.4 凱撒密碼程式的原始程式碼 186 14.5 設置最大鍵長度 187 14.6 決定加密還是解密 187 14.7 從玩家處得到消息 188 14.8 從玩家處得到金鑰 188 14.9 加密或解密消息 188 14.9.1 使用字串方法find() 找到所傳遞的字串 189 14.9.2 加密或解密每個字母 190 14.10 程式開始 191 14.11 暴力破解 191 14.12 添加暴力破解模式 192 14.13 小結 193 第15章 Reversegam遊戲 195 15.1 如何玩Reversegam 195 15.2 Reversegam的運行示例 198 15.3 Reversegam的原始程式碼 200 15.4 導入模組和設置常量 205 15.5 遊戲台資料結構 205 15.5.1 在螢幕上繪製遊戲台資料 結構 205 15.5.2 創建一個新的遊戲台資料 結構 206 15.6 判斷一次落子是否有效 207 15.6.1 查看8個方向中的每一個 方向 208 15.6.2 發現是否有可以反轉的 棋子 209 15.7 判斷有效的座標 210 15.7.1 得到所有有效移動的一個 列表 210 15.7.2 調用bool()函數 211 15.8 計算遊戲台的得分 212 15.9 獲取玩家的棋子選擇 212 15.10 決定誰先走 213 15.11 在遊戲台上落下一個棋子 213 15.12 複製遊戲台資料結構 214 15.13 判斷一個格子是否在 角落上 214 15.14 獲取玩家的移動 214 15.15 獲取電腦的移動 216 15.15.1 角落移動策略 216 15.15.2 獲取最高得分的移動的 列表 217 15.16 在螢幕上列印分數 218 15.17 遊戲開始 218 15.17.1 檢查僵局 218 15.17.2 運行玩家的輪次 219 15.17.3 運行電腦的輪次 220 15.18 遊戲迴圈 221 15.19 詢問玩家是否再玩一局 222 15.20 小結 222 第16章 Reversegam AI模擬 223 16.1 讓電腦和自己下棋 224 16.1.1 類比程式1的運行 示例 224 16.1.2 類比程式1的原始程式碼 225 16.1.3 刪除玩家提示並添加一個 電腦玩家 226 16.2 讓電腦自己多玩幾次 227 16.2.1 類比程式2的運行 示例 227 16.2.2 類比程式2的原始程式碼 227 16.2.3 記錄多次遊戲 228 16.2.4 注釋掉print()函數 調用 229 16.2.5 使用百分數評級AI 229 16.3 比較不同的AI演算法 231 16.3.1 類比程式3的原始程式碼 231 16.3.2 類比程式3的AI是 如何工作的 232 16.3.3 比較AI 235 16.4 小結 237 第17章 創建圖形 239 17.1 安裝pygame 240 17.2 pygame中的Hello World 240 17.3 運行pygame Hello World程式的 示例 240 17.4 pygame Hello World的 原始程式碼 241 17.5 導入pygame模組 242 17.6 初始化pygame 243 17.7 設置pygame視窗 243 17.7.1 元組 243 17.7.2 Surface對象 244 17.8 設置顏色變數 244 17.9 將文本寫到pygame視窗上 245 17.9.1 使用字體來樣式化 文本 245 17.9.2 渲染一個Font物件 246 17.9.3 使用Rect屬性設置文本 位置 247 17.10 用一種顏色填充一個Surface 對象 248 17.11 pygame的繪製函數 249 17.11.1 繪製一個多邊形 249 17.11.2 繪製直線 250 17.11.3 繪製圓形 250 17.11.4 繪製橢圓形 251 17.11.5 繪製矩形 251 17.11.6 給圖元著色 252 17.12 Surface物件的blit()方法 252 17.13 將Surface對象繪製到 螢幕上 253 17.14 事件和遊戲迴圈 253 17.14.1 獲取事件物件 253 17.14.2 退出程式 254 17.15 小結 254 第18章 動畫圖形 255 18.1 Animation程式的運行示例 255 18.2 Animation程式的原始程式碼 256 18.3 讓積木移動和彈回 258 18.4 設置常量變數 258 18.4.1 用於方向的常量變數 259 18.4.2 用於顏色的常量變數 260 18.5 設置積木資料結構 260 18.6 遊戲迴圈 260 18.6.1 處理玩家退出的情況 261 18.6.2 移動每一個積木 261 18.6.3 彈跳一個積木 262 18.6.4 將積木繪製到窗口中 新的位置 263 18.6.5 在螢幕上繪製視窗 264 18.7 小結 264 第19章 碰撞檢測 265 19.1 碰撞檢測程式的運行示例 266 19.2 Collision Detection程式的 原始程式碼 266 19.3 導入模組 268 19.4 使用一個時鐘來同步程式 268 19.5 創建視窗和資料結構 269 19.6 設置變數以記錄移動 270 19.7 處理事件 270 19.7.1 處理KEYDOWN事件 271 19.7.2 處理KEYUP事件 273 19.8 轉移玩家 274 19.9 添加新的食物方塊 274 19.10 在螢幕上移動玩家 275 19.10.1 將玩家繪製到螢幕上 275 19.10.2 檢查碰撞 276 19.11 在窗口上繪製食物方塊 276 19.12 小結 277 第20章 聲音和圖像 279 20.1 使用精靈添加圖像 279 20.2 音效檔和影像檔 280 20.3 Sprites and Sounds程式的 運行示例 281 20.4 Sprites and Sounds程式的 原始程式碼 281 20.5 創建視窗和資料結構 284 20.5.1 添加一個精靈 284 20.5.2 改變一個精靈的大小 284 20.6 創建音樂和聲音 285 20.6.1 添加音效檔 285 20.6.2 切換和關閉聲音 285 20.7 把玩家繪製到窗口上 286 20.8 檢查碰撞 286 20.9 在窗口中繪製櫻桃 287 20.10 小結 287 第21章 帶有聲音和圖像的Dodger 289 21.1 回顧pygame的基本資料 類型 289 21.2 Dodger的運行示例 290 21.3 Dodger的原始程式碼 291 21.4 導入模組 295 21.5 創建常量 295 21.6 定義函數 296 21.6.1 終止和暫停遊戲 296 21.6.2 記錄和敵人的碰撞 297 21.6.3 將文本繪製到視窗 297 21.7 初始化pygame並設置視窗 298 21.8 設置Font、Sound和Image 對象 299 21.9 顯示開始介面 300 21.10 開始遊戲 300 21.11 遊戲迴圈 302 21.11.1 處理鍵盤事件 302 21.11.2 處理滑鼠移動 303 21.12 增加新的敵人 303 21.13 移動玩家角色和敵人 305 21.14 實現作弊模式 306 21.15 刪除敵人 306 21.16 繪製窗口 307 21.16.1 繪製玩家的得分 307 21.16.2 繪製玩家角色和敵人 307 21.17 碰撞檢測 308 21.18 遊戲結束螢幕 308 21.19 修改Dodger遊戲 309 21.20 小結 310
|
序: |
|