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

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    avril 2019
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : avril 2019
    Messages : 1
    Points : 1
    Points
    1

    Par défaut Duplicats en remplissant un tableau d'objet

    Bonjour,

    Je suis débutant en Java et je dois faire un Scrabble et je rencontre un problème avec ma classe SacDeLettres et en particulier une méthode qui me permet de remplir mon tableau avec des objets Lettres.
    En effet, je remplis mon tableau avec un certain nombre de Lettres qui doivent exister en un certain nombre d'exemplaire dans mon SacDeLettres.
    Dans ma méthode "remplirSac" lorsque j'affiche au fur et a mesure mes objet que je mets dans mon tableau ils sont juste mais lorsque que j'affiche ce même tableau en dehors de ma méthode, mon tableau est remplie que d'une seule et même valeur de Lettre (que de la lettre Z)

    Je n'arrive pas a comprendre pourquoi..

    Voici mon 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
    37
    38
    39
    40
    public void remplirSac() {
     
    		Lettres lettre = new Lettres();
    		int enCours = 0;
    		int aux = 0;
    		char [] alphabet = new char[26];
     
    		for (char i = 'A'; i <= 'Z'; i++) {
    		    alphabet[i-'A'] = i;
    		}
     
        for(int j = 0; j < alphabet.length; j++) {
     
    			lettre.setChar(alphabet[j]);
    			lettre.setNbExemplaire(nombreExemplaire(lettre.getChar()));
    			lettre.setValeur(valeurLettres(lettre.getChar()));
     
    			enCours = enCours + lettre.getNbExemplaire();
     
          for(int i = aux; i < enCours; i++){
     
    				this.sac[i] = lettre;
    				//Ecran.afficherln(lettre.getChar());
    				//Ecran.afficherln(this.sac[i]);
          }
     
    			aux = enCours;
     
        }
     
     
      }
     
    public void afficherSac() {
     
    		for(int i = 0; i<100; i++) {
    		 	Ecran.afficherln(this.sac[i]);
    		}
     
    	}

  2. #2
    Modérateur

    Profil pro
    Inscrit en
    septembre 2004
    Messages
    11 656
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : septembre 2004
    Messages : 11 656
    Points : 19 780
    Points
    19 780

    Par défaut

    Hello,

    tu fais un seul "new Lettres()". Donc tu as un seul objet Lettres, et c'est à ce seul et unique objet que tu passes ton temps à dire et redire quelle est la lettre qu'il contient.

    Tu devrais probablement créer un nouvel objet à chaque fois que tu veux dire à cet objet de contenir une lettre.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

Discussions similaires

  1. Problème pour remplir un tableau
    Par Mathieu1982 dans le forum Excel
    Réponses: 34
    Dernier message: 11/07/2016, 17h48
  2. Problème pour remplir un tableau de string
    Par Mescalito50 dans le forum C
    Réponses: 5
    Dernier message: 20/05/2011, 18h06
  3. problème pour delete un tableau d'objets
    Par Tekura dans le forum C++
    Réponses: 3
    Dernier message: 02/02/2011, 22h23
  4. Problème pour remplir un tableau d'objet
    Par bobinouze dans le forum java.util
    Réponses: 5
    Dernier message: 26/12/2009, 18h55
  5. Problème pour remplir un tableau.
    Par sandball22 dans le forum C
    Réponses: 2
    Dernier message: 02/05/2007, 14h54

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