lotdrawer.jpg

ロト・ドロワーver.1

順番を決めるくじ引き用のフラッシュを作った。

今回の肝は配列にそれぞれユニークな乱数をぶち込むとこ。
乱数を生成するたびに格納される配列の全ての要素と比較して
等しい値が無ければ生成した乱数を追加。
これで配列内の値はそれぞれユニーク数となる。

あ、windowsの人はフルスクリーンになるかも。
escで逃げて下さい。closeボタン必要だな。

ソースはこんな感じ。

createNumArrayfor文の中で必要回数分繰り返し。objは独自クラスの代理なので、function createNumArray(i){・・・}とやって使うこともできます。このソース、1つのメソッドにできればMathクラスに追加して使えるんだけどなあ。

1
2
3
4
this.numArray = new Array();
for( var i=0; i < this.maxValue; i++ ){//maxValueは必要回数
   this.createNumArray(i);
}

ここからがメソッド

1
2
3
4
5
6
7
8
obj.createNumArray = function( i ){
  var randomNum = Math.floor( Math.random()*this.maxValue )+1;
  for( var j in this.numArray){
    this.checkNumArray( i,  j, randomNum);
    }
    this.numArray[ i ] = randomNum;
  }
}
1
2
3
4
5
6
7
obj.checkNumArray = function( i, j, randomNum ){
  if (randomNum == this.numArray[ j ] ){
    this.createNumArray( i );
  } else {
    break;
  }
}