根据机会丢弃随机项目

时间:2014-03-15 18:01:24

标签: math random

所以我制作这个游戏,我想放弃随机物品,这就是我以前做的事情

if(Math.random()> 0.5)//%50%几率

{//代码在这里 }

这个方法的问题是我会不断向游戏中添加越来越多的项目,所以我想创建更多的动态方式,因为每次添加一个Item我都需要重新输入整个函数...不仅要添加一个if-else语句,而且我需要更改所有if语句中的所有机会(总和应该总计为100)

任何想法?

2 个答案:

答案 0 :(得分:0)

您可以使用第一个随机数来确定是否丢弃了一个项目,使用第二个随机数来确定丢弃的价值。

// Drop occurred
if(Math.random() > 0.5)
{    
  var secondRandom = Math.Random();
  //something super valuable
  if(secondRandom  > 0.95)
  { ...  }

  //something less valuable
  else if(secondRandom  > 0.50)
  { ...  } 

  //least valuable
  else 
  { ...  }
}

答案 1 :(得分:0)

如果我正确理解了您的问题,那么您尝试将大量项目添加到数组中,并可能稍后删除它们。也许尝试编写一个名为“randomDrop”的函数,该函数接受包含项目的数组,可能丢弃的项目的索引以及丢弃它的概率。

例如,在伪代码中,

define randomDrop(myItems, itemIndex, dropProbability) {
    if ( Math.random() < dropProbability ) {
        myItems.remove(itemIndex);
    }
}

然后你可以在任何需要的地方调用这个功能。