Comment créer un jeu de société en Java?


J'ai un projet de programme Batlle-ship à faire. J'essaie de comprendre comment imprimer un jeu de société (NxN).

J'utilisais une boucle for imbriquée comme celle-ci:

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");
}

Pour imprimer quelque chose comme ceci:

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

Mais il y a quelque chose qui ne va pas parce qu'il ne montre pas le tableau comme ça. J'apprécierai si quelqu'un peut aider à identifier ce qui se passe ici.

Author: Yassin Hajaj, 2016-02-28

3 answers

A) Testez si vous êtes sur la première ligne OU la première colonne en fonction des valeurs de vos index.

B) Si c'est le cas, imprimez les lettres. Je vous suggère de les mettre dans un tableau et d'y accéder par leur index qui correspondrait à l'index de... la ligne/colonne en question.

C) Si ce n'est pas le cas, imprimer "- "

D) N'oubliez pas d'imprimer les espaces chaque fois que vous passez la boucle intérieure


SPOILER

Voici deux façons de réaliser ce que vous voulez

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();
}
 0
Author: Yassin Hajaj, 2016-02-28 18:46:50

Ce morceau de code fonctionnera pour vous:

    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();
    }
 0
Author: katagorri, 2016-02-28 18:40:52

Je ne sais pas si cela aide, mais voici un code simple pour imprimer le tableau en utilisant un tableau bidimensionnel:

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]);
}}
 0
Author: Lamia, 2016-02-28 19:13:29