2011-10-10 96 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); 
}