我不确定是否可能,但我想改变选择的概率"已经完成了。我有一个像这样的代码:
({move, bomb})[math.random(2)]
我的目标是让炸弹出现或选择的次数少于“移动”。这可能吗?
答案 0 :(得分:1)
当然。可行的方法之一是
( { move, bomb } )[ math.random( 10 ) <= 7 and 1 or 2 ]
你得到70%的选择第一元素和30%选择第二元素。
如果您需要从4个元素中选择,您可以使用以下代码
local mRandom = math.random
local objects = { 'object1', 'object2', 'object3', 'object4', }
local prob = { 10, 30, 60, 100 } -- 10% for object1 20%=30%-10% for object2 30%=60%-30% for object3 and 40%=100%-60% for last object.
local mychoice
math.randomseed( os.time() )
local rand = mRandom( 100 )
for i=1, #prob do
if rand <= prob[i] then
mychoice = i
break
end
end