JS实现“双色球”

需求:

双色球玩法简单介绍:
  “双色球”彩票投注区分为红色球号码区和蓝色球号码区。每注投注号码由6个红色球号码和1个蓝色球号码组成。
红色球号码从1--33中选择;蓝色球号码从1--16中选择。
程序要求:
  1、彩票号码按从大到小的顺序输出,且无重复数字
  2、不足两位的号码高位补0

 

参考:JS随机数生成

一、包括下线数字(lower)不包括上限数字(upper)

    /**
     * 产生随机整数,包含下限值,但不包括上限值
     * @param {Number} lower 下限
     * @param {Number} upper 上限
     * @return {Number} 返回在下限到上限之间的一个随机整数
     */
    function random(lower, upper) {
        return Math.floor(Math.random() * (upper - lower)) + lower;
    }

//调用:console.log(random(1,100));

 

二、包括下线数字(lower)也包括上限数字(upper)

    /**
     * 产生随机整数,包含下限值,包括上限值
     * @param {Number} lower 下限
     * @param {Number} upper 上限
     * @return {Number} 返回在下限到上限之间的一个随机整数
     */
    function random(lower, upper) {
        return Math.floor(Math.random() * (upper - lower+1)) + lower;
    }  

console.log(random(1,100));

 

三、扩展

    /**
     * 产生一个随机的rgb颜色
     * @return {String}  返回颜色rgb值字符串内容,如:rgb(201, 57, 96)
     */
    function randomColor() {
        // 随机生成 rgb 值,每个颜色值在 0 - 255 之间
        var r = random(0, 256),
            g = random(0, 256),
            b = random(0, 256);
        // 连接字符串的结果
        var result = "rgb("+ r +","+ g +","+ b +")";
        // 返回结果
        return result;
    }

原文:https://blog.csdn.net/zerogf/article/details/79105567

下文原创:

<!Doctype html>
<html>
<head>
<title>双色球</title>
<style>
    *{
        margin:0;
        padding:0;
    }
    .header{
        background-color:yellow;
        width:100%;
        height:100px;
        border:1px solid red;
        line-height: 100px;/*让div中的文字内容垂直居中*/
        text-align: center;/*让文字水平居中*/
    }
    
    #num{
        width:100%;
        height:100px;
        border:1px solid red;
        line-height: 100px;/*让div中的文字内容垂直居中*/
        text-align: center;/*让文字水平居中*/
        margin:0 auto;    
    }
    #redNum{
        color:red;
        float:left;
        
    }
    #blueNum{
        color:blue;
        float:left;                
    }

</style>

</head>
<body>
<div class="header">
双色球
</div>
<div class="content">
<pre>
双色球玩法简单介绍:
  “双色球”彩票投注区分为红色球号码区和蓝色球号码区。每注投注号码由6个红色球号码和1个蓝色球号码组成。
红色球号码从1--33中选择;蓝色球号码从1--16中选择。
程序要求:
  1、彩票号码按从大到小的顺序输出,且无重复数字
  2、不足两位的号码高位补0
</pre>
</div>
<hr>
<input onclick="createNum()" type = "button"value="点击生成双色球号码"/>
<hr>
<div id="num">
    <div id="redNum"></div>
    <div id="blueNum"></div>
</div>

</body>

<script>

    //js随机数1到33生成不重复的
    function createNum(){
        // 装随机数
        var arr=[];//容器        
        
        //红色球 6个
        while(arr.length<6){
            var num = Math.floor(Math.random()*33)+1;//js随机数1到33
            if(-1 == arr.indexOf(num)){//数组中不存在
                num = parseInt(num,10);
                arr.push(prefixInteger(num,2));    
            }
        }        
        console.log("红色球: "+arr);
        
        var redDiv = document.getElementById("redNum");
        redDiv.innerHTML = arr;
        
        //蓝色球 1个
        while(arr.length<7){
            var num = Math.floor(Math.random()*16)+1;//js随机数1到16
            if(-1 == arr.indexOf(num)){//数组中不存在
                num = parseInt(num,10);
                arr.push(prefixInteger(num,2));    
            }
        }    
        console.log("红色球+蓝色球: "+arr);
        
        var blueDiv = document.getElementById("blueNum");
        blueDiv.innerHTML = ","+arr[6];
    }
    
    // num传入的数字,n需要的字符长度
    //例如:传入6,需要的字符长度为3,调用方法后字符串结果为:006
    function prefixInteger(num, n) {
        return (Array(n).join(0) + num).slice(-n);
    }


</script>
</html>

 

上一篇:2020年 第11届 蓝桥杯 Java B组 省赛 第6题


下一篇:LeetCode #163. Missing Ranges