手机版 | 登陆 | 注册 | 留言 | 设首页 | 加收藏
当前位置: 网站首页 > 热门知识 > 文章 当前位置: 热门知识 > 文章

游戏中几种概率设计

时间:2019-11-11    点击: 次    来源:网络    作者:佚名 - 小 + 大

游戏中几种概率设计                                                                                                              

游戏中常见的4种概率设计

1、常规做法,直接配置概率,程序直接判定

2、在1的基础上,加个保底次数,当连续不发生的次数高于保底时,强制发生

3、设置基础概率,事件不发生概率翻倍

4、设置数组,将事件发生概率变成数组元素


设定预计平均发生概率为1/20(20次发生1次),模拟10w次方案1~3后得结果(方案4就不模拟了)





附上各方案的模拟代码


		
  1. Option Explicit
  2. Sub Propty1() '设定概率,直接比对
  3. Dim stat(1 To 10000, 1 To 10) As Double, i As Integer, j As Integer
  4. Dim a As Double, count As Long
  5. Randomize
  6. a = InputBox("输入成功率", "成功率", "0.05")
  7. For i = 1 To 10
  8. For j = 1 To 10000
  9. count = 1
  10. Do While Rnd() > a
  11. count = count + 1
  12. Loop
  13. stat(j, i) = count
  14. Next j
  15. Next i
  16. Sheets("直接概率").Range("A1:J10000") = stat
  17. End Sub
  18. Sub Propty2() '在1的基础上,设定保底次数
  19. Dim stat(1 To 10000, 1 To 10) As Double, i As Integer, j As Integer
  20. Dim a As Double, b As Integer, count As Long
  21. Randomize
  22. a = InputBox("输入成功率", "成功率", "0.035")
  23. b = InputBox("输入保底次数", "保底次数", "40")
  24. For i = 1 To 10
  25. For j = 1 To 10000
  26. count = 1
  27. Do While Rnd() > a And count < b
  28. count = count + 1
  29. Loop
  30. stat(j, i) = count
  31. Next j
  32. Next i
  33. Sheets("加保底").Range("A1:J10000") = stat
  34. End Sub
  35. Sub Propty3() '不成功几率翻倍
  36. Dim stat(1 To 10000, 1 To 10) As Double, i As Integer, j As Integer
  37. Dim a As Double, count As Long
  38. Randomize
  39. a = InputBox("输入成功率", "成功率", "0.0038")
  40. For i = 1 To 10
  41. For j = 1 To 10000
  42. count = 1
  43. Do While Rnd() > count * a
  44. count = count + 1
  45. Loop
  46. stat(j, i) = count
  47. Next j
  48. Next i
  49. Sheets("不成功几率翻倍").Range("A1:J10000") = stat
  50. End Sub

上一篇:【Python练习】乌龟吃鱼小游戏

下一篇:棋牌游戏展架/棋牌游戏广告图片/棋牌游戏界面/棋牌游戏海报/棋牌游戏宣传单/棋牌游戏素材/棋牌游戏背..

 别浪费都给你吧懒得弄电脑来到宁波懒得弄便利店内懒得弄 哪来的呢懒得弄老地方能力的看法卡积分换员不是卡八VB不不大好说是 时空金币是那伤口局部深V不睡觉 100是开放道具卡类风湿VB你没收到是是你
备案5589485-ICP编号  |   QQ:微信:SL49568  |  地址:北京市东城区  |  电话:186-5901-6237  |