• 一个方法用js生成随机双色球、大乐透


     代码如下:

    1. <!DOCTYPE html>
    2. <html lang="en">
    3. <head>
    4. <meta charset="UTF-8">
    5. <meta name="viewport" content="width=device-width, initial-scale=1.0">
    6. <title>Document</title>
    7. <style>
    8. #crateNum {
    9. display: flex;
    10. justify-content: center;
    11. }
    12. #ssqStyle,
    13. #dltStyle {
    14. border: 1px solid #ccc;
    15. padding: 10px;
    16. background: rgba(0, 0, 0, .5);
    17. }
    18. #ssqStyle>p,
    19. #dltStyle>p {
    20. font-size: 30px;
    21. text-align: center;
    22. font-weight: bold;
    23. }
    24. #ssqLIst,#dltList{
    25. height: 300px;
    26. padding: 50px;
    27. box-sizing: border-box;
    28. text-align: center;
    29. color: #fff;
    30. }
    31. </style>
    32. </head>
    33. <body>
    34. <div id="crateNum">
    35. <div id="ssqStyle">
    36. <p>双色球</p>
    37. <button onclick="creatNum('ssq',1)">随机生成1</button>
    38. <button onclick="creatNum('ssq',5)">随机生成5</button>
    39. <button onclick="creatNum('ssq',10)">随机生成10</button>
    40. <hr>
    41. <ul id="ssqLIst">
    42. </ul>
    43. </div>
    44. <div id="dltStyle">
    45. <p>大乐透</p>
    46. <button onclick="creatNum('dlt',1)">随机生成1</button>
    47. <button onclick="creatNum('dlt',5)">随机生成5</button>
    48. <button onclick="creatNum('dlt',10)">随机生成10</button>
    49. <hr>
    50. <ul id="dltList">
    51. </ul>
    52. </div>
    53. </div>
    54. </body>
    55. <script>
    56. //定义红篮球数组
    57. let ssqArr = [], dltArr = [];
    58. //参数说明
    59. // classify:要产生双色球数据还是大乐透数据,因为用的一个方法,所以要区分一下
    60. // ssq:双色球;
    61. // dlt:大乐透
    62. // num:产生多少组
    63. function creatNum(classify, num) {
    64. // 定义前后区个数
    65. let qq = 0, //前区个数--红球数量
    66. hq = 0, //后区个数--篮球数量
    67. qqScope = 0, //前区每个球的数值范围---双色球是1-33,大乐透是1-35
    68. hqScope = 0; //后区每个球的数值范围---双色球是1-16,大乐透是1-12
    69. // 判断时ssq还是dlt
    70. if (classify == 'ssq') {
    71. this.ssqArr = []; //将双色球数据列表清空(避免多次点击数据叠加)
    72. qq = 6; //双色球的前区(红球)个数为6
    73. hq = 1; //双色球的后区(蓝球)个数为1
    74. qqScope = 33; //双色球前区(红球)数值范围是1-33
    75. hqScope = 16; //双色球后区(蓝球)数值范围是1-16
    76. } else if (classify == 'dlt') {
    77. this.dltArr = []//将大乐透数据列表清空(避免多次点击数据叠加)
    78. qq = 5; //大乐透的前区(红球)个数为5
    79. hq = 2; //大乐透的后区(蓝球)个数为2
    80. qqScope = 35; //大乐透前区(红球)数值范围是1-35
    81. hqScope = 12; //大乐透后区(蓝球)数值范围是1-12
    82. }
    83. // 外层循环表示需要产生多少组随机数字
    84. for (let i = 0; i < num; i++) {
    85. //定义前后区(红蓝球)数组
    86. let redBall = [];
    87. let blueBall = [];
    88. let blueBallNum = '';
    89. //获取一组前区(红球)数据
    90. for (let j = 0; j < qq; j++) {
    91. let redBallNum = this.random(1, qqScope);
    92. //位数补齐--0-9不足两位的在前面补“0
    93. redBallNum = redBallNum.toString().padStart(2, "0");
    94. //判重添加
    95. //如果不存在(false),就添加
    96. if (redBall.indexOf(redBallNum) == -1) {
    97. redBall.push(redBallNum);
    98. } else {
    99. //反之j--重新循环
    100. j--;
    101. }
    102. }
    103. //前区数字从大到小排序
    104. redBall.sort((a, b) => {
    105. return a - b
    106. })
    107. //获取一组后区(蓝球)数据
    108. for (let k = 0; k < hq; k++) {
    109. let blueBallNum = this.random(1, hqScope);
    110. //位数补齐--0-9不足两位的在前面补“0
    111. blueBallNum = blueBallNum.toString().padStart(2, "0");
    112. //判重添加
    113. //如果不存在(false),就添加
    114. if (blueBall.indexOf(blueBallNum) == -1) {
    115. blueBall.push(blueBallNum);
    116. } else {
    117. //反之k--重新循环
    118. k--;
    119. }
    120. }
    121. //后区数字从大到小排序
    122. blueBall.sort((a, b) => {
    123. return a - b
    124. })
    125. if (classify == 'ssq') {
    126. //合并添加到ssqArr(双色球数据列表)中
    127. this.ssqArr[i] = (redBall.toString() + "-----" + blueBall.toString());
    128. } else if (classify == 'dlt') {
    129. //合并添加到dltArr(大乐透数据列表)中
    130. this.dltArr[i] = (redBall.toString() + "-----" + blueBall.toString());
    131. }
    132. }
    133. //操作标签部分
    134. // 获取ul标签,方便后面往里填数据
    135. let ssqLIst = document.querySelector('#ssqLIst')
    136. let dltList = document.querySelector('#dltList')
    137. // 判断选的随机产生双色球数据还是大乐透数据
    138. if (classify == 'ssq') {
    139. // 清空原先的内容
    140. ssqLIst.innerHTML = ''
    141. //将数据循环添加到dom中
    142. for (let s = 0; s < this.ssqArr.length; s++) {
    143. var li = document.createElement("li");
    144. li.innerText = this.ssqArr[s];
    145. ssqLIst.appendChild(li);
    146. }
    147. } else if (classify == 'dlt') {
    148. // 清空原先的内容
    149. dltList.innerHTML = ''
    150. for (let d = 0; d < this.dltArr.length; d++) {
    151. var li = document.createElement("li");
    152. li.innerText = this.dltArr[d];
    153. dltList.appendChild(li);
    154. }
    155. }
    156. }
    157. //获取随机数
    158. function random(min, max) {
    159. //Math.random()获取0-1中的随机数
    160. //随机数需要取整parseInt(),向下取整 Math.floor()
    161. return parseInt(Math.random() * (max - min) + min);
    162. }
    163. </script>
    164. </html>

    效果如下:

    没咋写过原生,可能里面的方法有待优化。

  • 相关阅读:
    《湖科大教书匠计算机网络》学习笔记总目录+思维导图
    dotnet平台Http消息处理者工厂
    Python 对 split函数的理解
    腾讯位置服务
    invalid use of incomplete type ‘class Ui::xxx‘
    什么是关系选择器
    LeetCode_动态规划_中等_97.交错字符串
    李宏毅机器学习笔记(2016年的课程):Support Vector Machine (SVM)
    【ubuntu-nginx安装】
    论文学习——FALL-E:GAUDIO FOLEY SYNTHESIS SYSTEM
  • 原文地址:https://blog.csdn.net/qq_45811413/article/details/132818442