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