注冊 | 登錄讀書好,好讀書,讀好書!
讀書網(wǎng)-DuShu.com
當(dāng)前位置: 首頁出版圖書科學(xué)技術(shù)計算機(jī)/網(wǎng)絡(luò)軟件與程序設(shè)計算法超簡單:趣味游戲帶你輕松入門與實踐

算法超簡單:趣味游戲帶你輕松入門與實踐

算法超簡單:趣味游戲帶你輕松入門與實踐

定 價:¥79.80

作 者: 童晶
出版社: 人民郵電出版社
叢編項:
標(biāo) 簽: 暫缺

ISBN: 9787115639615 出版時間: 2024-08-01 包裝: 平裝-膠訂
開本: 16開 頁數(shù): 字?jǐn)?shù):  

內(nèi)容簡介

  本書通過趣味游戲編程項目講解算法,提升讀者學(xué)習(xí)算法的興趣,降低讀者學(xué)習(xí)算法的難度,增強(qiáng)讀者將算法應(yīng)用于編程實踐的能力。本書共 14 章,通過猜數(shù)字、飛翔的小鳥、得分排行榜、漢諾塔、八皇后、消滅星星、貪吃蛇、走迷宮、連連看、吃豆人、滑動拼圖、井字棋、壘積木、十步萬度等游戲,講解順序查找算法、二分查找算法,圖形庫 EasyX,插入排序算法、冒泡排序算法、選擇排序算法、快速排序算法,遞歸算法,暴力搜索算法、回溯算法,F(xiàn)loodFill 算法,常見的數(shù)據(jù)結(jié)構(gòu)(數(shù)組、鏈表、隊列、棧、圖、樹)、標(biāo)準(zhǔn)模板庫(STL),十字分割算法、圖的廣度優(yōu)先搜索算法和深度優(yōu)先搜索算法,加權(quán)圖上的迪杰斯特拉算法、貪婪優(yōu)先搜索算法、A*算法,狀態(tài)空間上的搜索算法,博弈樹的極大極小值搜索算法、α-β剪枝搜索算法,動態(tài)規(guī)劃算法,遺傳算法。本書適合想要學(xué)習(xí)基礎(chǔ)算法或練習(xí)編程實踐的讀者閱讀,也可作為高等院校數(shù)據(jù)結(jié)構(gòu)與算法相關(guān)課程或編程實踐課程的指導(dǎo)用書。讀者在閱讀本書之前需要具備基礎(chǔ)的C語言編程知識。

作者簡介

  童晶,浙江大學(xué)計算機(jī)專業(yè)博士,河海大學(xué)副教授、碩士生導(dǎo)師、人工智能系主任。 主要從事計算機(jī)圖形學(xué)、虛擬現(xiàn)實、數(shù)字化藝術(shù)等方向的研究,發(fā)表學(xué)術(shù)論文超過 30 篇,曾獲中國發(fā)明協(xié)會發(fā)明創(chuàng)業(yè)獎成果獎一等獎、浙江省自然科學(xué)獎二等獎。 積極投身于教學(xué)與學(xué)生創(chuàng)新工作,指導(dǎo)學(xué)生獲得“英特爾杯”大學(xué)生電子設(shè)計競賽嵌入式系統(tǒng)專題邀請賽全國一等獎、“挑戰(zhàn)杯”全國大學(xué)生課外學(xué)術(shù)科技作品競賽全國三等獎、“中國軟件杯”大學(xué)生軟件設(shè)計大賽全國一等獎、中國大學(xué)生服務(wù)外包創(chuàng)新創(chuàng)業(yè)大賽全國一等獎等多個獎項。 具有 18 年的一線教學(xué)經(jīng)驗,所開設(shè)的課程在校內(nèi)廣受好評,獲評河海大學(xué)優(yōu)秀主講教師。在知乎、嗶哩嘩哩、中國大學(xué) MOOC 等平臺的教學(xué)課程已有千萬次的閱讀與學(xué)習(xí)記錄。

圖書目錄

第 1 章 猜數(shù)字..1
1.1 實現(xiàn)猜數(shù)字游戲 .. 1
1.2 順序查找 .. 2
1.3 二分查找 .. 7
1.4 算法的效率 .. 12
1.5 小結(jié) .. 13
第 2 章 飛翔的小鳥 ..14
2.1 EasyX 圖形庫 .. 14
2.2 小球的自由落體 .. 17
2.3 按空格鍵讓小球向上飛 .. 18
2.4 游戲程序框架改進(jìn) .. 19
2.5 添加水管障礙物 .. 22
2.6 得分的計算與顯示 .. 24
2.7 更多水管障礙物 .. 26
2.8 圖片的使用 .. 27
2.9 小結(jié) .. 33
第 3 章 得分排行榜 .. 34
3.1 插入排序及其可視化 .. 34
3.2 冒泡排序及其可視化 .. 39
3.3 選擇排序及其可視化 .. 42
3.4 快速排序及其可視化 .. 45
3.5 拓展練習(xí):查找算法和更多排序算法的可視化 .. 51
3.6 小結(jié) .. 52
第 4 章 漢諾塔 .. 53
4.1 實現(xiàn)漢諾塔游戲 .. 53
4.1.1 定義柱子結(jié)構(gòu)體與可視化 ..54
4.1.2 通過鼠標(biāo)點擊選中柱子 ..56
4.1.3 移動盤子 ..58
4.1.4 判斷盤子是否可以移動 ..59
4.1.5 提示信息與勝負(fù)判斷 ..60
4.2 遞歸求解漢諾塔問題 .. 61
4.3 漢諾塔自動求解過程的可視化 .. 65
4.4 拓展練習(xí):繪制分形樹 .. 68
4.5 小結(jié) .. 69
第 5 章 八皇后 .. 70
5.1 實現(xiàn)八皇后游戲 .. 70
5.1.1 繪制棋盤和提示信息 ..70
5.1.2 通過鼠標(biāo)交互繪制皇后棋子 ..72
5.1.3 游戲勝負(fù)判斷 ..74
5.2 暴力搜索 .. 76
5.2.1 八重 for 循環(huán)輸出八皇后的所有擺法 ..76
5.2.2 暴力搜索求出八皇后的所有擺法 ..77
5.3 回溯 .. 79
5.4 八皇后游戲自動求解過程的可視化 .. 82
5.5 拓展練習(xí):一筆畫游戲、數(shù)獨游戲 .. 85
5.6 小結(jié) .. 86
第 6 章 消滅星星 .. 87
6.1 消滅星星游戲基礎(chǔ)版 .. 87
6.1.1 基礎(chǔ)數(shù)據(jù)結(jié)構(gòu)和畫面顯示 ..87
6.1.2 通過鼠標(biāo)點擊消除單個方塊 ..90
6.2 基于 FloodFill 算法消除連通的方塊 .. 91
6.3 方塊位置的更新 .. 93
6.3.1 方塊下落 ..93
6.3.2 方塊左移 ..94
6.4 游戲完善 .. 95
6.5 拓展練習(xí):掃雷游戲 .. 96
6.6 小結(jié) .. 98
第 7 章 貪吃蛇 .. 99
7.1 常見數(shù)據(jù)結(jié)構(gòu) .. 99
7.1.1 數(shù)組 ..99
7.1.2 鏈表 ..100
7.1.3 隊列 ..101
7.1.4 棧 ..102
7.1.5 圖 ..103
7.1.6 樹 ..103
7.2 標(biāo)準(zhǔn)模板庫 .. 104
7.2.1 vector ..104
7.2.2 queue ..107
7.2.3 stack ..109
7.2.4 string ..110
7.2.5 map ..110
7.3 實現(xiàn)貪吃蛇游戲 ..111
7.3.1 數(shù)據(jù)結(jié)構(gòu)和畫面顯示 ..111
7.3.2 蛇的自動移動 ..114
7.3.3 通過鼠標(biāo)控制蛇的移動方向 ..114
7.3.4 添加食物和障礙物 ..116
7.3.5 蛇吃食物后的處理 ..117
7.3.6 為蛇添加眼睛 ..119
7.4 拓展練習(xí):飛機(jī)大戰(zhàn) .. 120
7.5 小結(jié) .. 120
第 8 章 走迷宮 .. 121
8.1 實現(xiàn)走迷宮游戲 .. 121
8.1.1 迷宮地圖初始化與顯示 ..121
8.1.2 添加小球 ..124
8.1.3 通過鍵盤控制小球移動 ..125
8.2 基于十字分割算法自動生成迷宮地圖 .. 126
8.3 圖的廣度優(yōu)先搜索算法 .. 135
8.4 圖的深度優(yōu)先搜索算法 .. 137
8.5 迷宮游戲自動求解 .. 139
8.6 小結(jié) .. 144
第 9 章 連連看 ..145
9.1 連連看游戲基礎(chǔ)版 .. 145
9.1.1 數(shù)據(jù)初始化與顯示 ..145
9.1.2 記錄和處理鼠標(biāo)點擊操作 ..149
9.2 基于廣度優(yōu)先搜索算法的消除判斷 .. 150
9.2.1 基于廣度優(yōu)先搜索算法的方格連線和消除 ..150
9.2.2 基于廣度優(yōu)先搜索算法限制拐彎次數(shù) ..152
9.2.3 游戲勝負(fù)的判斷與顯示 ..156
9.3 拓展練習(xí):圍住神經(jīng)貓 .. 156
9.4 小結(jié) .. 157
第 10 章 吃豆人..158
10.1 吃豆人游戲基礎(chǔ)版 .. 158
10.1.1 地圖的存儲與顯示 ..158
10.1.2 玩家對吃豆人的控制 ..161
10.1.3 圖片切換與動畫效果 ..163
10.1.4 幽靈隨機(jī)移動 ..165
10.1.5 勝負(fù)判斷 ..166
10.2 迪杰斯特拉算法 .. 167
10.3 貪婪最佳優(yōu)先搜索算法與 A* 算法 .. 170
10.4 三種算法的實現(xiàn)與對比 .. 173
10.5 幽靈自動追蹤 .. 181
10.6 小結(jié) .. 182
第 11 章 滑動拼圖 ..183
11.1 實現(xiàn)滑動拼圖游戲 .. 183
11.1.1 數(shù)據(jù)結(jié)構(gòu)和畫面顯示 ..183
11.1.2 生成隨機(jī)初始狀態(tài) ..186
11.1.3 鼠標(biāo)交互與勝利判斷 ..187
11.2 狀態(tài)空間上的搜索算法 .. 189
11.3 滑動拼圖游戲的自動求解 .. 191
11.4 拓展練習(xí):農(nóng)夫過河游戲 .. 194
11.5 小結(jié) .. 195
第 12 章 井字棋..196
12.1 雙人對戰(zhàn)井字棋 .. 196
12.1.1 數(shù)據(jù)結(jié)構(gòu)和畫面顯示 ..196
12.1.2 通過鼠標(biāo)交互下棋 ..198
12.1.3 勝負(fù)判斷 ..199
12.2 棋局的估值函數(shù) .. 201
12.3 基于博弈樹的極大極小值搜索算法實現(xiàn)人機(jī)對戰(zhàn)下棋 .. 205
12.4 基于 α-β 剪枝搜索算法實現(xiàn)人機(jī)對戰(zhàn)下棋 .. 208
12.5 拓展練習(xí):人機(jī)對戰(zhàn)五子棋 .. 212
12.6 小結(jié) .. 212
第 13 章 壘積木..213
13.1 實現(xiàn)壘積木游戲 .. 213
13.1.1 積木塊的繪制 ..213
13.1.2 積木塊的旋轉(zhuǎn) ..216
13.1.3 多個積木與畫面顯示 ..217
13.1.4 壘積木操作 ..219
13.1.5 高度統(tǒng)計與勝負(fù)判斷 ..220
13.1.6 游戲完善 ..221
13.2 遞歸回溯求解壘積木問題 .. 222
13.3 動態(tài)規(guī)劃求解壘積木問題 .. 226
13.4 小結(jié) .. 231
第 14 章 十步萬度..232
14.1 實現(xiàn)十步萬度游戲 .. 232
14.1.1 數(shù)據(jù)結(jié)構(gòu)與畫面顯示 ..232
14.1.2 鼠標(biāo)交互與指針旋轉(zhuǎn) ..235
14.1.3 旋轉(zhuǎn)傳播與得分統(tǒng)計 ..236
14.1.4 顯示旋轉(zhuǎn)過程動畫 ..238
14.2 遺傳算法基礎(chǔ) .. 239
14.3 基于遺傳算法自動求解十步萬度游戲 .. 241
14.4 小結(jié) .. 249

本目錄推薦

掃描二維碼
Copyright ? 讀書網(wǎng) www.stefanvlieger.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號 鄂公網(wǎng)安備 42010302001612號