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

avec Java Discussion :

Comment créer ma liste ?


Sujet :

avec Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé

    Profil pro
    Inscrit en
    Août 2008
    Messages
    1 222
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 1 222
    Par défaut Comment créer ma liste ?
    Bonjour je souhaite crée une liste,
    on va dire que on est dans un couloir qui possède 10 cases,
    chacune d'elle est noté de de A à J,
    le but est de choisir au hasard un chiffre de 1 à4 , et en fonction du chiffre sortie je dit à quelle position où je suis, lorsque je suis au fond du couloir je recommence.

    Comment je doit m'y prendre pour le faire sans utiliser les tableaux avec indice, j'ai toujours en tête un tableau avec un indice chiffré et il m'est difficile de m'en détaché car le but est de ne pas se référencer à un indice mais de dire directement où je suis (je ne dit pas aller directement à la case E mais avancer de 4 case suivante).

    merci de la réponse

  2. #2
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 582
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 582
    Par défaut
    Je vois pas ce qui t'empêche de faire ça avec des indices chiffrés : il suffit de retenir à quel indice tu te trouves là maintenant, et pour avancer de 4, ben tu y ajoutes 4.

    Mais si ça te perturbe tant que ça, tu peux toujours utiliser une List et son ListIterator. C'est un objet de parcours d'une List qui te propose d'aller chercher l'élément suivant ou précédent, sans te forcer à connaître l'indice où tu te trouves ni celui du suivant ou du précédent.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre éprouvé

    Profil pro
    Inscrit en
    Août 2008
    Messages
    1 222
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 1 222
    Par défaut
    merci ,
    le but est de crée un jeu de déplacement, et je pense que mon problème
    était de savoir comment crée mes objets, je pense donc qu'il faut
    - générer un chiffre (que je sauvegarde dans un attribut pour le mémoriser)
    - l'augmenter
    et avec l'augmentation de ce chiffre je récupère à travers une array liste sont indice et le nom de sa case.

    par contre je ne comprends pas qu'avec ce code je n'arrive jamais à avoir le chiffre 4 ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
            int r = (int)( Math.random()*4);
    il me semble que Math.random() me produit un float de 0 à 1,

    si je tombe sur 1 qui est son maximum ça fait 1*4 = 4 ?
    si je tombe sur 0 qui est son maximum ça fait 0*4 = 0 ?

    mais pourquoi je n'arrive pas avoir ce chiffre ?
    normalement je doit avoir des chiffres aléatoire de 0 à 4 inclus ?

  4. #4
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 582
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 582
    Par défaut
    Bah non, tu ne peux obtenir 4 que si Math.random() renvoie 1, toute autre valeur renverra un entier inférieur.
    En théorie la probabilité de tomber sur une valeur précise, que ce soit 1 ou 0 ou 0,78464 devrait être zéro. En réalité elle est zéro ou proche de zéro, ça dépend lesquels. En l'occurrence la JavaDoc nous informe que la probabilité de 1 est nulle, ça n'arrivera pas et c'est tout, c'est un intervalle ouvert à droite.

    Mais de toute façon, la probabilité d'obtenir 4 devrait être 1/5, pas proche de zéro. Il fallait donc choisir une formule qui renvoie 4 pour un large intervalle de valeurs random et pas une seule valeur improbable.

    Ça s'obtient facilement avec la classe Random :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    private final Random random = new Random();
     
    // ...
     
    int r = random.nextInt(5);
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  5. #5
    Membre éprouvé

    Profil pro
    Inscrit en
    Août 2008
    Messages
    1 222
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 1 222
    Par défaut
    merci de ces précision,
    cela m'a perturbé, donc en java on n'attendra jamais 1, c'est plus claire comme ça

  6. #6
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 582
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 582
    Par défaut
    Citation Envoyé par keokaz Voir le message
    cela m'a perturbé, donc en java on n'attendra jamais 1, c'est plus claire comme ça
    En Java, en maths, et beaucoup d'autres.

    Mais c'est pas la question : la valeur 4 devrait avoir la même probabilité que les autres, donc tomber grâce à un intervalle de valeurs aussi large que les autres. Une seule valeur ça ne va pas.
    Tu dis que tu ne tombais jamais sur la valeur 4, mais tu as essayé combien de fois ? Avec moins d'une dizaine de millions de milliards de fois, tu n'en sais rien, si ça tombe jamais sur 4, t'as même pas atteint 50% de proba de tomber dessus.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 1
    Dernier message: 24/11/2008, 14h38
  2. Comment créer une liste de valeur
    Par chawiken dans le forum IHM
    Réponses: 3
    Dernier message: 20/05/2008, 15h04
  3. Comment créer une liste de liste en Pascal ?
    Par sarah7 dans le forum Langage
    Réponses: 1
    Dernier message: 27/04/2008, 15h54
  4. Comment créer une liste ou une instance de classe dans une fonction ?
    Par Neolander dans le forum Général Python
    Réponses: 9
    Dernier message: 05/03/2008, 19h22
  5. Réponses: 5
    Dernier message: 29/09/2005, 14h37

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