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

C# Discussion :

Random avec priorités


Sujet :

C#

  1. #1
    Futur Membre du Club
    Inscrit en
    Juin 2011
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Juin 2011
    Messages : 15
    Points : 8
    Points
    8
    Par défaut Random avec priorités
    Bonjour, j'ai un jeu en ligne en C#, bon le projet C# n'est pas le mien, mais j'essaye d'appendre.

    Voilà ce que j'essaye de faire:

    uint num1 = 1;
    uint num2 = 2;
    uint num3 = 3;
    uint num4 = 4;

    1erement , le programme doit choisir aleatoirement un de ces 4 numeros, mais avec un priorité, par exemple, num1 à 60% de chance, num2 à 20%, num3 & 4 ont 10%, donc num1 va apparaitre plus que les autres, voilà mon code pour le Random, mais je ne sais pas comment mettre la priorité(60%,20% etc...)

    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
    uint id = 0;
                        switch (((byte)Kernel.Random.Next(1, 5)))
                        {
                            case 1:
                                id = 200438; //doit avoir 50% de chance
                                break;
     
                            case 2:
                                id = 200439; //doit avoir 20% de chance
                                break;
     
                            case 3:
                                id = 200440; //doit avoir 10% de chance
                                break;
     
                            case 4:
                                id = 200419; //doit avoir 10% de chance
                                break;
     
                            case 5:
                                id = 200012; //doit avoir 100% de chance
                                break;
    }
     
    Console.WriteLine("le code est:" + id + "");

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    332
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Juin 2002
    Messages : 332
    Points : 502
    Points
    502
    Par défaut
    Génère un random de 1-100...

  3. #3
    Membre éprouvé
    Avatar de neilbgr
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Août 2004
    Messages
    651
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2004
    Messages : 651
    Points : 1 177
    Points
    1 177
    Par défaut
    Pourquoi ne pas utiliser la méthode NextDouble() d'une instance de Random et ensuite de voir si le résultat est dans [0;0.5[ => cas 1, dans [0.5;0.7[ => cas 2, dans [0.7;0.8[ => cas 3, [0.8;0.9[ => cas 4 et enfin [0.9;1[ => cas 5.

  4. #4
    Futur Membre du Club
    Inscrit en
    Juin 2011
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Juin 2011
    Messages : 15
    Points : 8
    Points
    8
    Par défaut
    comment faire des cases multiples?


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    byte type = (byte)ServerBase.Kernel.Random.Next(1, 100);
                        switch (type)
                        {
                            case 1 à 50: Uid = 711214; break;
                            case 51 à 70: Uid = 711215; break;
                            case 71 à 100: Uid = 711216; break;
                         }
     
    Console.WriteLine("le code est" + uid + "");

  5. #5
    Futur Membre du Club
    Inscrit en
    Juin 2011
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Juin 2011
    Messages : 15
    Points : 8
    Points
    8
    Par défaut
    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
    {
                                byte chn = (byte)ServerBase.Kernel.Random.Next(1, 100);
     
                               if (chn > 0 && chn <= 50)
                                {
                                    Console.WriteLine("A");
                                    break;
                                }
                                if (chn > 50 && chn <= 100)
                                {
                                    Console.WriteLine("B");
                                    break;
                                }
                               if (chn > 95 && chn <= 100)
                                {
                                    Console.WriteLine("C");
                                    break;
                                }
     
     
                                break;
                            }
    Je l'ai trouvé !!!

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    332
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Juin 2002
    Messages : 332
    Points : 502
    Points
    502
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
                var n = new Random().Next(1, 100);
                Console.WriteLine( n < 50 ? "A" : (n >= 50 && n < 70) ? "B" :  "C");

Discussions similaires

  1. Problème fonction random avec linux
    Par fabetvince dans le forum C
    Réponses: 12
    Dernier message: 25/05/2006, 23h45
  2. Comment faire un random avec un min et un max
    Par crocodingo dans le forum C++
    Réponses: 3
    Dernier message: 06/04/2006, 11h19
  3. Tri d'une liste d'attente avec priorité
    Par boutchz dans le forum Access
    Réponses: 8
    Dernier message: 02/03/2006, 18h42
  4. [Conception] Queue avec priorité
    Par Mobius dans le forum Général Java
    Réponses: 4
    Dernier message: 11/04/2005, 08h26
  5. Lancement de processus avec priorité
    Par GMI3 dans le forum Administration système
    Réponses: 2
    Dernier message: 14/06/2004, 16h43

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