设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 4936|回复: 18
打印 上一主题 下一主题

[随意闲聊] 自动生成迷宫的4种算法风格

[复制链接]

Lv5.捕梦者 (版主)

遠航の猫咪

梦石
3
星屑
23186
在线时间
2387 小时
注册时间
2005-10-15
帖子
1166

开拓者

跳转到指定楼层
1
发表于 2020-5-26 03:21:54 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有帐号?注册会员

x
本帖最后由 SailCat 于 2020-5-26 03:36 编辑
1. 最小生成树算法

该算法速度适中(O((m+n)4logmn)),特点是将所有单元格最终挂在同一棵树上实现完全连通

2. 十字分割算法

该算法速度是所有算法中最快的(O(3logmn)),但生成的迷宫也是所有算法中最“规整”的,很多U形回路

3. 深度优先遍历算法

该算法速度偏慢(O(4mn)),对主路径有加权,故迷宫难度偏小,主路是一条非常曲折的路径,岔路一般不会太长

4. prim算法

该算法速度偏慢(O(4mn)),探索完全随机,故迷宫难度偏大,会有很长很长的死路和断头路,岔路常常长于主路


示例均为20X15大小的迷宫,在XP中显示为62x62,如果用VA能小一点,应该是42x47可以放下

问题来了,你们喜欢哪种风格的迷宫?
SailCat (小猫子·要开心一点) 共上站 24 次,发表过 11 篇文章 上 次 在: [2006年01月28日11:41:18 星期六] 从 [162.105.120.91] 到本站一游。

Lv5.捕梦者 (版主)

梦石
1
星屑
23994
在线时间
3339 小时
注册时间
2011-7-8
帖子
3926

开拓者

2
发表于 2020-5-26 06:11:53 | 只看该作者
本帖最后由 guoxiaomi 于 2020-5-26 06:28 编辑

是不是搞个投票?目测更喜欢最小生成树……

考虑到生成房间的情况,十字分割优势很大。十字分割生成房间是很自然的,提前终止递归就可以了,但是其他的算法就得更仔细的考虑吧?

点评

尽管我先支持的十字分割中的小房间和环道,但是事实上所有算法都可以支持,而且都很容易  发表于 2020-5-28 14:07
熟悉rgss和ruby,xp区版主~
正在填坑:《膜拜组传奇》讲述膜拜组和学霸们的故事。
已上steam:与TXBD合作的Reformers《变革者》
* 战斗调用公共事件 *
* RGSOS 网络脚本 *
回复 支持 反对

使用道具 举报

Lv5.捕梦者

梦石
0
星屑
35186
在线时间
4169 小时
注册时间
2007-12-15
帖子
10067
3
发表于 2020-5-26 07:04:16 | 只看该作者
本帖最后由 89444640 于 2020-5-26 07:12 编辑

喜欢3,用鼠标绕了一下,岔路挺远的,不过视觉上舒服一些,如果不是故意多出口,就不会迷路,其他路线都放宝箱就行,不过死路看上去都很远的样子。
1的话试了一下,即使不告诉出口在哪里,也可以走到目的地,因为是全连通的,不过没死路感觉差点啥。
2太垂直的路太长了,4看上去有很多很值的垂直死路。同屏能看到好多条垂直死路就不会往死胡同里走了
说起来不生成一些4*4  6*6之类的方块形房间吗?
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
9280
在线时间
2504 小时
注册时间
2011-5-20
帖子
15389

开拓者

4
发表于 2020-5-27 00:30:11 | 只看该作者
不考虑往迷宫加别的东西的情况下,毫无疑问不考虑4···2是个人觉得比较好的了
话说回来不考虑来个5吗——先画一个迷宫,然后分成多个区域(或者地图),最后玩家玩的时候进入的迷宫实际上是这些区域(地图)重新组成的

点评

如果有完全堵住的死路就临时打通一条新路在那个存档里生效,这种情况空洞骑士的随机获取道具mod里有过  发表于 2020-5-27 12:32
需要保证地图四周的门能接上,或者想办法处理过渡区域,不见得比生成一个完整的迷宫容易  发表于 2020-5-27 03:22
[img]http://service.t.sina.com.cn/widget/qmd/5339802982/c02e16bd/7.png
回复 支持 反对

使用道具 举报

Lv4.逐梦者 (版主)

职业の水客

梦石
0
星屑
13974
在线时间
7201 小时
注册时间
2010-6-16
帖子
3497

开拓者

