[wizs] 賽馬

看板mud_sanc (Sanctuary - 聖殿)作者 (小太保)時間15年前 (2011/03/16 16:11), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串1/1
假設有 10 匹馬, 我一般會採行的做法是, clone 出十個 心跳物件, 然後循環計算. 馬匹會有一些數值資料, 例如馬種, 馬齡, 以及一些參考 用資料(實際不存在), 例如腳力, 爆發力, 穩定度, etc.. 然後一開始會用一個 1+random(10) 為主的計算式, 跑十 匹馬的各自數值, 做為鳴槍後的各馬匹位置, 如下... 9 8 10 4 5 1 2 10 3 7 上面可以解釋為即使是弱的馬匹, 也不見得一開始就落後 , 以及強的馬匹, 也不見得一開始就領先. 然後因為起跑時的數值串為隨機, 之後的到終點前的一連 串計算結果就有了隨機依據, 這個意思就是即便同樣的十 匹馬再跑一次, 結果也不會相同. 那有一個重點, 就是「終點前」的結果也必須具有一定程 度的隨機性. 這是因為計算公式有時是很固定的, 當你給 玩家看到一些參考值時, 這些參考值必須具備一定程度的 意義─這樣玩家下注才有依據可循. 因此大部份的計算式 都是固定的, 它只會加入幾個隨機因素─但它們也是固定 存在的, 例如騎師落馬、違例、馬匹間碰撞、馬受傷、.. 但無論如何, 終點前的隨機性是必須存在的, 例如到終點 時有三匹馬距離如下... [----] <= 這裡還存在一個計算時間 | 馬1 |終 馬2 |點 馬3 |線 | 你不能說因為馬1 腳力啦,爆發力啦,... 等等的全都勝過 馬2、馬3, 所以「最後」一定是馬1 先抵達終點。 這是因為「這種事沒有絕對的」。 所以最後一定會跑一個隨機的東西出來。 現在重點是,由一個主程式去做複雜的循環管控,還不如 讓十個物件去分擔,這是我的想法,也是這程式的核心, 若是一般的程式語言大致就是如下... repeat: for(i=0;i<10;i++) call_horse(i); sleep n秒; go repeat; mud 可以做比較有趣的變化. Laechan -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 115.81.169.87
文章代碼(AID): #1DW72Vti (mud_sanc)
文章代碼(AID): #1DW72Vti (mud_sanc)