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

news2024/11/19 23:20:02

 代码如下:

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        #crateNum {
            display: flex;
            justify-content: center;
        }

        #ssqStyle,
        #dltStyle {
            border: 1px solid #ccc;
            padding: 10px;
            background: rgba(0, 0, 0, .5);
        }

        #ssqStyle>p,
        #dltStyle>p {
            font-size: 30px;
            text-align: center;
            font-weight: bold;
        }
        #ssqLIst,#dltList{
            height: 300px;
            padding: 50px;
            box-sizing: border-box;
            text-align: center;
            color: #fff;
        }
    </style>
</head>

<body>
    <div id="crateNum">
        <div id="ssqStyle">
            <p>双色球</p>
            <button onclick="creatNum('ssq',1)">随机生成1组</button>
            <button onclick="creatNum('ssq',5)">随机生成5组</button>
            <button onclick="creatNum('ssq',10)">随机生成10组</button>
            <hr>
            <ul id="ssqLIst">
            </ul>
        </div>
        <div id="dltStyle">
            <p>大乐透</p>
            <button onclick="creatNum('dlt',1)">随机生成1组</button>
            <button onclick="creatNum('dlt',5)">随机生成5组</button>
            <button onclick="creatNum('dlt',10)">随机生成10组</button>
            <hr>
            <ul id="dltList">
            </ul>
        </div>
    </div>
</body>
<script>
    //定义红篮球数组
    let ssqArr = [], dltArr = [];

    //参数说明
    // classify:要产生双色球数据还是大乐透数据,因为用的一个方法,所以要区分一下
    //          ssq:双色球;
    //          dlt:大乐透
    // num:产生多少组
    function creatNum(classify, num) {
        // 定义前后区个数
        let qq = 0, //前区个数--红球数量
            hq = 0, //后区个数--篮球数量
            qqScope = 0, //前区每个球的数值范围---双色球是1-33,大乐透是1-35
            hqScope = 0; //后区每个球的数值范围---双色球是1-16,大乐透是1-12
        // 判断时ssq还是dlt
        if (classify == 'ssq') {
            this.ssqArr = []; //将双色球数据列表清空(避免多次点击数据叠加)
            qq = 6; //双色球的前区(红球)个数为6个
            hq = 1; //双色球的后区(蓝球)个数为1个
            qqScope = 33; //双色球前区(红球)数值范围是1-33
            hqScope = 16; //双色球后区(蓝球)数值范围是1-16
        } else if (classify == 'dlt') {
            this.dltArr = []//将大乐透数据列表清空(避免多次点击数据叠加)
            qq = 5; //大乐透的前区(红球)个数为5个
            hq = 2; //大乐透的后区(蓝球)个数为2个
            qqScope = 35; //大乐透前区(红球)数值范围是1-35
            hqScope = 12; //大乐透后区(蓝球)数值范围是1-12
        }

        // 外层循环表示需要产生多少组随机数字
        for (let i = 0; i < num; i++) {
            //定义前后区(红蓝球)数组
            let redBall = [];
            let blueBall = [];
            let blueBallNum = '';
            //获取一组前区(红球)数据
            for (let j = 0; j < qq; j++) {
                let redBallNum = this.random(1, qqScope);
                //位数补齐--0-9不足两位的在前面补“0”
                redBallNum = redBallNum.toString().padStart(2, "0");
                //判重添加
                //如果不存在(false),就添加
                if (redBall.indexOf(redBallNum) == -1) {
                    redBall.push(redBallNum);
                } else {
                    //反之j--重新循环
                    j--;
                }
            }
            //前区数字从大到小排序
            redBall.sort((a, b) => {
                return a - b
            })
            //获取一组后区(蓝球)数据
            for (let k = 0; k < hq; k++) {
                let blueBallNum = this.random(1, hqScope);
                //位数补齐--0-9不足两位的在前面补“0”
                blueBallNum = blueBallNum.toString().padStart(2, "0");
                //判重添加
                //如果不存在(false),就添加
                if (blueBall.indexOf(blueBallNum) == -1) {
                    blueBall.push(blueBallNum);
                } else {
                    //反之k--重新循环
                    k--;
                }
            }
            //后区数字从大到小排序
            blueBall.sort((a, b) => {
                return a - b
            })
            if (classify == 'ssq') {
                //合并添加到ssqArr(双色球数据列表)中
                this.ssqArr[i] = (redBall.toString() + "-----" + blueBall.toString());
            } else if (classify == 'dlt') {
                //合并添加到dltArr(大乐透数据列表)中
                this.dltArr[i] = (redBall.toString() + "-----" + blueBall.toString());
            }
        }

        //操作标签部分

        // 获取ul标签,方便后面往里填数据
        let ssqLIst = document.querySelector('#ssqLIst')
        let dltList = document.querySelector('#dltList')

        // 判断选的随机产生双色球数据还是大乐透数据
        if (classify == 'ssq') {
            // 清空原先的内容
            ssqLIst.innerHTML = ''
            //将数据循环添加到dom中
            for (let s = 0; s < this.ssqArr.length; s++) {
                var li = document.createElement("li");
                li.innerText = this.ssqArr[s];
                ssqLIst.appendChild(li);
            }
        } else if (classify == 'dlt') {
            // 清空原先的内容
            dltList.innerHTML = ''
            for (let d = 0; d < this.dltArr.length; d++) {
                var li = document.createElement("li");
                li.innerText = this.dltArr[d];
                dltList.appendChild(li);
            }
        }

    }
    //获取随机数
    function random(min, max) {
        //Math.random()获取0-1中的随机数
        //随机数需要取整parseInt(),向下取整 Math.floor()
        return parseInt(Math.random() * (max - min) + min);
    }
