Re: [wizs] 随机地图的生成

楼主: laechan (挥泪斩马云)   2018-11-22 06:59:12
续上篇,今天会从这篇开始编辑,目标是完成第一型随机地图
的产生架构,我是认为第一型就够应付大部份的区域需求,所
以等完成并确定可跑之后,会改写为 javascript 并分享出来
,希望可以成为让玩家应征临时工的方便工具,我有个区域构
想希望是由玩家来协助地图供应的部份。
(第二型则可以由改写第一型来完成,主架构都是类似的)
我这几天主要是在想怎么在网页上呈现如同在 sanc 里头的结
果,毕竟 document.write 出来的东西要排版并不容易,不过
我大致有拟一个备案、以及我印象中似乎有某个东西有支援,
那就可以等改写时再来 try。
==
我改写了之前用来产生随机地图的函数,并把它放到 wiz 可
用的指令里头,以下是最近一次跑出来的结果:
> run_map
// 由程式所产生的从 (0,0) 到 (4,0) 的路径点
starts=({ ({ 0, 0 }), ({ 0, 1 }), ({ 0, 2 }), ({ 0, 3 }),
({ 1, 3 }), ({ 1, 2 }), ({ 2, 2 }), ({ 2, 3 }),
({ 3, 3 }), ({ 4, 3 }), ({ 4, 2 }), ({ 4, 1 }),
({ 3, 1 }), ({ 2, 1 }), ({ 1, 1 }), ({ 1, 0 }),
({ 2, 0 }), ({ 3, 0 }), ({ 4, 0 }) })
// 依据上面的东西所产生的路径图
x x-x-x-x
| |
x x-x-x-x
| |
x x-x x
| | | |
x-x x-x-x
再跑个几次,以下是产生的另两条路径
> run_map
x x
| |
x x
| |
x x-x x
| | | |
x-x-x x-x
> run_map
x x-x-x
| |
x x-x x-x
| | | |
x x-x-x x
| |
x-x-x-x-x
这里先说明一个简易产生大图的做法,比方根据上面,我们产生
了三张图
第1张图 第2张图 第3张图
x x-x-x-x x x x x-x-x
| | | | | |
x x-x-x-x x x x x-x x-x
| | | | | | | |
x x-x x x x-x x x x-x-x x
| | | | | | | | | |
x-x x-x-x x-x-x x-x x-x-x-x-x
这时候在相邻的图之间随意加 - ,以下是两个范例
第1张图 第2张图 第3张图
x x-x-x-x-x x-x x-x-x
| | | | | |
x x-x-x-x x x x x-x x-x
| | | | | | | |
x x-x x x x-x x x x-x-x x
| | | | | | | | | |
x-x x-x-x x-x-x x-x x-x-x-x-x
第1张图 第2张图 第3张图
x x-x-x-x x x x x-x-x
| | | | | |
x x-x-x-x-x x x x-x x-x
| | | | | | | |
x x-x x x x-x x-x x-x-x x
| | | | | | | | | |
x-x x-x-x x-x-x x-x x-x-x-x-x
或是我们也可以这样做:
第1张图
x x-x-x-x
| |
x x-x-x-x
| |
x x-x x
| | | |
x-x x-x-x
|
x x-x-x x x
| | | |
x x-x x-x x x
| | | | | |
x x-x-x x x x-x x
| | | | | |
x-x-x-x-x-x-x-x x-x
第3张图 第2张图
也就是说,比方我们要产生一张 16 x 12 的大图,那我们可以
产生 12 张 4x3 的小图,再把这些小图依以下的排法:
4 +4 +4 +4 = 16, 底下 3+3+3+3 = 12
小 小 小 小
小 小 小 小
小 小 小 小
小 小 小 小
然后手动设定一下 - 或 | 的串接路线,就能变成一张大图,
而且附带的好处是,在起终点之间的路径以外的都是分支。
这部份依靠程式去跑是办得到的,还可以让操作者自由决定每
张小图的摆放位置,以 javascript 来写的话甚至可以让使用
者用拖曳的方式来摆图。

Links booklink

Contact Us: admin [ a t ] ucptt.com