Etant débutant dans la programmation, j'essaie de m'entrainer à programmer un jeu simple (touché coulé) dans lequel je dois afficher une grille vide au début sur laquelle doivent se répartir mes bateaux.
Problème :
Quand je demande de m'afficher la grille en appliquant la méthode AfficherTout() à une gille nouvellement crée, je m'attendais que la console m'affiche un tableau à 2 dimensions contenant que des tirets, qui signifient que la grille est vide. Mais la console m'affiche ces tiret sur une ligne !
¨
Pouvez vous me dire d'ou vient l'erreur dans mon code s'il vous plait ?
public class Grille {
public int nombrenavires;
public int nombrecuirasse;
public Bateau[][] tableau;
public Grille(int nbrNavires, int NbrCuirasses){
tableau=new Bateau[8][8];
for(int i=0;i<nombrenavires;i++){
int a = (int)(Math.random()*8);
int b = (int)(Math.random()*8);
tableau[a][b]= new Navire();
}
for(int i=0;i<nombrecuirasse;i++){
int a = (int)(Math.random()*8);
int b = (int)(Math.random()*8);
tableau[a][b]= new Cuirasse();
}
}
public void afficherTout(){
for(int i=0;i<tableau.length;i++){
for(int j=0;j<tableau.length;j++){
if (tableau[i][j]== null)
System.out.print("-");
if (tableau[i][j] instanceof Navire)
System.out.print(tableau[i][j].caracterDAffichage());
if (tableau[i][j] instanceof Cuirasse)
System.out.print(tableau[i][j].caracterDAffichage());
}
}
}
}
tu peux essayer après ta boucle for imbriquée un System.out.println();//retour à la ligne
public void afficherTout(){
for(int i=0;i<tableau.length;i++){
for(int j=0;j<tableau.length;j++){
if (tableau[i][j]== null)
System.out.print("-");
if (tableau[i][j] instanceof Navire)
System.out.print(tableau[i][j].caracterDAffichage());
if (tableau[i][j] instanceof Cuirasse)
System.out.print(tableau[i][j].caracterDAffichage());
}
System.out.println();
}
}
Afficher une grille
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.