根据这个网站,我希望用一个 16 位整数的二维数组来表示一个迷宫。
每个 16 位整数需要保存以下信息:
这是一种方法(这绝不是唯一的方法):12x16 迷宫网格可以表示为 16 位整数的数组 m[16][12]。每个数组元素将包含网格中单个对应单元格的所有信息,整数位映射如下:
(来源:mazeworks.com)要推倒一堵墙、设置边界或创建特定路径,我们需要做的就是翻转一个或两个数组元素中的位。
如何在 16 位整数上使用按位标志,以便我可以设置每个位并检查它们是否已设置。
我想以一种易于阅读的方式进行(即 Border.W、Border.E、Walls.N 等)。
这通常如何在 C++ 中完成?我是否使用十六进制来表示每一个(即 Walls.N = 0x02、Walls.E = 0x04 等)?我应该使用枚举吗?
另请参阅如何设置、清除和切换单个位?.