hinekure.net が http://hspdev-wiki.net/ から自動クローリングした結果を表示しています。画像やリソースなどのリンクが切れています。予めご了承ください。
Module/配列要素のシャッフル - HSP開発wiki
トップ    編集凍結 差分バックアップ添付複製名前変更リロード   新規一覧単語検索最終更新   最終更新のRSS

小ワザ|モジュール

配列要素のシャッフル

指定した配列の要素の並びをランダムに並び替えます。

 HSP3 

Everything is expanded.Everything is shortened.
  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 
 
 
 
 
 
 
 
 
 
 
#module
#deffunc dimmix array arr
    mx = length(arr)
    repeat mx
        r        = cnt + rnd(mx - cnt)
        temp     = arr(r)
        arr(r)   = arr(cnt)
        arr(cnt) = temp
    loop
    return
#global


+  hsp2

サンプル

Everything is expanded.Everything is shortened.
  1
  2
  3
  4
  5
  6
  7
  8
 
 
 
 
 
 
 
 
    ; サンプル ( hsp2, hsp3 のどちらでも動きます )
    dim a, 10
    a = 0, 1, 2, 3, 4, 5, 6, 7, 8, 9
    dimmix a
    repeat 10
        mes "a."+ cnt +" = "+ a.cnt
    loop
    stop

方法1の実行例

_ ×

a.0 = 9
a.1 = 3
a.2 = 0
a.3 = 2
a.4 = 4
a.5 = 7
a.6 = 5
a.7 = 6
a.8 = 8
a.9 = 1

方法2の実行例

_ ×

a.0 = 1
a.1 = 9
a.2 = 8
a.3 = 2
a.4 = 0
a.5 = 4
a.6 = 3
a.7 = 7
a.8 = 6
a.9 = 5

利用例


  • 数値型配列(1次元限定か?)の要素をランダムな並びにします。--kz3 2005-05-29 11:02:00 (日)
  • モジュールの汎用性を考えてモジュール側で値の代入を行っていません。--kz3 2005-05-29 11:02:00 (日)
  • トランプに載せたかった;; -- kz3 2005-05-29 17:34:57 (日)
  • 移動もしくはコピーしてもいいですよw -- Charlotte 2005-05-29 17:38:22 (日)
  • またまた早い^^;しかしトランプ限定ではなく今回の迷路の方向にも使える、要は対象の配列が何を表現するものなのか、でこのモジュールの意味が変わってくるのでやっぱりココで^^;--kz3 2005-05-29 17:41:45 (日)
    • 今回はたまたま早かったw -- Charlotte 2005-05-29 17:49:53 (日)
  • リンクでも張ってみては? -- Charlotte 2005-05-29 17:53:00 (日)
    • そうですね、トランプのシャッフルの考え方を書こうと思います^^ -- kz3 2005-05-29 18:00:14 (日)

  • プリプロセッサ命令を使わずに作るとどうなりますか? -- xx? 2007-08-08 (水) 22:05:19
  • どこでプリプロセッサ命令が使われていますか?#module〜#globalのことだとしたら、これをサブルーチンにするのは基本を押さえられていれば出来ることだと思います。 -- kz3 2007-08-09 (木) 07:46:25
  • すいません。HSPのプログラムガイドが分かりづらかったもので。 -- xx? 2007-08-10 (金) 13:41:33
  • なんか誰かが追加してくれたHSP3バージョンがHSP2バージョンと微妙に互換を保っていなかったので直しました。 -- kz3 2007-08-10 (金) 20:01:28
  • 全く同じだとrndの使い方が変わっただけなので、結果が比較できるように「xxバージョン」の表記をなくしました。 -- kz3 2007-08-10 (金) 20:13:03

URL B I U SIZE Black Maroon Green Olive Navy Purple Teal Gray Silver Red Lime Yellow Blue Fuchsia Aqua White

トップ    編集凍結 差分バックアップ添付複製名前変更リロード   新規一覧単語検索最終更新   最終更新のRSS
Last-modified: 2009-08-14 (金) 00:29:33 (1577d)