在 corona SDK 中更改选择的概率是否可能?

我不确定是否可能,但我想改变完成何种“选择”的概率。我的代码类似于:

({move, bomb})[math.random(2)]

我的目标是“炸弹”出现或被选择的次数比“移动”少。这可能吗?

点赞
用户7026995
用户7026995

当然可以。其中一种方法是

( { 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%的概率选择object1,20%=30%-10%的概率选择object2,30%=60%-30%的概率选择object3,40%=100%-60%的概率选择最后一个对象。

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
2017-06-21 12:29:31