基础 | Roguelike随机地图----洞穴类(二)

本系列为笔者初学c/c++和游戏AI开发的学习经历,练习为主,不涉及到具体的游戏开发软件学习(如unity,虚幻4等),适合刚入门的小伙伴一起学习探讨,欢迎在评论区留下意见。
开发语言:c/c++
开发平台:macOS mojave / Linux
编译器:vs Code

该章节知识点:
vector容器
random库
& 引用

1.初始化地图
在二维平面坐标系(笛卡尔坐标系)中生成一张初始地图,以二维数组方式表达,数组中每个元素对应坐标系上每个点。
对每个点,以小于0.45的概率生成墙壁(以1表示,0为地面)。

2.生成随机地图
关于细胞自动机的知识不再赘述,b站就有很多up主发过视频,可搜索“生命游戏”。
遍历数组,对每个点执行下列规则:
若其周围1的数量大于4,则设其为1
若其周围1的数量小于4,则设其为0

其中,需要额外函数来判断该点周围墙壁的数量:

要注意的是:
计算时候要明确边界
某点本身不计算在内
周围是指以某点为中心,九宫格内其余八个点:


相关代码在github获取:https://github.com/linpeijie/GameToy/tree/master/GameAI/Map