質問するログイン新規登録

回答編集履歴

2

均等にならないシャッフルになっていたため修正

2016/09/25 03:13

投稿

swordone
swordone

スコア20675

answer CHANGED
@@ -8,7 +8,8 @@
8
8
 
9
9
  // シャッフル(156枚のカードの中から無作為に選んで順番に並べていくイメージ)
10
10
  for (int i = cards.length - 1; i > 0; i--) {
11
- int index = (int)(Math.random() * i);
11
+ int index = (int)(Math.random() * (i + 1));
12
+ if (index == i) continue;
12
13
  int temp = cards[i];
13
14
  cards[i] = cards[index];
14
15
  cards[index] = temp;

1

シャッフルの継続条件にイコールは要らなかった

2016/09/25 03:13

投稿

swordone
swordone

スコア20675

answer CHANGED
@@ -7,7 +7,7 @@
7
7
  }
8
8
 
9
9
  // シャッフル(156枚のカードの中から無作為に選んで順番に並べていくイメージ)
10
- for (int i = cards.length - 1; i >= 0; i--) {
10
+ for (int i = cards.length - 1; i > 0; i--) {
11
11
  int index = (int)(Math.random() * i);
12
12
  int temp = cards[i];
13
13
  cards[i] = cards[index];