Ah et petite question général aussi, il vaux mieux avoir genre 10 tableaux/listes avec 3/4 truc dans chaque ou un seul avec tout regroupé dedans? Ca change quelque chose niveau optim ?
J'ai un peu cherché sur le net francophone, je n'ai pas trouvé de réponse. Sur le net anglophone, beaucoup de sujets sur la même question à propose des tables SQL et autres bases de données. Il y a aussi une réponse sur l'utilisation du fertilisant dans l'agriculture du Paraguay qui m'a laissé un peu sur ma faim...
J'ai donc remplacé table (traduction de Google) par array...
ce qui m'a amené à cet article :
Better to store in one big array or several smaller ones?, dans lequel quelques points sont intéressants :
* quelqu'un a fait un test et a trouvé que le gros tableau était plus rapide que plusieurs petits (mais c'est en PHP) ;
* quelqu'un a écrit que l'accès à un élément du tableau par son index est constant quelque soit le nombre d'éléments du tableau ;
* enfin on se pose la question de ce que fait le langage "in the hood" (~derrière la scène), voir plus haut ce que fait le C# quand il manipule une liste.
Je pense que la question se pose en termes différents. Voici quelques réflexions de mon cru, que je soumets à votre sagacité :
* je ne vois pas l'intérêt de diviser un gros tableau en plusieurs petits : si les données représentent la même chose, elles devraient être groupées.
* plusieurs tableaux, cela pose plusieurs soucis à résoudre (je ne dis pas que c'est dur, je dis juste qu'il faut y penser) :
** comment fait-on pour décider si telle donnée va dans le tableau A ou le B ?
** parcourir le tableau : il faut parcourir plusieurs tableaux.
Je pense que le cas par cas est à considérer. Pour ce qui concerne tes monstres, un seul tableau est tout à fait possible, si l'élément permet de stocker la difficulté du monstre. Il faudra simplement adapter le code :
* mauvaise méthode : on tire un monstre au hasard, et on retire tant qu'il n'est pas de la bonne difficulté (si on a pas de chance, et qu'en plus il y a 998 monstres faciles et 2 difficiles, on risque d'être un peu long sur le tirage d'un difficile).
* autre méthode : on extrait un tableau temporaire avec les monstres de la bonne difficulté (ben on revient à plusieurs tableaux non ?)
* bonne méthode : je ne vois pas.
La question mérite d'être résolue, car elle se pose dans de multiples cas : le monstre peut avoir un ou plusieurs types de zones de vie, et en fonction de l'endroit où va se passer la mission, la probabilité d'en trouver sera nulle ou très importantes. C'est ce que fait Minecraft, je vais essayer de voir comment se passent les tirages aléatoires dans ce jeu.
C'est aussi le cas pour le tirage aléatoire de loot : je suis toujours surpris, dans Fallout 4, de trouver des munitions dans une école (quoique, c'est un jeu US non ?), ou des armes de 120 cm de long dans une caisse à outils individuelle...