今回も、超ミニミニTIPSです。
興味のない人には大変申し訳ないです。前回の続きですが、
arrayではなく、listを使ってやってみます。
テーマは全く同じです。
「配列の要素に重複しない要素をセットしたい。しかもラン
ダムに。」
おなじみの「配列を作っておいて並び替えちゃえ」作戦です。
もちろんこれ以外の方法もあるかと思いますが、あくまで
参考まで。(もっとスッキリ書けるかもです)
解説
//リストの初期化
List<int> Sample= new List<int>();
void Start() {
//1から10までの数字をリストに追加
for(int i=1;i<=10;i++){
Sample.Add(i);
}
//配列の要素の分だけ繰り返す
for (int i = 0; i < Sample.Length; i++){
//1 tempに要素を移し替えて
int temp = Sample[i];
//要素の個数を最大値とした乱数を発生
int rIndex = Random.Range(0,Sample.Length);
//2 乱数で指定した要素を移動させて
Sample[i] = Sample[rIndex];
//3 そこに保存してあった要素を載せ替える
Sample[rIndex] = temp;
}
同じことなのですが、Remove Atとかで要素の数を
減らしたり、Addで追加できたりするので配列より
もリスト構造は便利です。
配列の中に同じ要素がないかを検索するContainなど
Listはかなり便利です。(データをキャストする必要
がないのが一番ですが)
今日も小ネタですいません。
それではよきプログラミングライフを!
またね。