首先,介绍下双色球:
在中华大陆,有7颗龙珠,其中由6颗红珠和1颗蓝珠组成,7颗龙珠上镶嵌数字,红珠上的数字为01-33(没有重复数字);蓝珠上的数字为01-16,7颗龙珠的数字每周二,周四,周日都会发生改变。传说,猜中7颗龙珠上数字的人,将获得一笔巨款。
好了我编不下去了,来捋一下需求吧(认真脸)~~~
1、7个球,6个红色,一个蓝色;
2、红球数字为01-33,且不重复,需要注意的是都是两位数;
3、蓝色球是01-16,也是两位数;
4、都是随机的;
有了这些需求,我们可以开始了
这里我们根据需求,封装了随机数的函数,这个函数反出来一个随机数
function rnd(n,m){
return parseInt(Math.random()*(m-n)+n);
}
用于往个位数前边补零的方法
如果这个数字小于10就反出来 0加上这个数字
否则的话返回空字符串加上这个数字
实现1-9这些数字都变为01-09;
function tuDou(n){
if(n<10){
return '0'+n;
}else{
return ''+n;
}
}
用来查重的方法(数组)
function findInarr(item,arr){
for(var i=0;i<arr.length;i++){
if(item==arr[i]){
return true;
}
}
}
封装的函数准备好了,我们就可以开始敲代码了
HTML就不用说了,大家做7个球就行了 2333~~~
然后,我们需要的是6个不重复的随机数,范围是1-33;然后还得把1-9变为01-09;
循环6个随机数;
然后查重,补零;
就得到了一个数组 [ 6个不重复数字 ]
var arr = [];
for(var i=0;i<6;i++){
var n=rnd(0,34);
if(!findInarr(n,arr)){
arr.push(tuDou(n));
}else{
i--;
}
}
接下来,把数组中的数字循环放入前6个球中
$('div').each(function(){
$(this).html(arr[$(this).index()])
})
然后蓝球就简单了,定义一个随机数,放到放到蓝色球就行了
var mn = tuDou(rnd(0,16));
$('div:eq(6)').html(mn);
好了,上效果图
双色球.png
OK了,大家可以用随机数加上定时器做一个类似于抽奖的demo;拜拜~~
网友评论