基礎(chǔ) | Roguelike隨機地圖----洞穴類(二)

本系列為筆者初學(xué)c/c++和游戲AI開發(fā)的學(xué)習(xí)經(jīng)歷,練習(xí)為主,不涉及到具體的游戲開發(fā)軟件學(xué)習(xí)(如unity,虛幻4等),適合剛?cè)腴T的小伙伴一起學(xué)習(xí)探討,歡迎在評論區(qū)留下意見。
開發(fā)語言:c/c++
開發(fā)平臺:macOS mojave / Linux
編譯器:vs Code

該章節(jié)知識點:
vector容器
random庫
& 引用

1.初始化地圖
在二維平面坐標系(笛卡爾坐標系)中生成一張初始地圖,以二維數(shù)組方式表達,數(shù)組中每個元素對應(yīng)坐標系上每個點。
對每個點,以小于0.45的概率生成墻壁(以1表示,0為地面)。

2.生成隨機地圖
關(guān)于細胞自動機的知識不再贅述,b站就有很多up主發(fā)過視頻,可搜索“生命游戲”。
遍歷數(shù)組,對每個點執(zhí)行下列規(guī)則:
若其周圍1的數(shù)量大于4,則設(shè)其為1
若其周圍1的數(shù)量小于4,則設(shè)其為0

其中,需要額外函數(shù)來判斷該點周圍墻壁的數(shù)量:

要注意的是:?
計算時候要明確邊界?
某點本身不計算在內(nèi)
周圍是指以某點為中心,九宮格內(nèi)其余八個點:


相關(guān)代碼在github獲取:https://github.com/linpeijie/GameToy/tree/master/GameAI/Map
標簽: