*任意の数値をシャッフル

| | comments(0) | truckbacks(0)

意識してなかったけどActionScript関連のネタってエントリしたことなかったんだな...。いつも時間のない中、力業ですり抜けてきたんで公開できるようなコードとかモノも特に無いので当たり前か。

と言いつつオモムロ且つトウトツにエントリ。自分用なんですが。
任意の値を重複なくシャッフルして配列にして返す、ってクラス。

OperateArray.as ※AS2。
* * * * * * * * * *

class OperateArray{
	private static var _max:Number;
	private static var a:Array = new Array();
	
	static function shuffle(n:Number){
		_max = n;
		a = makeArray();
		return xShuffleArray(a);
	}
	
	private static function makeArray(){
		for(var i:Number = 0; i < _max; i++){
			a.push(i+1);//+1しなければ0から
		}
		return a;
	}
	
	private static function xShuffleArray(l_array){
		var n = l_array.length;
		var i = n;
		while(i--){
			var j:Number = Math.floor(Math.random()*n);
			var t = l_array[i];
			l_array[i] = l_array[j];
			l_array[j] = t;
		}
		return a;
	}
}

USAGE
* * * * * * * * * *
//1から20をシャッフル
var a:Array = OperateArray.shuffle(20);
trace(a);

//出力
16,9,12,10,4,13,19,11,1,15,3,17,8,2,14,5,20,6,7,18

要となるシャッフルの部分"xShuffleArray()"は野中さんのFN0212003を拝借させていただきました。

Check

トラックバック(0)

このブログ記事を参照しているブログ一覧: *任意の数値をシャッフル

このブログ記事に対するトラックバックURL: http://www.nrd-studio.com/mt/mt-tb.cgi/80

コメントする

このブログ記事について

このページは、Biz_Rが2007年8月30日 22:02に書いたブログ記事です。

ひとつ前のブログ記事は「*ファクティオたおした」です。

次のブログ記事は「*任意の時間が経過したらGO」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。