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

Langage Java Discussion :

pb de taille de liste


Sujet :

Langage Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2008
    Messages
    227
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2008
    Messages : 227
    Par défaut pb de taille de liste
    Bonsoir,
    J'ai un pb avec le bout de code suivant et je ne comprend vraiment pas pourquoi!!

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Random random = new Random();
     
    			int numeroCarte1 = random.nextInt(pioche.size()-1);
     
    			System.out.println("vous piochez\t"+ pioche.get(numeroCarte1));
    eclipse ne veut pas me le compiler, il doit y avoir un pb avec les indices mais je ne vois pas lequel.
    J'explique ce que je veux faire:
    je veux afficher le nom d'une carte de la pioche(pour l'instant je ne la pioche pas, donc pas de remove)
    Si la pioche contient 10 cartes alors les indices vont de 0 à 9 donc, si je veux afficher le nom d'une carte au hasard, il faut que je fasse
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    random.nextInt(pioche.size()-1);
    et alors je génére un nombre compris entre 0 et 10 -1 soit 9
    Je ne vois pas où est le pb


    Merci d'avance de votre aide

  2. #2
    Membre Expert Avatar de guigui5931
    Profil pro
    Chef de projet NTIC
    Inscrit en
    Avril 2006
    Messages
    1 667
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 667
    Par défaut
    Si tu as une erreur de compilation donne nous le message et dis nous sur quelle ligne elle apparait.

  3. #3
    Membre éclairé
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2008
    Messages
    227
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2008
    Messages : 227
    Par défaut
    Ok alors voici le message d'erreur:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Exception in thread "main" java.lang.IllegalArgumentException: n must be positive
    	at java.util.Random.nextInt(Unknown Source)
    	at Joueur.Joueur.piocherUneCarte(Joueur.java:71)
    	at Joueur.Joueur.jouerSonTour(Joueur.java:138)
    	at Jeu.Moteur.main(Moteur.java:320)
    Voici la ligne 71

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    int numeroCarte1 = random.nextInt(pioche.size()-1);
    et voici le bout de code qui contient la ligne 71

    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
    Random random = new Random();
    		for(int i=0;i <2;i ++ ){
    			int numeroCarte1 = random.nextInt(pioche.size()-1);
     
    			System.out.println("vous piochez\t"+ pioche.get(numeroCarte1));
    			int numeroCarte2=numeroCarte1;
     
    				while (numeroCarte2==numeroCarte1){
    					numeroCarte2 = random.nextInt(pioche.size()-1);
    				}
     
    			System.out.println("vous piochez\t"+ pioche.get(numeroCarte2));
     
     
    			System.out.println("Si vous voullez garder la première carte, tapez 1, sinon tapez 2.La carte que vous " +
    					"n'aurez pas choisie sera replacée dans le paquet");
    			int choix=0;
    			choix=Clavier.lireInt();
     
    				while((choix!=1)&&(choix!=2)){
    					System.out.println("Choisissez l'une des cartes");
    					choix=Clavier.lireInt();
    				}
     
    				switch (choix){
     
    					case 1: System.out.println("vous avez pioché"+pioche.get(numeroCarte1));choix=1;pioche.remove(numeroCarte1);;break;
    					case 2: System.out.println("vous avez pioché"+pioche.get(numeroCarte2));choix=2;pioche.remove(numeroCarte2);break;
    				}
    		}
    Je pense que les erreurs 138 et 320 sont des conséquences de la première ...

    Merci bcp de votre aide

  4. #4
    Membre Expert Avatar de guigui5931
    Profil pro
    Chef de projet NTIC
    Inscrit en
    Avril 2006
    Messages
    1 667
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 667
    Par défaut
    D'après l'erreur à un moment de l'exécution de ta liste pioche est vide donc son nombre d'élément - 1 est négatif ce qui cause une exception dans le random.nextInt.

  5. #5
    Membre éclairé
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2008
    Messages
    227
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2008
    Messages : 227
    Par défaut
    Ce qui compte c'est que la pioche ne soit pas vide au moment ou j'utilise la méthode nextInt(), non?

  6. #6
    Membre Expert
    Avatar de krachik
    Inscrit en
    Décembre 2004
    Messages
    1 964
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 964
    Par défaut
    Citation Envoyé par tanguy.L Voir le message
    Ce qui compte c'est que la pioche ne soit pas vide au moment ou j'utilise la méthode nextInt(), non?
    Oui exactement c'est à dire qu'il faut que (pioche.size()-1)>0
    Mais en plus le code que le poste ne nous aide pas pour savoir si pioche est bien rempli de quelque chose
    @+

Discussions similaires

  1. [IP-2010] Taille des listes déroulantes
    Par Blakovic dans le forum InfoPath
    Réponses: 1
    Dernier message: 02/09/2013, 08h58
  2. [SQL] Taille maximale liste SQL en SAS
    Par Jefbrel dans le forum SAS Base
    Réponses: 7
    Dernier message: 21/06/2011, 19h06
  3. [OL-2003] Taille des listes de distribution
    Par Daejung dans le forum Contribuez
    Réponses: 1
    Dernier message: 11/03/2010, 00h34
  4. [HTML] probleme réglage de taille de liste de choix
    Par sephirothmana dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 19/06/2006, 11h42
  5. SQL 2000 - Liste + taille des tables et index
    Par Fox dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 12/03/2004, 15h59

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