情況:模擬環境中有幾個實體,它具有稱爲「滴答」的人造時間概念,它與實時無關。每個實體輪流移動,但有些實體比其他實體更快。這通過延遲表示,以蜱形式表示。因此,實體A可能有10的延遲,和B 25在這種情況下,輪候次序會去:支持最終幻想ATB風格隊列的數據結構? (延遲隊列)
A A B A A
我不知道用什麼樣的數據結構。起初我會自動想到「優先排隊」,但延誤與「當前時間」有關,這使事情變得複雜。此外,將會有更多延遲的實體,並且不能不肯定該計劃將運行數百萬次。當延遲本身保持相對較小並且不增加時,內部計數器越來越高,似乎很愚蠢。
那麼你會如何解決這個問題?
如果不是通過排序堆由「時間在此實體將未來採取行動」,「等待時間」你爲了它,那麼你不必遞減「等待時間」每個實體的。 – 2010-03-13 04:51:16
當你計數時,如果超過Int或Int64的限制(如果你的戰鬥長時間運行),你可能不得不考慮滾動。 – vfilby 2010-03-13 05:02:16
我的意思是直到下一個動作的時間,但是等待的時間少於打字。 – BeWarned 2010-03-13 05:07:29