基于DFS的2D迷宫生成器:欧拉迷宫转换后处理故障排查
DFS生成的C#迷宫转欧拉迷宫后处理失败求助
我正在开发一款采用DFS算法生成迷宫的C#程序,迷宫生成功能正常,但在将生成的迷宫转换为欧拉迷宫的后处理环节遇到问题,多次尝试后仍未达到预期效果。
实现思路
- 使用DFS生成初始迷宫;
- 识别所有奇度顶点;
- 尝试连接成对的奇度顶点,使迷宫满足欧拉性质;
核心方法说明
GenerateLevel():生成初始迷宫GetOddDegree():识别奇度顶点ConnectVertices():连接顶点以平衡度数MakeMazeEulerian():后处理主方法
当前问题
运行MakeMazeEulerian()后,迷宫仍不满足欧拉性质。
必须遵守的约束
- 必须通过后处理将迷宫转为欧拉迷宫;
- 迷宫需以2D array形式存储;
- 初始迷宫必须采用DFS算法生成。
本次涉及的欧拉迷宫定义
从指定单元格出发;
恰好遍历每条通道一次;
不回溯路径即可返回起点。
已附上完整代码及当前运行输出,寻求问题解决帮助。
内容的提问来源于stack exchange,提问作者MoussMad
相关产品推荐
相关产品推荐

