0

したがって、次の問題が設定されています。整数のコマンドライン引数 N を取り、ネストされた 2 つの for ループを使用して、スペースでランダムに区切られた 6 色を交互に切り替える N 行 N 列のボードを印刷するプログラムを作成します。色は文字で表されます (RED は「r」、BLUE は「b」など)。同じ色を 2 つ並べて使用することはできません。

したがって、この問題を回避するにはおそらく配列が必要であることはわかっています。私はいくつかの方法を試しましたが、すべて間違っていました。以下は私の最近の試みの 1 つですが、グリッドを通過して修正する方法がわかりません。コードが行うことは、左または右の色が同じでなく、すべての行がランダム化されることですが、列は固定されていません。

私はプログラミング歴のない CS の 1 年生です。この問題の解決策はそれほど複雑ではないと思いますが、簡単な解決策はわかりません...

    int N = StdIn.readInt();
    int array1[] = new int[N];
    for (int column = 0; column < N; column++) {
        int x = 0;

        for (int row = 0; row < N; row++) {

            int c = (int) (Math.random() * 6 + 1);

            while (x == c) {
                c = (int) (Math.random() * 6 + 1);
                array1[row] = c;
            }
            if (c == 1) {
                System.out.print("R ");
            }
            if (c == 2) {
                System.out.print("O ");
            }
            if (c == 3) {
                System.out.print("Y ");
            }
            if (c == 4) {
                System.out.print("G ");
            }
            if (c == 5) {
                System.out.print("B ");
            }
            if (c == 6) {
                System.out.print("I ");
            }

            x = c;

        }

        System.out.println();

    }
}
4

1 に答える 1