作者cowbaying (你在那個世界好嗎)
看板GameDesign
標題Re: [請益] 想請問一些機率的演算方式
時間Sat May 29 13:29:32 2010
首先我們設定有
1.物品A(掉落率10%)
2.物品B(掉落率30%)
3.物品C(掉落率60%) 總共100%
我們先設定取1~100 的亂數
概念上假如我們要讓物品A 的掉落機率為10%
那麼我們可以當亂數值為1~10 時 讓物品掉落
同理
當亂數值為11~40 時 物品B 會掉落
當亂數值為41~100 時 物品C 會掉落
如果覺得函式庫提供的亂數系統不夠亂 可以自己寫個公用函數
這裡亂數值取1~100 是方便我們自己理解
如果你需要小數位的機率
可以把亂數值加大
亂數最大值100 準確到1%
亂數最大值1000 準確到0.1% 以此類推
※ 引述《rabbithenry (歡迎光臨Wiiholic.com)》之銘言:
: 最近初涉獵遊戲程式開發,想寫一個撿金幣的遊戲,就是天上會隨機出現各種不同價值的
: 金幣,然後操作下面的人左右移動來撿錢。
: 想請問,這類型的遊戲,想要讓掉落的物品根據一定的機率掉落,應該要怎麼做?我想讓
: 數個不同分數的物品依照分數大小,分數越大掉落的機率越小,但是希望分數大的物品不
: 要發生連續掉落的狀況,也希望不要太久都沒有掉落半個高分的,讓總分能夠控制在大約
: 一個數字內。
: 我目前的作法只是做一個random的數字,然後不同範圍代表不同的物品,不過這就產生相
: 同機率下,要決定掉落哪個物品的問題,而且這樣也沒辦法控制大約的總分。
: 想請問各位,這種遊戲程式掉落物品的機率一般都是怎樣去計算它的公式呢?
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 59.127.242.3
→ Splash5:個人也是用類似方法 不過是用2^n - 1當最大值 05/29 13:39
推 rabbithenry:我目前是類似這樣作法,不過就是你說到亂數不夠亂的問 05/30 13:15
→ rabbithenry:題... 謝謝你的意見 我試著寫自己的亂數函數好了 05/30 13:16
→ cowbaying:基本上系統提供的亂數很接近常態分部 所以才會建議 05/30 14:28
→ cowbaying:加個陣列 先亂數取出陣列值 然後再取一次亂數 05/30 14:28
→ cowbaying:或者亂數種子設多一點 05/30 20:47
→ Splash5:不過亂數種子要記一下 不然debug會很頭痛XD 05/31 03:29
→ rabbithenry:所謂陣列是要做個亂數表然後再用查表的方式取最後值嗎 05/31 17:10
→ cowbaying:恩 06/01 13:15