2015-07-15 2 views
1

Я пытаюсь создать игру TicTacToe, но хотел бы задать вопрос. У меня есть массив 2d char и на данный момент заполняется символами подчеркивания - '_'. Мой вопрос заключается в том, как я могу выводить три подчеркивания на строку? Заранее спасибо!TicTacToe печать доски

import java.util.Scanner; 
import java.util.*; 
public class TicTacToe { 

    public static void main(String[] args){ 
     Scanner kbd = new Scanner(System.in); 

     char[][] theBoard = new char[3][3]; 

     for(int i = 0; i < theBoard.length; i++){ 
      for(int j = 0; j < theBoard[i].length; j++){ 
       theBoard[i][j] = '_'; 
      } 
     } 

     for(int i = 0; i < theBoard.length; i++){ 
      for(int j = 0; j < theBoard[i].length; j++){ 

       System.out.print(theBoard[i][j] + " "); 
      } 
     } 
    } 



} 

ответ

2

Измените код следующим образом:

for(int i = 0; i < theBoard.length; i++){ 
     for(int j = 0; j < theBoard[i].length; j++){ 

      System.out.print(theBoard[i][j] + " "); 
     } 
     System.out.println(); 
    } 

Таким образом, вы будете двигаться к новой строке после строки закончена.

__UPDATE__

Другой подход:

for(int i = 0; i < theBoard.length; i++){ 
     StringBuffer buf = new StringBuffer(); 
     for(int j = 0; j < theBoard[i].length; j++){ 
      buf.append(theBoard[i][j] + " "); 
     } 
     System.out.println(buff.toString()); 
    } 
0

Я считаю, что это

if ((j + 3) % 3 == 0) 

System.out.println()

1

Вы можете просто сделать это:

for(int i = 0; i < theBoard.length; i++){ 
    for(int j = 0; j < theBoard[i].length; j++){ 
      System.out.print(theBoard[i][j] + " "); 
    } 
    System.out.println(); // add this 
} 

Кроме того, он, вероятно, будет быстрее (слегка), чтобы вручную заполнить ваш массив, а не использовать цикл for. например

char[][] theBoard = new char[][]{{'_', '_', '_'}, {'_', '_', '_'}, {'_', '_', '_'}}; 

Нет необходимости в сложной логике, когда будет сделано простое заявление! :)

Смежные вопросы