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 PHP Discussion :

Gestion de pourcentage


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Août 2010
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 5
    Par défaut Gestion de pourcentage
    Bonjour à tous,

    Je suis actuellement un train de développer un petit jeux par navigateur basé sur des fouilles sur une carte et le développement d'une ville en communauté mais un "problème" se pose à moi.

    J'ai développer ma page de gestion des objets en fonction du résultat d'une variable créer avec rand() de 0 à 100 (pour les pourcentages), mais je me suis aperçus que le résultat n'était pas vraiment top...

    Je m'explique, j'ai une liste objets que j'ai divisé en plusieurs catégorie, actuellement j'ai ce système mais pour plus de rapidité et plus de facilité de développement je souhaiterais changer ma méthode et utiliser des pourcentages qui seront inscrit dans une base de donnée.


    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
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    $percent = rand(0,100);
    if($percent >= 0 && $percent <= 50){
        $find = rand(0,6);
        switch($find){
        case 0:
            $item = 6; //Barre de métal
            break;
        case 1:
            $item = 7; //Planche de bois
            break;
        case 2:
            $item = 10; //Cage
            break;
        case 3:
            $item = 13; //Steck cru
            break;
        case 4:
            $item = 17; //Bouteille d'eau impure
            break;
        case 5:
            $item = 22; //Adhésif
            break;
        case 6:
            $item = 27; //Briques
            break;
       }
    }elseif($percent > 50 && $percent <= 60){
        $find = rand(0,7);
        switch($find){
            case 0:
                $item = 8; //Poutre en métal
                break;
            case 1:
                $item = 9; //Poutre en bois
                break;
            case 2:
                $item = 18; //Vodka
                break;
            case 3:
                $item = 19; //Whisky
                break;
            case 4:
                $item = 20; //Vis
                break;
            case 5:
                $item = 21; //Boulon
                break;
            case 6:
                $item = 23; //Poigné de clous
                break;
            case 7:
                $item = 24; //Poigné de clous rouillés
                break;
        }
    }
    Et j'en passe, j'ai au total, pour le moment, 80 objets

    Ma table pour les objets à pour structures

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    CREATE TABLE IF NOT EXISTS `itemlist` (
      `ItemNum` int(11) NOT NULL AUTO_INCREMENT,
      `ItemName` varchar(50) NOT NULL,
      `ItemDesc` text NOT NULL,
      `Category` int(11) NOT NULL,
      `Percent` int(11) NOT NULL,
      PRIMARY KEY (`ItemNum`),
      UNIQUE KEY `ItemNum` (`ItemNum`)
    ) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=81 ;
    Imaginons que j'ai mis dans ma catégorie 1 les objets suivant avec des pourcentages associés :

    - Barre de métal => 70%

    - Planche de bois => 70%

    - Cage => 20%

    - Steck cru => 30%

    etc, etc...

    Comment dois-je procéder afin d'utiliser ces pourcentages pour dire que tel ou tel objet à tant de pourcentage de chance de sortir en sachant que pour une fouille, il n'y as qu'un seul objet qui sors à chaque fois, le système que j'ai actuellement fonctionne bien mais n'est pas des plus performant et serra plus difficile à modifier lors de mise à jours potentielle.

    Dois-je comparer ma colonne de pourcentage par rapport à une variable rand()?

    Je suis un peu perdu et donc je me tourne vers cette communauté afin de trouver une solution plus fiable.

    Merci par avance de vos réponse.

    Cordialement

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Tu ne peux pas avoir deux objets qui ont 70% de chances de sortir.
    On va dire que tes pourcentage sont des ponderations de sortie : le pourcentage final dépendra donc du nombre d'objets et des poids associés.
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SELECT t1.ItemNum
    FROM  itemlist t1
    WHERE RAND( ) * (SELECT SUM( Percent) FROM  itemlist ) < (SELECT SUM( t2.Percent )  FROM  itemlist  t2 WHERE t2.Percent <= t1.Percent)
    ORDER BY Percent
    LIMIT 1
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Août 2010
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 5
    Par défaut
    Merci pour la réponse, j'ai trouver, avec l'aide d'un ami, une solution php en utilisant APC.

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Ca serait sympathique de donner ta solution sur le forum pour en faire profiter tout le monde.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

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

Discussions similaires

  1. [XL-2003] Gestion graphiques en VBA: Afficher pourcentages et nom de catégorie sous condition
    Par garheb dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 19/07/2011, 14h03
  2. Réponses: 2
    Dernier message: 31/08/2002, 21h37
  3. Réponses: 4
    Dernier message: 04/07/2002, 12h31
  4. c: gestion des exceptions
    Par vince_lille dans le forum C
    Réponses: 7
    Dernier message: 05/06/2002, 14h11
  5. gestion d'un joystick ...
    Par Anonymous dans le forum DirectX
    Réponses: 1
    Dernier message: 23/05/2002, 12h53

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