2016-07-23 7 views
0

Tic Tac Toeのゲームに取り組んでいます。2D配列を印刷できないのはなぜですか?

私は2次元配列を印刷する正しい方法を理解するために苦労してきました。私が現在取り組んでいる方法は次のとおりです。ボード内の要素(または値など)を印刷しようとしています。ここで何が間違っていますか?

// display board indicating positions for token (x, o) placement 

public void printBoard(int size) { 
    int col, row; 

    for (col = 0; col < size; col++) 
     System.out.print(" " + col); 
     for (row = 0; row < size; row++) { 
      System.out.print("\n" + row); 
      System.out.print(" " + board[col][row] + "|"); 
      System.out.print(" _ _ _ _ _ _"); 
     } 
} 
+0

でこれらの文を同封しなければなりませんしたとき、あなたはあなたのコードスニペットで、 '}'末尾を逃したことがありますか? –

答えて

1

と仮定すると、サイズは、問題がforループあなたの内に条件のロジックにあり、board.lengthです。 board.lengthは、2次元配列の行数だけです。行の数と列の数が等しくなければ、コードは機能しません。 2次元配列内の列の数は、2次元配列内の特定の配列または行の要素の数と等しく、board [i] .length(iは0からboard.length - 1までの数)と書くことができます。だから私は、1とは対照的に、あなたのメソッドは、2つのパラメータに取るように

public void printBoard(int rows, int columns) { 

    for (int i = 0; i < columns; i++){ 
     System.out.print(" " + i); 
     for (j = 0; j < rows; j++) { 
      System.out.print("\n" + j); 
      System.out.print(" " + board[j][i] + "|"); 
      System.out.print(" _ _ _ _ _ _"); 
     } 
    } 
} 

を更新してしまうと、あなたがこれを行うどこ方法、

printBoard(board.length, board[0].length); 

注意を呼び出すときに上記の場合にのみ動作します2d配列には同じサイズの列があります。

編集:ネストされたfor-loopsが中括弧{}で正しくフォーマットされていることを確認してください。外側のforループに中括弧がないためです。

0

forループに{}を付けることを忘れないでください。ループが複数の行は、あなたが{}

public void printBoard(int size) { 
     int col, row; 

     for (col = 0; col < size; col++){//here starts { 
      System.out.print(" " + col); 
      for (row = 0; row < size; row++) { 
       System.out.print("\n" + row); 
       System.out.print(" " + board[col][row] + "|"); 
       System.out.print(" _ _ _ _ _ _"); 
      } 
     }// here ends } 
    } 
関連する問題