欢迎光临散文网 会员登陆 & 注册

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

2020-02-27 11:18 作者:有木乘舟  | 我要投稿

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

  • 开发语言:c/c++

  • 开发平台:macOS mojave / Linux

  • 编译器:vs Code

该章节知识点:

  • vector容器

  • random库

  • & 引用

1.初始化地图

  • 在二维平面坐标系(笛卡尔坐标系)中生成一张初始地图,以二维数组方式表达,数组中每个元素对应坐标系上每个点。

  • 对每个点,以小于0.45的概率生成墙壁(以1表示,0为地面)。

图1 初始化地图

2.生成随机地图

关于细胞自动机的知识不再赘述,b站就有很多up主发过视频,可搜索“生命游戏”。

遍历数组,对每个点执行下列规则:

  • 若其周围1的数量大于4,则设其为1

  • 若其周围1的数量小于4,则设其为0

图2 通过&引用来直接改变initMap的值

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

图3 计算周围墙壁数量

要注意的是: 

  1. 计算时候要明确边界 

  2. 某点本身不计算在内

  3. 周围是指以某点为中心,九宫格内其余八个点:

图4 蓝色为需要计算的点

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

基础 | Roguelike随机地图----洞穴类(二)的评论 (共 条)

分享到微博请遵守国家法律