2004-01-07

隨機功能淺談

隨機功能淺談
「咦?幹嗎每次過了這個彎,都見著那輛列車? 幹嗎每次來到這個車站,總是只得小貓三數隻?」
各位讀者有沒有發覺每次開車上路時,看見的東西總是重重複複?雖然這和現實中的司機工作沒有兩樣,但是咱們只是玩玩而已,用不著模擬得那麼全面吧。究竟怎樣在千篇一律的路線中添些變數,好讓司機不致大打呵欠?
相信喜好電腦編程的讀者都明白, 大多較高階的編程語言都內置了隨機抽籤的功能,如Pascal的Randomize,random()等。其實在bve 語言中也一樣。
CSV:$Rnd(a;b)
RW:-沒有-
以上就是bve的隨機語句了,結果數字會大於a,小於b。 a和b可以是任何整數,不像一些語言只限制在0至1間。
例1: $Rnd(1;10) 可能是:1-10任一
例2: $Rnd(21;29) 可能是:21-29任一
例3: 2$Rnd(1;9) 可能是:21-29任一 (字串連接,2+$Rnd())
那這功能怎樣令路線「風雲變色」?

以香港高鐵東西線為例. 下列是物件0至5的宣告段:
.FreeObj(0) HKHR\HR50\HR50-TC.csv
.FreeObj(1) HKHR\HR50\HR50-PM.csv
.FreeObj(2) HKHR\HR50\HR50-T.csv
.FreeObj(3) HKHR\HR100\HR100-TC.csv
.FreeObj(4) HKHR\HR100\HR100-PM.csv
.FreeObj(5) HKHR\HR100\HR100-T.csv
可見物件0-2是hr50型列車, 3-5是hr100型列車.
重新排位:
.FreeObj(0) HKHR\HR50\HR50-TC.csv
.FreeObj(1) HKHR\HR100\HR100-TC.csv
.FreeObj(2) HKHR\HR50\HR50-PM.csv
.FreeObj(3) HKHR\HR100\HR100-PM.csv
.FreeObj(4) HKHR\HR50\HR50-T.csv
.FreeObj(5) HKHR\HR100\HR100-T.csv
這是路線2525至2638米的原本內容:
2525,.Freeobj 1;0;0;0;0,,,,,,,,
2544,.Freeobj 1;1;0;0;0,,,,,,,,
2563,.Freeobj 1;2;0;0;0,,,,,,,,
2582,.Freeobj 1;2;0;0;0,,,,,,,,
2619,.Freeobj 1;1;0;0;180,,,,,,,,
2638,.Freeobj 1;0;0;0;180,,,,,,,,
(每個車廂長20米)
我在這裡做些手腳:
2525,.Freeobj 1;$rnd(0;1);0;0;0,,,,,,,,
2544,.Freeobj 1;$rnd(2;3);0;0;0,,,,,,,,
2563,.Freeobj 1;$rnd(4;5);0;0;0,,,,,,,,
2582,.Freeobj 1;2;0;0;0,,,,,,,,
2619,.Freeobj 1;1;0;0;180,,,,,,,,
2638,.Freeobj 1;0;0;0;180,,,,,,,,
首3列車廂便會隨意改變, 可以是hr50或hr100型的.
再看另一段物件宣告:
.FreeObj(19) HKHR\PeopleL.csv
.FreeObj(20) HKHR\PeopleL1.csv
.FreeObj(21) HKHR\PeopleL2.csv
.FreeObj(22) HKHR\PeopleR.csv
.FreeObj(23) HKHR\PeopleR1.csv
.FreeObj(24) HKHR\PeopleR2.csv
這是路線2825至2900米的部分原本內容:
2825,(略).FreeObj 0;24;-1;0;0,,,
2850,(略).FreeObj 0;23;-1;0;0,,,,
2875,(略).FreeObj 0;23;-1;0;0,,,,
2900,(略).FreeObj 0;22;-1;0;0,,,
我在這裡也做些手腳:
28$rnd(25;30),.FreeObj 0;$rnd(19;24);- $rnd(0;1);0;0,,,
285$rnd(0;5),.FreeObj 0;$rnd(19;24);- $rnd(0;1);0;0,,,,
28$rnd(75;80),.FreeObj 0;$rnd(19;24);- $rnd(0;1);0;0,,,,
290$rnd(0;5),.FreeObj 0;$rnd(19;24);- $rnd(0;1);0;0,,,
聰明的諸位可否告訴我, 這裡增加了甚麼變數?
因時間關係, 就此停筆. 這裡講的只是技巧,沒有各位的創意, 也不過是技巧而已. 謝謝觀賞,歡迎您的意見.

沒有留言: