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

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

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

  • mixiチェック
  • このエントリーをはてなブックマークに追加
二次元配列で9×9の配列を作り、その配列の1〜3行など制限したところだけをランダムに入れ替えるプログラムを教えてください。

例
111111111
222222222
333333333
444444444
555555555
666666666
777777777
888888888
999999999
↓
333333333
111111111
222222222
444444444
555555555
666666666
777777777
888888888
999999999
こんな感じです。
ランダムでお願いします。

コメント(2)

1つ目の課題の

Collections.shuffle(Arrays.asList(tmp));
を
Collections.shuffle(Arrays.asList(tmp).subList(0, 3));

に変える。
import java.util.*;

public class Mixi {

  public static void main(String[] args) {
    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},
    };
    Random random = new Random();
    int a = random.nextInt(6);
    for (int i = 0; i < 3; i++) {
      int b = random.nextInt(3);
      int c = (b + 1 + random.nextInt(2)) % 3;
      int[] tmp = data[a+b];
      data[a+b] = data[a+c];
      data[a+c] = tmp;
    }

    for (int[] line : data) {
      for (int i : line) {
        System.out.print(i + " ");
      }
      System.out.println();
    }
  }
}

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

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

Javaの課題丸投げ 更新情報

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

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