ログインしてさらにmixiを楽しもう

コメントを投稿して情報交換!
更新通知を受け取って、最新情報をゲット!

Javaの課題丸投げコミュの二次元配列について 四つ目

  • mixiチェック
  • このエントリーをはてなブックマークに追加
二次元配列について、 三つ目でランダムに表示させる回数を入力して、入力した回数だけ表示させるにはどうすればいいですか?
三回表示させたら、三回とも違う表示でお願いします。

例
何回表示させますか
3

一つ目
444444444
555555555
666666666
111111111
222222222
333333333
777777777
888888888
999999999

二つ目
1…
2…
3…
7…
8…
9…
4…
5…
6…

三つ目
7…
8…
9…
1…
2…
3…
4…
5…
6…

こんな感じです。

コメント(14)

三つ目の私ので、new Random()の次の行に以下を挿入。
for(int i=0;i<3;i++){

printし終わった後に閉じ括弧。
}
入力して表示させたいんですけど…。
入力部分

int a;
Scanner stdIn = new Scanner(System.in);
while(true){
try{
System.out.print("Input Alpha(rad):");
a = stdIn.nextInt();
}
catch(Exception e){
System.out.println("Input Error!");
stdIn.next();
continue;
}
break;
}
ん、設問よく読んだら全部違う表示とある。
7以上入力した場合どうするの?
おお、そうでした。すみません。
標準入力から数値を入力しないとね。
今手元のスマホからしか投稿できなくて、長文入力が大変なので、少し時間をください。
他の人が先に回答してくれるかも…
あぁ、>3のソース、加法定理の課題のやつそのままコピペしたからaの入力尋ねるときの文章(alpha(rad))がおかしいけど適当に修正してください。
すでにフォローされてました。ありがとうございます。
これでどうかな。

public class Mixi {
  public static void main(String[] args) throws Exception {
    int[][] data = {
      {1, 1, 1, 1, 1, 1, 1, 1, 1},
      {2, 2, 2, 2, 2, 2, 2, 2, 2},
      {3, 3, 3, 3, 3, 3, 3, 3, 3},
      {4, 4, 4, 4, 4, 4, 4, 4, 4},
      {5, 5, 5, 5, 5, 5, 5, 5, 5},
      {6, 6, 6, 6, 6, 6, 6, 6, 6},
      {7, 7, 7, 7, 7, 7, 7, 7, 7},
      {8, 8, 8, 8, 8, 8, 8, 8, 8},
      {9, 9, 9, 9, 9, 9, 9, 9, 9}
    };
    java.util.Random random = new java.util.Random();
    System.out.println("何回表示させますか");
    int n = new java.util.Scanner(System.in).nextInt();
    for (int i = 1; i <= n; i++) {
      int a = random.nextInt(3) * 3;
      int b = (a + 3 + random.nextInt(2) * 3) % 9;
      int[][] tmp = { data[a + 0], data[a + 1], data[a + 2] };
      data[a + 0] = data[b + 0];
      data[a + 1] = data[b + 1];
      data[a + 2] = data[b + 2];
      data[b + 0] = tmp[0];
      data[b + 1] = tmp[1];
      data[b + 2] = tmp[2];
      System.out.println(i + "つ目");
      for (int[] line : data) {
        for (int digit : line) {
          System.out.print(digit);
        }
        System.out.println();
      }
    }
  }
}
shuffleを使った例。

class Mixi {
  public static void main(String[] args) throws Exception {
    int[][] data = {
      {1, 1, 1, 1, 1, 1, 1, 1, 1},
      {2, 2, 2, 2, 2, 2, 2, 2, 2},
      {3, 3, 3, 3, 3, 3, 3, 3, 3},
      {4, 4, 4, 4, 4, 4, 4, 4, 4},
      {5, 5, 5, 5, 5, 5, 5, 5, 5},
      {6, 6, 6, 6, 6, 6, 6, 6, 6},
      {7, 7, 7, 7, 7, 7, 7, 7, 7},
      {8, 8, 8, 8, 8, 8, 8, 8, 8},
      {9, 9, 9, 9, 9, 9, 9, 9, 9}
    };
    int[][][] group = {
      {data[0], data[1], data[2]},
      {data[3], data[4], data[5]},
      {data[6], data[7], data[8]}
    };
    System.out.println("何回表示させますか");
    int n = new java.util.Scanner(System.in).nextInt();
    for (int i = 1; i <= n; i++) {
      java.util.Collections.shuffle(java.util.Arrays.asList(group));
      System.out.println(i + "つ目");
      for (int line = 0; line < 9; line++) {
        for (int digit : group[line / 3][line % 3]) {
          System.out.print(digit);
        }
        System.out.println();
      }
    }
  }
}
最初のrandom使ったソースにgroup化適用 (何度も書き直してすみません)

public class Mixi {
  public static void main(String[] args) throws Exception {
    int[][] data = {
      {1, 1, 1, 1, 1, 1, 1, 1, 1},
      {2, 2, 2, 2, 2, 2, 2, 2, 2},
      {3, 3, 3, 3, 3, 3, 3, 3, 3},
      {4, 4, 4, 4, 4, 4, 4, 4, 4},
      {5, 5, 5, 5, 5, 5, 5, 5, 5},
      {6, 6, 6, 6, 6, 6, 6, 6, 6},
      {7, 7, 7, 7, 7, 7, 7, 7, 7},
      {8, 8, 8, 8, 8, 8, 8, 8, 8},
      {9, 9, 9, 9, 9, 9, 9, 9, 9}
    };
    int[][][] group = {
      {data[0], data[1], data[2]},
      {data[3], data[4], data[5]},
      {data[6], data[7], data[8]}
    };
    java.util.Random random = new java.util.Random();
    System.out.println("何回表示させますか");
    int n = new java.util.Scanner(System.in).nextInt();
    for (int i = 1; i <= n; i++) {
      int a = random.nextInt(3);
      int b = (a + 1 + random.nextInt(2)) % 3;
      int[][] tmp = group[a];
      group[a] = group[b];
      group[b] = tmp;
      System.out.println(i + "つ目");
      for (int line = 0; line < 9; line++) {
        for (int digit : group[line / 3][line % 3]) {
          System.out.print(digit);
        }
        System.out.println();
      }
    }
  }
}

ログインすると、みんなのコメントがもっと見れるよ

mixiユーザー
ログインしてコメントしよう!

Javaの課題丸投げ 更新情報

Javaの課題丸投げのメンバーはこんなコミュニティにも参加しています

星印の数は、共通して参加しているメンバーが多いほど増えます。