</script>

</html>

效果如下:

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1000976.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【C++】构造函数分类 ① ( 构造函数分类简介 | 无参构造函数 | 有参构造函数 | 拷贝构造函数 | 代码示例 - 三种类型构造函数定义与调用 )

文章目录 一、构造函数分类1、构造函数分类简介2、构造函数分类代码分析无参构造函数有参构造函数拷贝构造函数 二、代码示例 - 三种类型构造函数定义与调用 一、构造函数分类 1、构造函数分类简介 C 构造函数可以分为以下几类 : 无参构造函数 : 最简单也是默认的构造函数 , 函…

gitlab在项目中创建自己的分支的顺序操作,一整套流程

gitlab在项目中创建自己的分支的顺序操作&#xff0c;一整套流程 目录概述需求&#xff1a; 设计思路实现思路分析 参考资料和推荐阅读 Survive by day and develop by night. talk for import biz , show your perfect code,full busy&#xff0c;skip hardness,make a better…

【C++】day4学习成果:仿写string类等等

1.仿照string类&#xff0c;完成myString 类 代码&#xff1a; #include <iostream> #include <cstring>using namespace std;class myString {private:char *str; //记录c风格的字符串int size; //记录字符串的实际长度public://无参构造myS…

C++学习之list的实现

在了解学习list实现之前我们首先了解一下关于迭代器的分类&#xff1a; 按功能分类&#xff1a; 正向迭代器 反向迭代器 const正向迭代器 const反向迭代器 按性质分类&#xff1a; 单向迭代器 只能 例如单链表 双向迭代器 可&#xff0c;也可-- 例如双…

酒店固定资产管理怎么分类

在酒店业中&#xff0c;固定资产的管理是至关重要的一环。它不仅影响到企业的运营效率和盈利能力&#xff0c;而且直接影响到客户体验和品牌形象。因此&#xff0c;对于酒店管理者来说&#xff0c;合理、有效地进行固定资产管理是一项必不可少的任务。本文将探讨酒店固定资产的…

Spring系列文章:Bean的获取⽅式

一、简介 Spring为Bean提供了多种实例化⽅式&#xff0c;通常包括4种⽅式。&#xff08;也就是说在Spring中为Bean对象的创建准 备了多种⽅案&#xff0c;⽬的是&#xff1a;更加灵活&#xff09; 第⼀种&#xff1a;通过构造⽅法实例化 第⼆种&#xff1a;通过简单⼯⼚模式…

c++day4---9.11

1.思维导图&#xff1a; 2.myString: #include <iostream> #include <cstring> #include <cstdlib>using namespace std;class myString { private:char *str; //记录c风格的字符串int size; //记录字符串的实际长度 public://无参构造m…

springboot之二:整合junit进行单元测试+整合redis(本机、远程)+整合mybatis

资源地址&#xff1a; 整合junit的代码&#xff1a;https://download.csdn.net/download/zhiaidaidai/88291527 整合redis的代码&#xff1a;https://download.csdn.net/download/zhiaidaidai/88291536 整合mybatis的代码&#xff1a;https://download.csdn.net/download/zh…

科研绘图,别忘Origin!

公众号&#xff1a;尤而小屋作者&#xff1a;Peter编辑&#xff1a;Peter 大家好&#xff0c;我是Peter~ 科研绘图&#xff0c;你一般用什么软件&#xff1a; Python&#xff1f;R&#xff1f;MATLAB&#xff1f;GraphPad Prism&#xff1f;Matplotlib&#xff1f; 但&#…

案例:实现TodoLis(尚硅谷)

