所以我制作这个游戏,我想放弃随机物品,这就是我以前做的事情
if(Math.random()> 0.5)//%50%几率
{//代码在这里 }
这个方法的问题是我会不断向游戏中添加越来越多的项目,所以我想创建更多的动态方式,因为每次添加一个Item我都需要重新输入整个函数...不仅要添加一个if-else语句,而且我需要更改所有if语句中的所有机会(总和应该总计为100)
任何想法?
答案 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);
}
}
然后你可以在任何需要的地方调用这个功能。