[程式] 模擬城市的電線連接判斷是怎麼做的阿???

看板C_and_CPP (C/C++)作者 (呦厚厚)時間15年前 (2010/07/09 17:56), 編輯推噓2(2021)
留言23則, 6人參與, 最新討論串1/2 (看更多)
※ [本文轉錄自 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

07/09 18:05, , 1F
沒玩過這個遊戲orz
07/09 18:05, 1F

07/09 19:07, , 2F
A*還有很多衍生的演算法,例如bidirectional A*之類的
07/09 19:07, 2F

07/09 19:08, , 3F
所以應該還有很多應用在地圖上面的演算法,可能要google一下
07/09 19:08, 3F

07/09 19:30, , 4F
"SimCity Source Code Is Now Open"
07/09 19:30, 4F

07/09 19:30, , 5F

07/09 19:31, , 6F
或許可以直接去看他們是怎麼做的 :D
07/09 19:31, 6F

07/09 21:45, , 7F
這不就在電力連線時就把狀態設好比較省事嗎
07/09 21:45, 7F

07/09 23:48, , 8F
是的 簡單說 連到發電廠的屋子 有通電
07/09 23:48, 8F

07/09 23:48, , 9F
我連到有跟發電廠連線的屋子 等於 我也有電
07/09 23:48, 9F

07/09 23:49, , 10F
我連到第N-1個 有連線的屋子 等於 我也有電
07/09 23:49, 10F

07/10 00:14, , 11F
蓋建築物時的判斷是否有接到發電廠 不會有太大的問題
07/10 00:14, 11F

07/10 00:14, , 12F
重點是拆電線時 問題就出來了
07/10 00:14, 12F

07/10 00:14, , 13F
怎麼知道我拆了中間某一個電線後
07/10 00:14, 13F

07/10 00:14, , 14F
有哪些建築物 從有接到發電廠 變成沒接到發電廠 ???
07/10 00:14, 14F

07/10 00:14, , 15F
畢竟 電線是可以隨便亂蓋的
07/10 00:14, 15F

07/10 00:15, , 16F
而建築物接到發電廠的路 也不只一條
07/10 00:15, 16F

07/10 00:15, , 17F
我要知道 拆了一個電線後 會對哪些建築物產生影響
07/10 00:15, 17F

07/10 00:15, , 18F
除了對每一個建築物去跑 尋路程式確定是否有連到發電廠
07/10 00:15, 18F

07/10 00:15, , 19F
是否有更好的方法 ???
07/10 00:15, 19F

07/10 00:16, , 20F
相對的 加蓋電線時 也會有相同的問題
07/10 00:16, 20F

07/10 10:17, , 21F
這些東西在內部資料結構如果有表達,就很簡單..例如用xml..
07/10 10:17, 21F

07/10 11:10, , 22F
內部的資料結構要存什麼 ???
07/10 11:10, 22F

07/10 11:59, , 23F
存線路,供應電力的城市. 內部資料當然是因應遊戲規則改變.
07/10 11:59, 23F
文章代碼(AID): #1CDl9A9J (C_and_CPP)
文章代碼(AID): #1CDl9A9J (C_and_CPP)