是做完后再记录的&#xff0c;前端我主要是要了解下&#xff0c;所以这里记录的比较浅 由于是做完后记录&#xff0c;所以你cv后的代码的效果并不一定和我展示的效果图一样 静态页面 先来实现静态页面&#xff0c;再考虑动态页面 组件拆分 说明(实际的组件名不是和下面一样的…

记录第一次带后端团队

在过去的一个半月里我第一次作为后端开发组长角色参与公司项目从0到1的开发&#xff0c;记录这一次开发的经历。 1、背景介绍 首先说明一下背景。我所在的公司是做智慧社区相关业务&#xff0c;开发的项目是系统升级工具&#xff0c;方便公司实施同事安装和升级系统。 参与后…

安全可靠的文件传输服务助力完成更高效的医疗保健工作(下)

医疗保健事业是关乎人类健康和社会发展的重要领域&#xff0c;它需要依赖海量的医疗数据&#xff0c;如病人信息、医疗影像、化验结果、电子病历、诊断建议等。这些数据不仅关系到病人的个人利益和医疗质量&#xff0c;也关系到医院的运行效率和医疗水平。因此&#xff0c;如何…

荣耀崛起礼包码2023,荣耀崛起攻略

荣耀崛起是一款传统的卡牌手游&#xff0c;它将区域探索游戏无缝集成到卡牌游戏中。相信很多玩家都很好奇&#xff0c;荣耀崛起礼包码2023是什么&#xff1f;有没有给新手的一些攻略建议呢&#xff1f;下面小编就和大家简单分享一下&#xff0c;感兴趣的朋友&#xff0c;一起来…

uni-app(微信小程序)图片旋转放缩,文字绘制、海报绘制

总结一下&#xff1a; 要进行海报绘制离不开canvas&#xff0c;我们是先进行图片&#xff0c;文字的拖拽、旋转等操作 最后再对canvas进行绘制&#xff0c;完成海报绘制。 背景区域设置为 position: relative&#xff0c;方便图片在当前区域中拖动等处理。添加图片&#xff0…

一文掌握SSD、EMMC、UFS原理与差异

有一天&#xff0c;小明在他的智能手机上播放了一段高清视频&#xff0c;发现视频播放得非常流畅。他感叹道&#xff1a;“现在的存储技术真是太棒了&#xff01;”他的朋友小华却告诉他&#xff1a;“这还不算什么&#xff0c;你还没用过UFS呢&#xff01;”小明一下子好奇起来…

【Spring Cloud系统】- 轻量级高可用工具Keepalive详解

【Spring Cloud系统】- 轻量级高可用工具Keepalive详解 文章目录 【Spring Cloud系统】- 轻量级高可用工具Keepalive详解一、概述二、Keepalive分类2.1 TCP的keepalive2.2 HTTP的keep-alive2.3 TCP的 KeepAlive 和 HTTP的 Keep-Alive区别 三、nginx的keepalive配置3.1 nginx保持…

初出茅庐的小李博客之根据编译时间生成软件版本号

为什么要软件版本号呢&#xff1f; 生成软件版本号是在软件开发和维护过程中非常重要的一项任务&#xff0c;它有很多意义和好处&#xff0c;同时也有多种常见的方法。 标识和追踪&#xff1a;软件版本号是唯一的标识符&#xff0c;用于区分不同版本的软件。这有助于开发人员和…

【案例分享】部署华为防火墙确保园区出口安全

【微|信|公|众|号&#xff1a;厦门微思网络】 部署华为防火墙确保园区出口安全案例 本案例将以园区典型组网为例&#xff0c;主要介绍园区出口安全的部署。具体业务安全要求如下&#xff1a; 内网用户可以正常访问Internet资源&#xff0c;但只能访问教育/科学类、搜索/门户类网…

【计算机组成 课程笔记】5.2 处理器的设计步骤(2)

课程链接&#xff1a; 计算机组成_北京大学_中国大学MOOC(慕课) 5 - 3 - 503-运算指令的控制信号&#xff08;14-58--&#xff09;_哔哩哔哩_bilibili 【计算机组成 课程笔记】5.1 处理器的设计步骤-CSDN博客 中介绍了处理器的设计步骤中的前三步&#xff0c;接下来我们继续介绍…

一文了解大模型工作原理——以ChatGPT为例

文章目录 写在前面1.Tansformer架构模型2.ChatGPT原理3.提示学习与大模型能力的涌现3.1 提示学习3.2 上下文学习3.3 思维链 4.行业参考建议4.1 拥抱变化4.2 定位清晰4.3 合规可控4.4 经验沉淀 写在前面 2022年11月30日&#xff0c;ChatGPT模型问世后&#xff0c;立刻在全球范围…