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 :

Controler le random


Sujet :

Langage Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Octobre 2006
    Messages
    94
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 94
    Par défaut Controler le random
    Bonjour à tous,


    je suis confronté à un problème : je dois développer une appli dans laquelle je génère des données aléatoirement au début (ça c'est fait).

    Le joueur joue avec mon appli, mais j'aimerai lui donner une sorte de code pour pouvoir rejouer la même partie plus tard.
    Je pense que ce code pourrait être ce que je vais appeler la "graine" qui a servit à faire la distribution aléatoire (souvent l'horloge).

    En fait cela permet de rejouer la même partie sans stocker de données, donc en utilisant ce chiffre, le tirage sera exactement le même que le premier, on truc un peu le random.

    Savez vous comment récupérer un telle chiffre, avec quelle méthode ?
    J'ai regardé pour la méthode Math.random(), cela ne semble pas possible.

    merci bien

  2. #2
    Membre Expert Avatar de jabbounet
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juin 2009
    Messages
    1 909
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Juin 2009
    Messages : 1 909
    Par défaut
    Si tu as utilisé Random(long seed) normalement tu connais seed

    http://download.oracle.com/javase/1....il/Random.html

    A partir de là tu fais ce que tu veux avec seed, comme le stocker dans un fichier de sauvegarde, l'afficher quelque part en espérant que ton joueur le prenne en note.....

    Le souci est de savoir ou il va reprendre, depuis le début a chaque fois c'est simple, mais si le jeu est long ce sera fastidieux, dans ce cas tu pourrais envisager de sauver la progression du joueur, ce qui reviens a savoir a quel tirage de la séquence il s'est arrêté.

  3. #3
    Membre confirmé
    Inscrit en
    Octobre 2006
    Messages
    94
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 94
    Par défaut
    Hmmm hmmm, je n'étais pas sûr.

    Effectivement il reprendra au début, faut pas déconner non plus


    Merci bien

  4. #4
    Membre Expert Avatar de jabbounet
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juin 2009
    Messages
    1 909
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Juin 2009
    Messages : 1 909
    Par défaut
    si tu lis bien le lien que je t'ai donné:

    If two instances of Random are created with the same seed, and the same sequence of method calls is made for each, they will generate and return identical sequences of numbers. In order to guarantee this property, particular algorithms are specified for the class Random. Java implementations must use all the algorithms shown here for the class Random, for the sake of absolute portability of Java code. However, subclasses of class Random are permitted to use other algorithms, so long as they adhere to the general contracts for all the methods.
    Ensuite tu peux faire un test rapide (pour faire le saint thomas).

    Code Java : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    Random a = new Random(7516); // 7516 ou n'importe quel moyen 
    Random b = new Random(7516); // garantissant que a et b ont la même graine.
     
    System.out.println("debut du test");
    for(int i = 0 ; i < 50000 ; i++) {
      int ra = a.nextInt(); 
      int rb = a.nextInt();
      if (ra != rb) { System.out.println("Ouch"); } 
    }
    System.out.println("fin du test");

  5. #5
    Membre confirmé
    Inscrit en
    Octobre 2006
    Messages
    94
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 94
    Par défaut
    Vivi, mais il reprendra au début quand même, car sa "notation" en dépendra

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

Discussions similaires

  1. [VB6] [Interface] Nbre de contrôles maxi dans une feuille
    Par Midou dans le forum VB 6 et antérieur
    Réponses: 7
    Dernier message: 13/10/2002, 16h09
  2. [VB6] [Interface] Tester le Type de Controle
    Par SpaceFrog dans le forum VB 6 et antérieur
    Réponses: 9
    Dernier message: 16/09/2002, 09h51
  3. Random en Assembleur
    Par funx dans le forum Assembleur
    Réponses: 9
    Dernier message: 02/09/2002, 17h05
  4. [controle] propriété read only
    Par Fizgig dans le forum Composants VCL
    Réponses: 6
    Dernier message: 28/08/2002, 10h30
  5. Rx Controls Gif animés
    Par toufou dans le forum Composants VCL
    Réponses: 6
    Dernier message: 23/08/2002, 14h09

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