作者laechan (挥泪斩马云)
看板mud_sanc
标题Re: [wizs] 随机地图的生成
时间Thu Nov 22 06:59:12 2018
续上篇,今天会从这篇开始编辑,目标是完成第一型随机地图
的产生架构,我是认为第一型就够应付大部份的区域需求,所
以等完成并确定可跑之後,会改写为 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 来写的话甚至可以让使用
者用拖曳的方式来摆图。
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 122.117.106.224
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/mud_sanc/M.1542841155.A.B1E.html
1F:→ laechan : 目前预测一大早会被长官抓去泡茶聊选举 11/22 07:13
※ 编辑: laechan (122.117.106.224), 11/22/2018 11:28:28
2F:→ laechan : 备案就是用 textarea 来显示(它也很方便复制贴上) 11/22 17:54
3F:→ laechan : 不过这是最不得已的做法 11/22 17:54
4F:→ laechan : <pre></pre>这个标签可以将其包起来的文字排版、格 11/22 17:56
5F:→ laechan : 式,原封不动的呈现出来 <= 这个我晚上会 try try 11/22 17:57
6F:→ laechan : 刚试了一下可以, 那就没问题了, 改写为 javascript 11/22 17:58
7F:→ laechan : 的最後一块拼图 11/22 17:58