作者yhn0tgb60 (呦厚厚)
看板Flash
标题[程式] 模拟城市的电线连接判断是怎麽做的阿???
时间Fri Jul 9 17:55:47 2010
※ [本文转录自 GameDesign 看板 #1CDl4KKt ]
作者: yhn0tgb60 (呦厚厚) 看板: GameDesign
标题: [程式] 模拟城市的电线连接判断是怎麽做的阿???
时间: Fri Jul 9 17:51:14 2010
最近在研究模拟城市的一项功能
就是每个建筑物都会去判断 自己是否有电线连结到发电厂
目前我想的办法写一个寻路程式(例如 A*)
每盖一个建筑物 或是盖一个电线 或是拆一个电线
就对所有的建筑物 跑寻路程式
而电线是道路 终点是发电厂
判断建筑物 是否可以透过电线 找到发电厂
不过这个运算量很可怕...
当建筑物一多 或是电线一多
只要在哪里 一直重复 拆一个电线 或是盖一个电线
程式就跑挂了
而模拟城市在近20年前 就已经做到这个东西
模拟城市的地图并不小 而且那时候的电脑也很差
我想也许他们有更好的方法在处里这个问题 ???
想和大家讨论一下这个问题 谢谢了 ^^
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 124.109.115.30
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 124.109.115.30
1F:推 kawasumimai:如果每个建筑物都有另外的布林值储存是否连接 07/09 18:22
2F:→ kawasumimai:只要跟自己相关一层的有人的布林是Yes就一样弄成Yes 07/09 18:23
3F:→ kawasumimai:这样OK嘛? 07/09 18:23
4F:推 dsmwang:觉得在盖建物或是电线时,判断一次布林值存起来就好了 07/09 20:23
5F:→ yhn0tgb60:盖建筑物时 不会有太大的问题 07/10 00:04
6F:→ yhn0tgb60:重点是拆电线时 问题就出来了 07/10 00:05
7F:→ yhn0tgb60:怎麽知道我拆了中间某一个电线後 07/10 00:06
8F:→ yhn0tgb60:有哪些建筑物 从有接到发电厂 变成没接到发电厂 ??? 07/10 00:06
9F:→ yhn0tgb60:毕竟 电线是可以随便乱盖的 07/10 00:07
10F:→ yhn0tgb60:而建筑物接到发电厂的路 也不只一条 07/10 00:08
11F:→ yhn0tgb60:我要知道 拆了一个电线後 会对哪些建筑物产生影响 07/10 00:08
12F:→ yhn0tgb60:除了对每一个建筑物去跑 寻路程式确定是否有连到发电厂 07/10 00:09
13F:→ yhn0tgb60:是否有更好的方法 ??? 07/10 00:09
14F:→ yhn0tgb60:相对的 加盖电线时 也会有相对的问题 07/10 00:10
15F:推 terrylchen:用一个跟整个地图一样大的二维阵列来储存每一个点的布 07/10 01:23
16F:→ terrylchen:林值,这样不知道ok不ok... 07/10 01:24
17F:→ terrylchen:不过检查有没有连线似乎很麻烦... 07/10 01:25
18F:推 scars:你的起点跟终点似乎弄反了 从电厂起始跑BFS试试 07/10 07:21