学习检测相同数的方法
想做flash机选双色球的flash玩玩,发现用乱数产生的6个数字里面经常有相同的数字,怎样产生不一样的6个数呢?
双色球规则:在1-33之间选取6个数字,外加一个在1到16之间的数字。
代码如下:
var shu_array:Array = [];
for (var i = 1; i<7; i++) {
shu_array[i] = Math.floor(Math.random()*33+1);
}
想用冒泡;
for (var g = 1; g<=5; g++) {
for (f=1; f<=6-g; f++) {
if (shu_array[f]=shu_array[f+1])
{
shu_array[f] = Math.floor(Math.random()*33+1);
break;
}
}
}
当有三个数都相同或新产生的数跟其他的数有相同的时候
代码如下:
var arr:Array = new Array();
var brr:Array = new Array();
brr[0] = 0;
//给数组arr添加元素1-33;
for (var i:Number = 0; i<33; i++) {
arr.push(i+1);
}
//
function get_norepeat_rnd():Number {
return arr.splice(random(arr.length), 1)[0];
}
//在1-33之间取出6个不同数字;并赋给brr。
for (var i:Number = 1; i<7; i++) {
brr[i] = get_norepeat_rnd();
}
//给brr元素按大小排序;
for (var k = 1; k<6; k++) {
for (var f = 1; f<7-k; f++) {
if (brr[f]>brr[f+1]) {
var t;
t = brr[f];
brr[f] = brr[f+1];
brr[f+1] = t;
}
}
}
//最后输出6个数字;
for (var h = 1; h<7; h++) {
trace("紅色球0"+[h]+": "+brr[h]);
}
//输出蓝色球的数字;
trace("藍色球:"+Math.floor(Math.random()*16+1));
Word教程网 | Excel教程网 | Dreamweaver教程网 | Fireworks教程网 | PPT教程网 | FLASH教程网 | PS教程网 |
HTML教程网 | DIV CSS教程网 | FLASH AS教程网 | ACCESS教程网 | SQL SERVER教程网 | C语言教程网 | JAVASCRIPT教程网 |
ASP教程网 | ASP.NET教程网 | CorelDraw教程网 |