IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Collection et Stream Java Discussion :

Afficher un Damier en tableau 2D


Sujet :

Collection et Stream Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Femme Profil pro
    Étudiante de Mr Zoom
    Inscrit en
    Octobre 2012
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiante de Mr Zoom
    Secteur : Services de proximité

    Informations forums :
    Inscription : Octobre 2012
    Messages : 5
    Par défaut Afficher un Damier en tableau 2D
    Allo,
    Je souhaite afficher un damier dans un tableau 2D.
    Toutefois, je ne comprends pas trop comment le faire.

    Voici la partie du code en question:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
     
    case 'D':
    				{
    					// Initialiser les valeurs dans le tableau
    					for (int i = 0; i < tab.length; i++)
    					{
    						for (int j = 0; j < tab[0].length; j++)
    						{
    								tab[i][j] = '*';
    						}
    						i++;
    					}
     
    					// Affichage du résultat
    					for (int i = 0; i < tab.length; i++)
    					{
    						for (int j = 0; j < tab[0].length; j++)
    						{
    							System.out.print (tab[i][j] + "  ");
    						}
     
    						System.out.println ();
    					}
    					break;
    				}
    Donc ce code affiche bien un tableau avec des étoiles partout (a chaque emplacement du tableau)

    toutefois, les étoiles doivent apparaîtrent dans cet ordre:


    Comment faire ?
    Merci!!!

  2. #2
    Membre à l'essai
    Femme Profil pro
    Étudiante de Mr Zoom
    Inscrit en
    Octobre 2012
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiante de Mr Zoom
    Secteur : Services de proximité

    Informations forums :
    Inscription : Octobre 2012
    Messages : 5
    Par défaut
    Mise à jour du code après quelques manipulations:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
     
    case 'D':
    				{
    					// Initialiser les valeurs dans le tableau
    					for (int i = 0; i < tab.length; i = i+3)
    					{
    						for (int j = 0; j < tab[0].length; j = j+3)
    						{
    							tab[i][j] = '*';
    							j++;
    							for ( j = 0; j < tab[0].length; j++)
    							{
    								tab[i][j] = '*';
     
    							}
     
    						}
    						i++;
    						for (int j = 0; j < tab[0].length; j++)
    						{
    							tab[i][j] = '*';
     
    						}
     
    					}
     
    					// Affichage du résultat
    					for (int i = 0; i < tab.length; i++)
    					{
    						for (int j = 0; j < tab[0].length; j++)
    						{
    							System.out.print (tab[i][j] + "  ");
    						}
     
    						System.out.println ();
    					}
    					break;
    				}
    Voici le résultat obtenu:


    Comme toujours, Merci d'avance.

    Karyna

  3. #3
    Membre à l'essai
    Femme Profil pro
    Étudiante de Mr Zoom
    Inscrit en
    Octobre 2012
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiante de Mr Zoom
    Secteur : Services de proximité

    Informations forums :
    Inscription : Octobre 2012
    Messages : 5
    Par défaut
    Mise à jour du code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
     
    case 'D':
    				{
    					// Initialiser les valeurs dans le tableau
    					for (int i = 0; i < tab.length; i = i+3)
    					{
    						for (int j = 0; j < tab[0].length; j = j+3)
    						{
    							tab[i][j] = '*';
    							j++;
    							tab[i][j] = '*';
     
    						}
    						i++;
    						for (int j = 0; j < tab[0].length; j = j+3)
    						{
    							tab[i][j] = '*';
    							j++;
    							tab[i][j] = '*';
     
    						}
     
    					}
     
    					// Affichage du résultat
    					for (int i = 0; i < tab.length; i++)
    					{
    						for (int j = 0; j < tab[0].length; j++)
    						{
    							System.out.print (tab[i][j] + "  ");
    						}
     
    						System.out.println ();
    					}
    					break;
    				}
    Résultat:

  4. #4
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Par défaut
    Bonjour,

    Tu testes le numéro des lignes s'il est pair ou impair pour commencer la coloration d'une case par noire ou blanche. Ensuite tu inverses les couleurs des colonnes successifs jusqu'au dernier colonne de la ligne.

    A+.

  5. #5
    Membre à l'essai
    Femme Profil pro
    Étudiante de Mr Zoom
    Inscrit en
    Octobre 2012
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiante de Mr Zoom
    Secteur : Services de proximité

    Informations forums :
    Inscription : Octobre 2012
    Messages : 5
    Par défaut
    Bonjour,

    On ne peut malheureusement pas utiliser pair impair car il s'agit d'un bloque de 4 étoiles, mais après quelques temps de travail je suis parvenu a un bout de code qui est capable de générer un damier, mais seulement dont les dimensions sont pair,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
     
    case 'D':
    				{
    					// Initialiser les valeurs dans le tableau
    					for (int i = 0; i < tab.length; i = i+3)
    					{
    						for (int j = 0; j < tab[0].length; j = j+3)
    						{
    							tab[i][j] = '*';
    							if (j <= (dimension)-1)
    							{
    							j++;
    							tab[i][j] = '*';
    							}
     
    						}
    						i++;
    						for (int j = 0; j < tab[0].length; j = j+3)
    						{
    							tab[i][j] = ' ';
    							if (j <= (dimension)-1)
    							{
    							j++;
    							tab[i][j] = ' ';
    							}
     
    						}
     
    					}
    					for (int i = 2 ; i < tab.length; i = i+3)
    					{
    						for (int j = 2; j < tab[0].length; j = j+3)
    						{
    							tab[i][j] = '*';
    							if (j <= (dimension)-1)
    							{
    							j++;
    							tab[i][j] = '*';
    							}
    						}
    						i++;
    						for (int j = 2; j < tab[0].length; j = j+3)
    						{
    							tab[i][j] = '*';
    							if (j <= (dimension)-1)
    							{
    							j++;
    							tab[i][j] = '*';
    							}
     
    						}
     
    					}
     
    					// Affichage du résultat
    					for (int i = 0; i < tab.length; i++)
    					{
    						for (int j = 0; j < tab[0].length; j++)
    						{
    							System.out.print (tab[i][j] + "  ");
    						}
     
    						System.out.println ();
    					}
    					break;
    				}
    Est ce que quelqu’un aurait une idée pour qu'il puisse afficher un tableau de dimension impair comme dans le premier exemple? Cette aide serait très apprécié!!!

  6. #6
    Modérateur
    Avatar de wax78
    Homme Profil pro
    R&D - Palefrenier programmeur
    Inscrit en
    Août 2006
    Messages
    4 096
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : R&D - Palefrenier programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2006
    Messages : 4 096
    Par défaut
    Je me semble d'âme charitable

    Au hasard, ceci ne marcherait pas ? (ton code me semble excessivement long pour si peu). Evidement j'ai couplé l'affichage avec le reste...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    public static void main(String[] args)
    		{
    			int Nbr_X = 2; // Nombre de case en X.
    			int Nbr_Y = 7; // Nombre case en Y
    			int dimX = 3; // "Longueur" de case en X (affiche plusieur fois la meme lettre).
    			int dimY = 3; // "Largeur" de case en Y. (même chose).
     
    			int cptM = 0; // Un simple compteur qui va servir a savoir ou l'on est dans la construction, l'index de la case courante. (qui pourrait même être évité, puisque cptM = j*Nbr_X+i).
     
    			// Premiere boucle sur les "lignes"
    			for (int i = 0; i < Nbr_X; i++)
    			{
    				// Retenir l'index de la case courante
    				int oldCPTM = cptM;
    				String tmp = "";
    				// 2 Eme boucle sur les "colonnes".
    				for (int j = 0; j < Nbr_Y; j++)
    				{
    					// Un variable qui va retenir quelle caractere on va "afficher".
    					String c = "I";
    					// Une petite operation basique pour retourne 0 ou 1 pour choisir une case sur 2 de l'autre "caractère".
    					if (cptM++%2==0) c="O";
    					// Simple boucle pour construire l'"affichage" en colonnes (pour afficher plusieur fois le meme caractère)
    					for (int kj = 0; kj < dimX; kj++)
    						tmp+=c;
    				}
    				// Meme chose que precedement mais pour afficher la ligne.
    				for (int j = 0; j < dimY; j++)
    					System.err.println(tmp);
     
    				// Revenir a l'index de la case courante (on a augmenter cptM dans la boucle des Nbr_Y).
    				cptM = oldCPTM+1;
    			}
    		}
    (Les "ça ne marche pas", même écrits sans faute(s), vous porteront discrédit ad vitam æternam et malheur pendant 7 ans)

    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

Discussions similaires

  1. [Tableaux] Afficher id d'un tableau array
    Par Pepito2030 dans le forum Langage
    Réponses: 7
    Dernier message: 01/06/2007, 20h27
  2. [MySQL] Afficher champs vides dans tableau
    Par rasmulti dans le forum PHP & Base de données
    Réponses: 7
    Dernier message: 23/02/2007, 01h19
  3. Réponses: 4
    Dernier message: 28/01/2007, 22h39
  4. [debutant]Afficher un damier
    Par mikedavem dans le forum 2D
    Réponses: 2
    Dernier message: 08/05/2006, 15h39
  5. [VBA-E]Afficher tout dans un tableau dynamique croisé
    Par alex_95 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 01/03/2006, 13h09

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo