实现九宫格概率抽奖(与往常不同的方法哦)

简介: 实现九宫格概率抽奖(与往常不同的方法哦)

使用到了do-while的方法

function lottery() {  
  // 九宫格中奖概率  
  const probabilities = [10, 20, 30, 40, 50, 40, 30, 20, 10];  
  // 总概率值  
  const totalProbability = probabilities.reduce((sum, probability) => sum + probability, 0);  
  // 当前剩余概率值  
  let currentProbability = totalProbability;  
  // 中奖的格子索引  
  let winnerIndex = -1;  
  do {  
    // 在九宫格中随机选择一个格子  
    winnerIndex = Math.floor(Math.random() * probabilities.length);  
    // 检查当前概率是否大于 0  
    if (probabilities[winnerIndex] > 0) {  
      // 中奖,更新剩余概率值和选中格子的概率值  
      currentProbability -= probabilities[winnerIndex];  
      probabilities[winnerIndex] = 0;  
      // 检查是否有其他格子的概率大于 0,如果有则继续循环,否则结束循环  
      if (probabilities.some(probability => probability > 0)) {  
        continue;  
      } else {  
        break;  
      }  
    }  
  } while (currentProbability > 0);  
  // 返回中奖的格子索引  
  return winnerIndex;  
}

使用方法:调用 lottery() 函数即可获得中奖的格子索引。如果返回值为 -1,表示没有中奖。

相关文章
|
2月前
|
JavaScript
原生js炫酷随机抽奖中奖效果代码
原生js随机抽奖是一个炫酷的根据数据随机抽奖的代码,该网页可进行随机抽取一个数据,页面动画高科技、炫酷感觉的随机抽奖效果,简单好用,欢迎下载!
50 3
|
8月前
uniapp九宫格概率抽奖功能
uniapp九宫格概率抽奖功能
82 0
|
8月前
|
小程序
html+css+js实现带有转盘的抽奖小程序
html+css+js实现带有转盘的抽奖小程序
136 0
|
8月前
|
算法 开发者
一个超级好用的中奖概率控制器,可以应用于你的游戏中
一个超级好用的中奖概率控制器,可以应用于你的游戏中
63 0
do while实现九宫格概率抽奖
do while实现九宫格概率抽奖
|
JavaScript
Vue 3 实现九宫格概率抽奖
Vue 3 实现九宫格概率抽奖
226 0
|
JavaScript 索引
vue3按照概率实现九宫格抽奖
vue3按照概率实现九宫格抽奖
201 0
|
JavaScript
九宫格抽奖(原生js)
九宫格抽奖(原生js)
98 0
|
小程序
抽奖活动小程序之随机选取中奖用户功能实现
抽奖活动小程序之随机选取中奖用户功能实现
抽奖活动小程序之随机选取中奖用户功能实现