js写一个根据等级提升让获得的概率提升例如下面等级一56获得白色25获得绿色10获得蓝色5获得紫色3获得黄色1获得红色等级二32获得白色30获得绿色20获得蓝色10获得紫色6获得黄色2获得红色
此处提供一种实现方式:
// 定义等级对应概率表 const probabilityTable = [ { white: 0.56, green: 0.25, blue: 0.1, purple: 0.05, yellow: 0.03, red: 0.01 }, { white: 0.32, green: 0.3, blue: 0.2, purple: 0.1, yellow: 0.06, red: 0.02 } ];
// 根据等级提升获取概率表 function getProbabilityTable(level) { if (level < 1 || level > probabilityTable.length) { throw new Error('Invalid level'); } return probabilityTable[level - 1]; }
// 根据概率表获取随机道具 function getPropByProbability(probabilityTable) { const randomNum = Math.random(); let currentProbability = 0; for (const prop in probabilityTable) { currentProbability += probabilityTable[prop]; if (randomNum <= currentProbability) { return prop; } } }
// 测试 console.log(getPropByProbability(getProbabilityTable(1))); // 随机一个等级一的道具 console.log(getPropByProbability(getProbabilityTable(2))); // 随机一个等级二的道具
原文地址: https://www.cveoy.top/t/topic/bRd5 著作权归作者所有。请勿转载和采集!