0

そのため、課題の一部として populateRandom というメソッドを作成する必要があります。現在、8 x 8 ボードを印刷するグリッドがあり、現時点ではすべての「セル」に「$」が含まれています。これはすべて、私が作成した drawGrid メソッドによって出力されます。このランダムなデータを作成するには、chars 配列の 1 つからランダムな文字をグリッドに入力する必要があります。私は現在それを持っているので、現在のグリッドを置き換えるのではなく、別のグリッド全体を印刷します。既に存在する値を上書きするにはどうすればよいでしょうか....これが私のコードです...そして今のところ、オプション配列から1つの値のみを出力するだけです。グリッドに複数の異なる値を入力したい(& $*+ など)。ありがとう!これが十分に明確であることを願っています。PS: コメントアウトされたものは無視してください。'

public static void main(String[] args) 
{
    System.out.println("How to play: type a row and column index, followed by \n" +
                        "the direction to move it: u (up), r (right), d (down), l (left)");     
    char[][] grid = new char[8][8];
    char[] options = {'*','$','@','+','!','&'};
    drawGrid(grid);
    populateRandom(grid,options);
    System.out.println("Enter <row> <column> <direction to move> or q to quit");
    //char randomChar = 66;
    //System.out.println(randomChar);
}

   public static void drawGrid(char[][] grid)
   {
        System.out.println("\t1 \t2 \t3 \t4 \t5 \t6 \t7 \t8");
        System.out.println();
        //Random r = new Random();

        for(int row=0 ; row < grid.length ; row++ )
        {
            System.out.print((row+1)+"");
            for(int column=0 ; column < grid[row].length ; column++)
            {
                System.out.print("\t"+ "$");

            }
                System.out.println();
        }
            System.out.println();
    }

   public static void populateRandom(char[][] grid, char[] options) 
   {

       Random randomGenerator = new Random();
       int randomIndex = randomGenerator.nextInt(5); 

       for(int row=0 ; row < grid.length ; row++ )
        {
           // System.out.print((row+1)+"");
            for(int column=0 ; column < grid[row].length ; column++)
            {
                System.out.print("\t"+ options[randomIndex]);

            }
                System.out.println();
        }
            System.out.println();
    }

}

'

4

2 に答える 2

0

グリッド配列を、文字配列内のランダム ジェネレーターによって生成されたランダム値のインデックスに設定するだけです。

public static void populateRandom() {
Random randomGenerator = new Random();
for(int row = 0; row < grid.length; row++) {
      for(int column=0; column < grid[row].length; column++) {
         int randomIndex = randomGenerator.nextInt(5); 
         grid[row][column] = options[randomIndex]);
      }
   }
}
于 2013-11-13T00:12:25.920 に答える
0

印刷するときに、2 次元配列の値を使用していません。そのインデックスを使用するだけです。2 次元配列に値を割り当ててから、グリッドを印刷するときにそれらを使用する必要があります。

于 2013-11-13T00:12:30.860 に答える