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

楼主: laechan (挥泪斩马云)   2018-11-22 11:40:00
下午继续,下午会先测试一张大一点的图 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

Links booklink

Contact Us: admin [ a t ] ucptt.com