5
发表于 2020-5-27 00:46:59 | 只看该作者
难道不该是全都要吗
或许可以让用户自己输入一些参数来进行改变
一个看图的地方
群爆炸重建后状态:论坛老人最多(只剩下了活跃的老人),技术力很强(依旧不变)的编程灌水群:901540785
专门讨论RM相关的Q群:56875149
PS:第一个群不是专门讨论RM的,第二个才是哦。
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
2802
在线时间
393 小时
注册时间
2015-8-8
帖子
440

R考场第七期纪念奖

6
发表于 2020-5-27 09:53:48 | 只看该作者
感觉都不如手画的好看
还不如设计个判断迷宫好坏的模型,然后用进化算法暴力拟合。
旧作《邵彦朝的大冒险》下载

默默无闻的论坛观察者
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
3670
在线时间
357 小时
注册时间
2018-9-4
帖子
272
7
发表于 2020-5-27 12:06:36 | 只看该作者
本帖最后由 Mono_kyrin 于 2020-5-27 12:11 编辑

prim……我都快把图论忘光了
最小生成树吧,其他的U型回路太多了
感觉还有很多可以优化的地方,比如加入3x3,4x4,6x6的小房间,加入高低差,加入事件等
要是真能搞出来的话,RM下的rougelike就不远了
回复 支持 反对

使用道具 举报

Lv5.捕梦者 (版主)

遠航の猫咪

梦石
3
星屑
23186
在线时间
2387 小时
注册时间
2005-10-15
帖子
1166

开拓者

8
 楼主| 发表于 2020-5-28 13:59:54 | 只看该作者

改进了一下评估算法,防止在算法二(十字分割)的时候出现大量U形回路
RUBY 代码复制
  1. # 确定分割方向 水平/垂直/十字
  2.     split_x = (w.to_f / h <= 1.618)
  3.     split_y = (h.to_f / w <= 1.618)

不要问为什么是1.618,问就是根号5-1
SailCat (小猫子·要开心一点) 共上站 24 次,发表过 11 篇文章 上 次 在: [2006年01月28日11:41:18 星期六] 从 [162.105.120.91] 到本站一游。
回复 支持 反对

使用道具 举报

Lv5.捕梦者 (版主)

遠航の猫咪

梦石
3
星屑
23186
在线时间
2387 小时
注册时间
2005-10-15
帖子
1166

开拓者

9
 楼主| 发表于 2020-5-28 14:01:32 | 只看该作者
Mono_kyrin 发表于 2020-5-27 12:06
prim……我都快把图论忘光了
最小生成树吧,其他的U型回路太多了
感觉还有很多可以优化的地方,比 ...

小房间很容易搞,不论哪个算法都很容易,高低差……这个没必要吧,本来兼容不同版本RM的地图风格就很难,墙高如果再不用默认值,随便一个小迷宫做出来都是很大的地图

点评

可以可以,已经很厉害了。大佬打算开源吗?  发表于 2020-5-29 04:07
SailCat (小猫子·要开心一点) 共上站 24 次,发表过 11 篇文章 上 次 在: [2006年01月28日11:41:18 星期六] 从 [162.105.120.91] 到本站一游。
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
14622
在线时间
718 小时
注册时间
2011-7-16
帖子
1428

开拓者

10
发表于 2020-5-28 17:06:47 | 只看该作者
感觉1和3不错,2和4感觉长长的太多了
RMMV网络插件,开源免费,内含服务器端,无需强制登录,云数据,弹幕,云存档,排名,兑换码,版本检测,可自由上架下架删除。q群399090587
免打包运行MV游戏,云游戏,安卓App雷神游戏厅,在线玩游戏,上传下载游戏
开源游戏:重装机兵之重装归来【RMMV制作】全球首款按照美剧分季分集的方式发布的游戏
体素画 -- MV画3D像素图的画板
RMMV显示3D模型和场景的插件
RMMV显示spine骨骼动画的插件
RMMV秘密通道插件
突破敌群数量上限8个的插件
在rmmv中显示gif动态图片的插件
一款可以在mv游戏界面的任意位置显示任意文字的插件
RMMV Toast 插件 带物品得失提示,可以设置开启关闭 兼容yep itemcore
制作一个改名卡道具插件、调整标题页面菜单的插件、在标题页面之前显示大段文字的插件、标题页面显示版本号的插件
物品得失自动提示自动上色自动换行插件
我的Q群 663889472
另外,我的插件、范例、游戏都在这里
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-11-16 08:36

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表