[閒聊] 多節電車的實作方式

作者: laechan (揮淚斬馬雲)   2016-09-19 13:59:30
概念就是,一列電車可能有 n 節車廂,因此當它停靠在月台邊時,
乘客可從每一個車廂的進出口上下車。
那麼,該如何透過現行 times_check.c 及 boat.c 設計來實作呢?
很簡單,首先弄出 n 個 boat,每 1 個 boat 代表一節車廂,然後
設定相同的運作周期,這樣就會一起關門→啟動→停靠→開門→循環
。然後,再於每一艘 boat 設定相連通的出口即可。
撰寫一個車廂繼承樣本,再讓每一個車廂繼承即可。
它的最大優點,就是每一個車廂及每一個停靠月台,都可以聽到廣播
,而且車廂易於增加及縮減,並做出各種設定。
缺點就是,times_check 在同一時間得驅動 n 個車廂。
那另一個做法就是「只驅動火車頭」的部份,然後想辦法讓它模擬出
n 個車廂也一起驅動的效果,例如設定廣播的範圍到全體車廂,停靠
時亦模擬有多個進出口可進入各自的車廂等,這個較難,一般比較適
合像是郵輪火艦艇這一類的大型船隻(由多個房間組成),因為通常上
下船的地方只有一個。
所以電車我會傾向採用前者的做法。依目前的 times_check 設計來說
,大概十幾個都還在可接受的範圍。
LAechan

Links booklink

Contact Us: admin [ a t ] ucptt.com