迷宫算法——验证迷宫的可通性
【Qboy原创】 记得在大学学习数据结构时就学过采用迭代方式可以判断一个迷宫是否有解无解甚至可以查找出所有的可能的出口。目前公司开发一个游戏需要玩家去搭建迷宫让其他玩家去闯迷宫的游戏,游戏其实很简单。但是有一个重点就是要验证玩家所搭建的迷宫是否可到达。好吧这就是我们接下去算法的需求。写下此文只是为了Mark过程。 首先先创建必须的结构体 (1)迷宫中所有的节点类型 typedef enum{ EMPTY=0, //空白 OBSTACLE, //障碍 ENTER, //入口 EXIT, //出口 }MazeNodeType; //迷宫节点的类型 根据不同的业务需求可能还涉及到其他的节点类型,这是最基础的类型。 (2)迷宫节点: typedef struct { CCPoint location;//位置 MazeNodeType nodeType; }MazeNode; (3)迷宫地图 typedef struct { MazeNode** pMazeNode;//地图的节点 int iMazeOrientation;//横向多少个 int iMazeLongitudinal;//纵向 MazeNode* pEnter;//入口