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

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

使用到了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,表示没有中奖。

相关文章
|
16天前
|
JavaScript
原生js炫酷随机抽奖中奖效果代码
原生js随机抽奖是一个炫酷的根据数据随机抽奖的代码,该网页可进行随机抽取一个数据,页面动画高科技、炫酷感觉的随机抽奖效果,简单好用,欢迎下载!
33 3
原生js炫酷随机抽奖中奖效果代码
|
5月前
|
图形学 开发者 容器
【Unity实战】按物品掉落率,随机掉落战利品物品系统(附项目源码)
【Unity实战】按物品掉落率,随机掉落战利品物品系统(附项目源码)
132 0
|
6月前
|
前端开发
1、模拟抽奖
1、模拟抽奖
29 1
|
6月前
|
JavaScript
|
6月前
uniapp九宫格概率抽奖功能
uniapp九宫格概率抽奖功能
63 0
|
6月前
|
小程序
html+css+js实现带有转盘的抽奖小程序
html+css+js实现带有转盘的抽奖小程序
109 0
|
11月前
|
图形学
unity小游戏——得分高低的判定
unity小游戏——得分高低的判定
|
6月前
|
算法 开发者
一个超级好用的中奖概率控制器,可以应用于你的游戏中
一个超级好用的中奖概率控制器,可以应用于你的游戏中
54 0
do while实现九宫格概率抽奖
do while实现九宫格概率抽奖
算法练习Day43|● 518. 零钱兑换 II ● 377. 组合总和 Ⅳ
算法练习Day43|● 518. 零钱兑换 II ● 377. 组合总和 Ⅳ