2011-10-10 101 views
0

我目前有打印出如下所示的座標系的代碼。代碼要求用戶輸入尺寸,然後適當地打印出一個座標系。下面的板是一個5×5將座標系轉換爲遊戲板

(0, 0) (1, 0) (2, 0) (3, 0) (4, 0) 

(0, 1) (1, 1) (2, 1) (3, 1) (4, 1) 

(0, 2) (1, 2) (2, 2) (3, 2) (4, 2) 

(0, 3) (1, 3) (2, 3) (3, 3) (4, 3) 

(0, 4) (1, 4) (2, 4) (3, 4) (4, 4) 

我想知道如果任何人都可以給我一個手,如何轉換成板,看起來像這樣的:

X O X O X 

O X O X O 

X O X O X 

O X O X O 

X O X O X 

到目前爲止,我已經嘗試製作一系列字符串並將其附加到座標系中,但還沒有得到理想的結果。如果任何人有任何提示,他們將不勝感激。

+1

後,它一直答案,請不要刪除你的問題的內容編輯。此外,請點擊旁邊的複選標記標記幫助您接受的答案。 – interjay

回答

4

您可以嘗試檢查x + y是否均勻,然後打印適當的字符串。因此,(1,1)將是X,並且(1,4)將是O

0

您可以進行計數。如果計數= 0打印X如果計數= 1個打印O和設置計數回0

0

我會做一個BoardElement類和BoardElement [] []

class BoardElement { 
    String value; 
    BoardElement(String v) { value = v; } 
    public String toString() { return value; } 
} 

class Board { 
    BoardElement[][] board; 
    Board(int x, int y) { board = new BoardElement[x][y]; } 
    public String toString() { 
     StringBuilder sb = new StringBuilder(); 
     for(int x = 0; x < board.length; x++) { 
      for(int y = 0; y < board[0].length; y++) { 
       sb.append(board[x][y]).append(" "); 
      } 
      sb.append(System.getProperty("line.separator")); 
     } 
     return sb.toString(); 
    } 
    public void set(int x, int y, String v) { board[x][y].value = v; } 
} 

然後讓你的系統,你會是這樣的

public static void main(String[] args) { 
    Board b = new Board(5,5); 
    for(int x = 0; x < 5; x++) { 
     for(int y = 0; y < 5; y++) { 
      b.set(x,y,(x+y)%2==0?"X":"O"); 
     } 
    } 
    System.out.println(b); 
} 

你的第一個系統更像

public static void main(String[] args) { 
    Board b = new Board(5,5); 
    for(int x = 0; x < 5; x++) { 
     for(int y = 0; y < 5; y++) { 
      b.set(x,y,"(" + x + "," + y + ")"); 
     } 
    } 
    System.out.println(b); 
} 
相關問題