作者laechan (挥泪斩马云)
看板mud_sanc
标题Re: [wizs] 随机地图的生成
时间Thu Nov 22 11:40:00 2018
下午继续,下午会先测试一张大一点的图 9 x 8,然後就开始让它
跑分支,我预估分支的部份会用掉一整个下午、甚至一整个晚上的
时间,因为我要先决定分支的跑法、然後再确定分支程式码的细节
,这些都不难,难在 debug 的部份。
以下是 9x8 的范例,起点 0,0 终点 9,8,用来确定程式可 work
x (0,0)
|
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 (9,8)
预计分支程式写完後,会接着写第二型随机地图的产生方式,
有趣的是,往後改写为 javascript 时。第一型跟第二型都可
以用同一支包含 javascript 的 html 档来解决。
==
开始漫长且无聊的 debug =.=
先跑出地图
starts=({ ({ 0, 0 }), ..., ({ 6, 6}), ..., ({ 9, 8 }) })
然後开始跑分支
起点 ({ 9, 0 })
终点 ({ 6, 6 })
starts=({ ({ 0, 0 }), ..., ({ 6, 6}), ..., ({ 9, 8 }),
({ 9, 0 }), ({ 9, 1 }), ({ 2, 0 }), ({ 2, 1 }) })
^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^
一开始跑出来的两点是对的 我猜是有变数写错,再找 =.=
9x8 太大了,改一下,改成 .. 6x5
==
嘛,好像写出了一个不得了的东西 O.O
起点 ({ 0, 0 })
终点 ({ 6, 5 })
all_starts=({ ({ 0, 0 }), ({ 0, 1 }), ({ 0, 2 }), ({ 0, 3 }), ({ 0, 4 }),
({ 0, 5 }), ({ 1, 5 }), ({ 2, 5 }), ({ 3, 5 }), ({ 4, 5 }),
({ 5, 5 }), ({ 6, 5 }) })
x
|
x
|
x
|
x
|
x
|
x-x-x-x-x-x-x
开始跑分支..
起点 ({ 6, 4 })
终点 ({ 0, 5 })
all_starts=({ ({ 0, 0 }), ({ 0, 1 }), ({ 0, 2 }), ({ 0, 3 }),
({ 0, 4 }), ({ 0, 5 }), ({ 1, 5 }), ({ 2, 5 }), 主线区
({ 3, 5 }), ({ 4, 5 }), ({ 5, 5 }), ({ 6, 5 }),
({ 6, 4 }), ({ 5, 4 }), ({ 5, 5 }), ({ 4, 5 }),
({ 4, 4 }), ({ 4, 3 }), ({ 5, 3 }), ({ 5, 2 }),
({ 4, 2 }), ({ 4, 1 }), ({ 4, 0 }), ({ 3, 0 }),
({ 2, 0 }), ({ 1, 0 }), ({ 0, 0 }), ({ 0, 1 }), 支线区
({ 1, 1 }), ({ 2, 1 }), ({ 3, 1 }), ({ 3, 2 }),
({ 3, 3 }), ({ 3, 4 }), ({ 2, 4 }), ({ 2, 3 }),
({ 1, 3 }), ({ 0, 3 }), ({ 0, 4 }), ({ 0, 5 }) })
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-x-x-x x
| | | | | |
x x x-x mix 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
效果比我预期的还好,但这不是我要的就是了。
那同样的,以上面为基础,再让它跑一次:
起点 ({ 6, 1 })
终点 ({ 2, 0 })
all_starts=({ ({ 0, 0 }), ({ 0, 1 }), ({ 0, 2 }), ({ 0, 3 }),
({ 0, 4 }), ({ 0, 5 }), ({ 1, 5 }), ({ 2, 5 }), 主线区
({ 3, 5 }), ({ 4, 5 }), ({ 5, 5 }), ({ 6, 5 }),
({ 6, 4 }), ({ 5, 4 }), ({ 5, 5 }), ({ 4, 5 }),
({ 4, 4 }), ({ 4, 3 }), ({ 5, 3 }), ({ 5, 2 }),
({ 4, 2 }), ({ 4, 1 }), ({ 4, 0 }), ({ 3, 0 }),
({ 2, 0 }), ({ 1, 0 }), ({ 0, 0 }), ({ 0, 1 }), 第一支线区
({ 1, 1 }), ({ 2, 1 }), ({ 3, 1 }), ({ 3, 2 }),
({ 3, 3 }), ({ 3, 4 }), ({ 2, 4 }), ({ 2, 3 }),
({ 1, 3 }), ({ 0, 3 }), ({ 0, 4 }), ({ 0, 5 }),
({ 6, 1 }), ({ 5, 1 }), ({ 5, 0 }), ({ 4, 0 }), 第二支线区
({ 3, 0 }), ({ 2, 0 }) })
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-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
路径: e s w s 6e s w s 2e n e 4s 3e 2n w s w 4n 2e s w
s 2e 2s 2e n e 5s
以及最终跑出来我觉得看起来还可以的图:
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-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-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-x-x-x-x-x-x-x
https://imgur.com/avt526E.jpg
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 122.117.106.224
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/mud_sanc/M.1542858003.A.CBC.html
※ 编辑: laechan (122.117.106.224), 11/22/2018 16:39:36
1F:→ laechan : 明天大概最多把 code 稍微变更一下让它更好跑一点 11/22 17:02
2F:→ laechan : 以及加上一些本来就预计要做的东西 11/22 17:02