/**
* 标题: 双色球摇奖类
* 版权: Copyright (c) 2005
* 作者: 棉花糖
* 版本: 1.0
* 时间: 2005.08.09
*/
class dColorBall
{
//========================================
//创建数组
private var mRedArray:Array, mBlueArray:Array;
private var mRedBall:Array, mBlueBall:Array;
//========================================
//构造函数
public function dColorBall($redArray:Number, $redBall:Number, $blueArray:Number, $blueBall:Number)
{
//========================================
//定义数组长度
mRedArray = new Array($redArray);
mRedBall = new Array($redBall);
mBlueArray = new Array($blueArray);
mBlueBall = new Array($blueBall);
//========================================
//填充数组
ArrayFill(mRedArray);
ArrayFill(mBlueArray);
//========================================
//随机抽取
ArrayChoose(mRedArray, mRedBall);
ArrayChoose(mBlueArray, mBlueBall);
}
//========================================
//该方法用来填充数组
private function ArrayFill($myArray:Array):Void
{
for (var i = 0; i < $myArray.length; i++) {
$myArray[i] = i + 1;
}
}
//========================================
//该方法用来随机抽取数组,并且避免重复
private function ArrayChoose($oldArray:Array, $newArray:Array):Void
{
var $max:Number = $oldArray.length;
var $min:Number = $newArray.length;
for (var i = 0; i < $min; i++) {
var num:Number = random($max);
$newArray[i] = $oldArray[num];
$oldArray.splice(num, 1);
$max--;
}
}
//========================================
//红色球数组隐式获取方法
public function get RedBall():Array
{
return mRedBall;
}
//========================================
//蓝色球数组隐式获取方法
public function get BlueBall():Array
{
return mBlueBall;
}
}
使用如下
import dColorBall;
//========================================
//初始化方法
function init()
{
//========================================
//创建对象
var my:dColorBall = new dColorBall(46, 6, 15, 1);
//========================================
//排序
my.RedBall.NumSort();
my.BlueBall.NumSort();
//========================================
//输出
trace(my.RedBall + "+(" + my.BlueBall + ")");
}
//========================================
//test
onMouseDown = init;
//========================================
//扩展Array类的排序方法;冒泡算法
Array.prototype.NumSort = function()
{
var tmp:Number;
var $length:Number = this.length;
for (var i = 0; i < $length - 1; i++) {
for (var j = 0; j < $length - i - 1; j++) {
if (this[j] > this[j + 1]) {
tmp = this[j];
this[j] = this[j + 1];
this[j + 1] = tmp;
}
}
}
};