作者laechan (小太保)
看板mud_sanc
标题[闲聊] 随机迷宫的概念
时间Thu Sep 17 16:55:05 2009
听说最早被公开提出是在 1997 年的 mud workgroup 大会上。
之後有 mud (我只知道 doom 有) 依「随机迷宫」四个字的字面
意义各自解读然後将其实体化。
========================================================
随机迷宫个人认为需符合两个精神..
一、它基本上是一个迷宫,也就是走一走会遇到死路、以及有许
多的分叉路,但不管如何都要存在至少一个出口,或一个可
脱离的方式。
二、它存在着可变性。可能是周期的变动,或者是人为的触变动
等(例如踩到某机关造成迷宫变动),使得每次要脱离迷宫的
路线会随着迷宫的变动而改变。
因此假若有「迷宫产生器」这样的物件时,依我目前的能力,只
要给它迷宫的 size 则理论上我可以让它自己产生迷宫,但是产
生出来的迷宫是「固定」的。要赋予它变动性才符合随机迷宫的
基本精神。
========================================================
不过随机迷宫就目前实务上来说其实是简单的东西,我举例..
001-002-003-004-005
| | | | |
006-007-008-009-010
| | | | |
011-012-013-014-015
| | | | |
016-017-018-019-020
上面 20 个房间「经过一个程序」把部份的出口截断之後就会变
成底下的形式...
001-002-003 004-005
| | | |
006 007-008-009-010
| | |
011-012-013 014-015
| | | |
016-017 018-019 020
则假若 001 是入口,020 是出口,则要从 001 走到 020 方式
就会受限。然後「下一次」要再走时上面被截断的地方又会变
动,这时就符合了随机迷宫的定义。
这个东西好不好做呢?
「如果是我的话」,我大概有三种做法,我会固定的部份就是
房间的总数,会变动的部份就是...
一、每个房间出口的可能变动
二、迷宫的出口位置
在撰写主函数的过程中可能得用到递回(原则上我很不想用递回)
跟一些需简化的判断。
========================================================
打到这里,这东西其实不难写,而且可以当做任务区域,怪物
也可以很单纯(大概三种怪物就搞定了)。
最近线上有聊到四魂之玉,或许可以当做 NPC 版的四魂之玉合
成任务。在後圣殿时期其实随机迷宫还需要加一个定义..
三、如何有效防堵机器人轻易破解迷宫
Laechan
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 61.225.163.92
1F:推 justinj :只要是有"形体"就会破解.. 09/17 18:54
2F:→ laechan :任务专属的话就不一定罗 09/17 18:56
3F:推 hmml :应该要想办法让手动比自动更容易破解迷宫 09/19 00:57
4F:→ HighElf :我会写的话才有鬼... 09/19 04:12
5F:→ laechan :例如必须找齐一些特定职业的人帮忙 09/19 08:32