迷宮程式設計 Mazes for Programmers: Code Your Own Twisty Little Passages

Jamis Buck

相關主題

商品描述

《迷宮程式設計》是一本專門探討用程式設計的方式設計與實現迷宮的書,從 簡單的方格迷宮講起,
介紹迷宮程式設計的基本方法和技巧,然後講解如何設計形狀各異的二維迷宮,
例如把迷宮放到立方體表面、球面,甚至莫比烏斯環上去。
講解多維迷宮,讓迷宮在不同的層次穿梭。
書中的所有迷宮都附有代碼。
本書內容由淺入深,只需掌握 基本的程式設計概念即可以開始學習,尤其適合程式設計師和遊戲愛好者閱讀。

目錄大綱

部分 基礎
第 1 章 學畫隨機迷宮 1
11 準備網格 2
12 二元樹演算法 4
13 Sidewinder 演算法 13
14 小試身手 17

第 2 章 自動處理與呈現迷宮 19
21 引入基本網格 19
22 實作二元樹演算法 25
23 在終端機上顯示迷宮 27
24 實作 Sidewinder 演算法 31
25 將迷宮渲染成影像 33
26 小試身手 36

第 3 章 勇闖迷宮 39
31 Dijkstra 演算法 40
32 實作 Dijkstra 演算法 43
33 尋找 短路徑 48
34 製作 具挑戰性的迷宮 51
35 為迷宮著色 55
36 小試身手 59

第 4 章 透過隨機遊走避免偏差 61
41 理解偏差 61
42 Aldous-Broder 演算法 64
43 實作 Aldous-Broder 演算法 66
44 Wilson 演算法 70
45 實作 Wilson 演算法 74
46 小試身手 76

第 5 章 為隨機遊走新增約束條件 79
51 獵殺演算法 79
52 實作獵殺演算法 82
53 死角計數 85
54 遞歸回溯演算法 88
55 實作遞歸回溯演算法 92
56 小試身手 94

第二部分 進階
第 6 章 設計不同形狀的迷宮 97
61 介紹遮蔽 98
62 實現遮罩 102
63 ASCII 文字的遮罩 106
64 影像遮罩 109
65 小試身手 111

第 7 章 圓形迷宮 113
71 理解極座標網格 114
72 繪製極座標網格 118
73 自適應細分網格 121
74 實現極座標網格 123
75 小試身手 131

第 8 章 探索其他網格 133
81 實現六邊形網格 134
82 顯示六角形網格 137
83 製作六角形迷宮 141
84 實作三角形網格 143
85 顯示三角形網格 145
86 製作三角形迷宮 148
87 小試身手 149

第 9 章 編排與交織迷宮 153
91 編排迷宮 154
92 成本與距離 157
93 實作成本敏感的 Dikstra 演算法 161
94 介紹交織與嵌入 166
95 生成交織型迷宮 173
96 小試身手 183

第三部分 多的演算法
第 10 章 增強交織型迷宮 187
101 Kruskal 演算法 188
102 實作隨機 Kruskal 演算法 196
103 用 Kruskal 演算法 好地交織迷宮 200
104 實現 好的交織型迷宮 202
105 小試身手 206

第 11 章 Prim 演算法之旅 209
111 Prim 演算法介紹 210
112 簡化版 Prim 演算法 214
113 真正的 Prim 演算法 218
114 生長樹演算法 220
115 小試身手 224

第 12 章 組合與分割 227
121 Eller 演算法 227
122 實作 Eller 演算法 232
123 遞歸分割演算法 237
124 實作遞歸分割演算法 240
125 小試身手 245

第四部分 形狀與表面
第 13 將迷宮擴展到 高維度 247
131 理解維度 248
132 介紹 3D 迷宮 250
133 新增第三個維度 252
134 展示 3D 迷宮 256
135 描述四維網格 259
136 小試身手 262

第 14 章 彎折迷宮 265
141 圓柱體迷宮 266
142 莫比烏斯環迷宮 268
143 立方體迷宮 272
144 球體迷宮 281
145 小試身手 291
附錄 A 回顧迷宮演算法 293
附錄 B 比較迷宮演算法 303