Se connecter avec
S'enregistrer | Connectez-vous

Besoin d'aide: Matrice de caractères en Java

Dernière réponse : dans Programmation

Bonjour,

J'aimerais créer un programme en java qui affiche ceci:

+-----------------+
+ +
+ +
+-----------------+

J'ai le code suivant (qui biensûr ne fonctionne pas dutout comme je le souhaiterais):

char[][] tableau;
tableau=new char[hauteur][largeur];

for(i=0; i<hauteur; i++)
{

for(j=0; j<largeur; j++)
{
tableau[0][j]= '-';
tableau[0]= '+';

System.out.print(tableau[j]);
}
}

Pouvez-vous me dire svp ce qui cloche là dedans? J'ai beau le modifier, je n'obtiens pas le bon affichage.

Merci d'avance!
Lassé par la pub ? Créez un compte

Bonjour,

Ton code me semble "un peu confus".
1/ Tu veux seulement l'afficher le dessin (si oui, pourquoi stocker les caractères ceci dans une matrice ?)
2/ Tu oublies les retour à la ligne pour chaque ligne.
3/ Tu ne mets pas le symbole '+' pour les cases du type tableau[0][1]
4/ Fais attention, au départ, tu fais tableau[0][0]='-', et juste après ='+' !

Indice:
-Pour afficher la 1ere et la dernière, tu peux utiliser un code identique.
-Pour le "centre" de ton dessin, tu peux faire 2 boucles imbriquées pour afficher les 2 '+'

Bon courage, A+

Bonjour, tout d'abord merci pour vos reponses... Depuis, voilà où j'en suis:

public class Laby
{
public static void main(String[] args)
{


/*Declaration des variables*/
int hauteur;
int largeur;


/*Recuperation des donnees*/
hauteur=Integer.parseInt(args[0]);
largeur=Integer.parseInt(args[1]);


char[][]tableauVide=new char[hauteur][largeur];

tableauVide= creerTableauVide(hauteur,largeur);
}

public static char[][] creerTableauVide(int h, int l)
{
int i,j;

for(i=0; i<h; i++)
{
for(j=0; j<l; j++)
{
if((j==0 && i==0) || (i==h-1 && j==l-1) ||(i==h-1 && j==0) || (i==0 && j==l-1)) System.out.print("+");
else if ((i==0 && j!=0 && j!=l-1) || (i==h-1 && j!=0 && j!=l-1)) System.out.print("-");
else if((j==0 && i!=0 && i!=h-1) || (j==l-1 && i!=0 && i!=h-1)) System.out.print("|");
else System.out.print(" ");
}

System.out.println(" ");

}


}

}


Ma fonction creerTableauVide fonctionne très bien, j'obtiens le rectangle que je voulais. Sauf que je ne sais pas comment faire pour l'utiliser dans mon main, et quel devrait être mon "return"... Normalement je devrais mettre tous les caractères de mon rectangle dans "tableauVide[][]" mais là aussi je bloque...

Merci d'avance les programmeurs...

Voilà mon code:

public class Jeux
{
public static void main(String[] args)
{

int i,j;

int hauteur;
int largeur;


/*Recuperation des données*/
hauteur=Integer.parseInt(args[0]);
largeur=Integer.parseInt(args[1]);



char[][] tableauVide= new char[hauteur][largeur];

tableauVide= creerTableau(hauteur,largeur);
System.out.print("Voici le tableau: "+tableauVide);
}



public static char[][] creerTableau(int h, int l)
{

char[][] tab= new char[h][l];
int i,j;

for(i=0; i<h; i++)
{
for(j=0; j<l; j++)
tab[j]='*';

}

return tab;

}

}


Je voudrais biensûr qu'il m'affiche un rectangle plein d'étoiles. ça compile mais affiche ceci: Voici le tableau: [[C@12b6651

Que faire svp?
Lassé par la pub ? Créez un compte
Tom's guide dans le monde