• 締切済み

C#で複数の画像を重複なしでランダムに表示する方法

C#で複数の画像を重複なしでランダムに表示する方法に困っています。 サンプルソースコードを書いていただけると助かります。

みんなの回答

  • MARU4812
  • ベストアンサー率43% (196/452)
回答No.2

トランプのシャッフルゲームで使われる事のある手法です。 配列なり、コレクションなりにデータの数だけ連番を入れて おきます。 ランダムな位置のデータ同士を入替えます。 適当な回数入替えれば、重複なしのランダムに入れ替わった 数字の並びを作成できます。 その順番を画像に結び付けて表示すればできます。

usaginabe1989
質問者

補足

返信遅れて申し訳ございません。 一応、下記のような重複なしの乱数を生成するプログラムを組んでみました。 この乱数を使って、リソースされた画像をピクチャーボックスに表示させる方法がわかりません。 (1)生成された数に応じた画像を選択する処理。 (2)選択された画像を画面上に表示する処理。 をやればいいと思うのですが、どうプログラムで書いたらいいかわかりません。 よかったら回答お願いします。 static string shuffle(int num) { //ランダムな配列を作成 Random r = new Random(); int[] a = new int[num]; for (int i = 0; i < num; ++i) a[i] = i + 1; for (int i = num; i > 1; --i) { int k = r.Next(i); int tmp = a[i - 1]; a[i - 1] = a[k]; a[k] = tmp; } return r.ToString(); }

  • hashioogi
  • ベストアンサー率25% (102/404)
回答No.1

どこら辺がわからないのか書いてないのですが、もし重複なしにランダムにする方法がわからないのであれば有限体かなにかを使う手があるかもしれません。