收藏 分销(赏)

C语言的迷宫游戏.doc

上传人:xrp****65 文档编号:7029212 上传时间:2024-12-25 格式:DOC 页数:7 大小:450KB
下载 相关 举报
C语言的迷宫游戏.doc_第1页
第1页 / 共7页
C语言的迷宫游戏.doc_第2页
第2页 / 共7页
点击查看更多>>
资源描述
嗯... 其实也没啥... 随便敲了一段程序.. 先上效果图: 其实 随机化 Kruskal 来搞迷宫程序也是很正常.. 相比 DFS 这种危险的东西而言要好得多了.. /* ---------------------------------------------- 就是求一个 随机生成树的问题.. 思路就是 : 假如把 每个空格看成一个点. 空格与空格之间的墙壁看成一条边. 那么初始的迷宫就是一个无向图 G = <V , E> 然后我要使得入口和出口要联通. 相当于去搞一个图G 的导出子图, 使得子图中的顶点 E 和顶点 S 是联通的. 有点算法功底的人应该想到对于DFS这种东西...实在是害怕栈溢出... 你有本事就改成非递归形式.. 但估计没人有本事. 还不如用生成树的思路做. 算法步骤: 1)随机选择 G 中的一条边 e ∈ E , 判断 e 连接的两个顶点是否在同一集盒 , 如果不是, 将两个顶点所在集盒合并, 并且把墙擦掉 ; 反之 , 进入 2) 2) E = E - {e} ; //从边集中去掉元素 e 3) 如果 E = Φ (空集) , 结束算法 ; 反之 , 转到 1) 这其中的 判断两个顶点在同一集盒 以及 将两顶点合并 如果要高效率的操作的话. 仅仅用线性表是肯定会**的.. 这里用数据结构里常用的树来存储. 即 所谓的 UFS(Union_Find_Set) 并查集. 这个数据结构我已经手写成了类 , 放在了源代码中. 还有迷宫地图相关的操作函数以及变量全部放在了命名空间 Maze 中,不然冲突的太严重了. 另外: 命名空间 std 我并没有完全开放 , 这也是给新手一种示范 。 告诉C++初学者,别为了偷懒就随便的全局 "using namespace std;" , 大项目中的后果是很坑爹的.... (源代码整理后以图片形式贴出) ///////////// 这帖子在代码全部贴出前尽量别插楼(谢谢大家的配合) ///////////// 8 8 最后附上使用的std std::list std::pair std::cin std::cout std::endl
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传
相似文档                                   自信AI助手自信AI助手

当前位置:首页 > 百科休闲 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服