【Android】int配列をかぶらない(重複しない)数値で初期化する【Java】
2016/01/05 23:06:27
自分用。
for文がちょっと泥臭いとゆうか無駄あるけど、最初の方はどうせ決まりやすいからええわもう。
ArrayList使ってCollections.shuffle()っつうのもあるようだが、とりあえずこれでよし。どうせこのあと更なるランダム要素が加わる。ふしぎな ちからが くわわる くわわる!
Arrays.fill(card, -1);
Random r = new Random();
int i = 0;
while(i < maxCards) {
int j, rnd;
do {
rnd = r.nextInt(maxCards);
for(j = 0; j < maxCards; ++j) {
if(card[j] == rnd) break;
}
}while(j != maxCards);
card[i] = rnd;
++i;
}
for文がちょっと泥臭いとゆうか無駄あるけど、最初の方はどうせ決まりやすいからええわもう。
ArrayList使ってCollections.shuffle()っつうのもあるようだが、とりあえずこれでよし。どうせこのあと更なるランダム要素が加わる。ふしぎな ちからが くわわる くわわる!
PR
この記事へのトラックバック
この記事のトラックバックURL