如何用Java创建棋盘游戏?

时间:2016-02-28 18:15:59

标签: java arrays multidimensional-array

我有一个Batlle-ship计划项目要做。我正在试图弄清楚如何打印棋盘游戏(NxN)。

我正在使用像这样嵌套的for循环:

for(int i=0; i<=10; i++){ 
    for(int=j=0; j<=10; j++){
        System.out.println("-");
    }
    System.out.println("A B C D E F G H I J");
}

要打印这样的内容:

  A B C D E F G H I J
A - - - - - - - - - -
B - - - - - - - - - -
C - - - - - - - - - -
D - - - - - - - - - -
E - - - - - - - - - -
F - - - - - - - - - -
G - - - - - - - - - -
H - - - - - - - - - -
I - - - - - - - - - -
J - - - - - - - - - -

但有一些错误,因为它没有像那样显示董事会。如果有人能帮助确定这里发生的事情,我将不胜感激。

3 个答案:

答案 0 :(得分:0)

这段代码适合您:

    System.out.println("  A B C D E F G H I J");
    for(int i=0; i<10; i++){ 
        System.out.print((char)('A'+i)+" ");
        for(int j=0; j<10; j++){
            System.out.print("- ");
        }
        System.out.println();
    }

答案 1 :(得分:0)

A)根据您的索引值测试您是在第一行还是第一列。

B)如果是,请打印字母。我建议你把它们放在一个数组中,用它们的索引来访问它们,这个索引对应于......所讨论的行/列的索引。

C)如果不是这样,请打印&#34; - &#34;

D)每次通过内循环时都不要忘记打印空格

<强> SPOILER

以下是实现目标的两种方法

String[] letters = {" ", "A", "B", "C", "D", "E", "F", "G", "H", "I", "J"};
for (int i = 0 ; i <= 10 ; i++){
    for (int j = 0 ; j <= 10 ; j++){
        System.out.print(i == 0 || j == 0 ? i == 0 ? letters[j] : letters[i] : "-");
        System.out.print(" ");
    }
    System.out.println();
}
String[] letters = {" ", "A", "B", "C", "D", "E", "F", "G", "H", "I", "J"}; 
for (int i = 0 ; i <= 10 ; i++){
    for (int j = 0 ; j <= 10 ; j++){
        if (i == 0) {
            System.out.print(letters[j]);
        } else if (j == 0){
            System.out.print(letters[i]);
        } else {
            System.out.print("-");
        }           
        System.out.print(" ");
    }
    System.out.println();
}

答案 2 :(得分:0)

我不确定这是否有帮助,但这是一个使用二维数组打印电路板的简单代码:

int row,col;
char[][] boardGame = new char[11][11];
for(row=0; row<boardGame.length;row++){
for(col=0; col<boardGame[row].length;col++){
if(row==0)
boardGame[row][col]=(char)('A'+col);
else if(col==0)
boardGame[row][col]=(char)('A'+row);
else boardGame[row][col]='-';
}}

for(row=0; row<boardGame.length;row++){
System.out.println();
for(col=0; col<boardGame[row].length;col++){
System.out.print(boardGame[row][col]);
}}