にしのクエスト2

情報処理技術者試験と資格学校講師の日常

20221224103753

Unityで学ぶプログラミング TIPS (18)重複なし配列の並び替えListで

今回も、超ミニミニ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はかなり便利です。(データをキャストする必要
がないのが一番ですが)

今日も小ネタですいません。

それではよきプログラミングライフを!
またね。