スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

ランダムな配列

    onClipEvent(load){ //スプライトが読み込まれたとき(例)

     total = 10 ; //配列数(例)
     n = total ;
     
     var arr = new Array(total); //もととなる配列の指定
     var new_arr = new Array(total); //並び替え後の配列の指定
     
     for( i=0 ; i<total ; i++ ){
     
      arr[i] = i ;
     
     }
     
     for( j=0 ; j<total ; j++ ){
      
      r = random(n); //ランダム
      new_arr[j] = arr[r] ; //並び替え
      
      /* 処理 */
       arr.splice( r , 1 ); //r番目を1つ削除
       n -- ; //spliceで削除した分、ランダムの範囲を狭める
      
     }

     /* 配列確認 ここから */
      for( k=0 ; k<total ; k++ ){
       
       tr1 += k +"," ;
       tr2 += new_arr[k] +"," ;
       
      }
      
      trace("arr= " +tr1); //もとの配列
      trace("new= " +tr2); //並び替え後の配列
     /* ここまで */

    }


任意の範囲でランダムな配列を作るためのスクリプトです。
例では1~10を並び替えています。

もともとは重複の無い値を割り当てるため作ったもので、例えば
スプライト0にはnew_arr[0](=3)を
スプライト1にはnew_arr[1](=1)を
スプライト2にはnew_arr[2](=2)を...
と順番立てたかったのです。("重複無く"が大切)

それを拡張すれば、指定の配列を並び替えることもできます。

    onClipEvent(load){

     total = 10 ; //配列数
     n = total ;
     
     var arr = [10,20,30,40,50,60,70,80.90,00];
     var new_arr = new Array(total);

     /* もとの配列確認 ここから*/
      for( i=0 ; i<total ; i++ ){
       
       tr1 += arr[i] +"," ;
       
      }
      
      trace("arr= " +tr1); //arrの確認
      
     /* ここまで */
     
     for( j=0 ; j<total ; j++ ){
      
      r = random(n);
      new_arr[j] = arr[r] ;
      
      /* 処理 */
       arr.splice( r , 1 );
       n -- ;
      
     }

     /* 並び替え後の配列確認 ここから */
      for( k=0 ; k<total ; k++ ){
       
       tr2 += new_arr[k] +"," ;
       
      }
      
      trace("new= " +tr2); //new_arrの確認
      
     /* ここまで */

    }


もとの配列確認が先頭に来るのは splice(); によって削除されるためです。


Comment

(編集・削除用)
管理者にだけ表示を許可

Trackback

URL
http://moepict.blog109.fc2.com/tb.php/44-265fb129
この記事にトラックバック(FC2Blog User)

プロフィール

クロワッサン@

Author:クロワッサン@
FLASHへの質問はコメントにて。

↓携帯サイトはコチラ

QRコード
*FLASHと画像で萌えサイト

カテゴリ

スポンサードリンク

検索フォーム

月別アーカイブ

最新記事

最新コメント

Twitter

Twitter < > Reload

Copyright © クロワッサン@
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。