[Réglé]Valeurs aléatoires pour un remplissage de carte - Version imprimable +- JeuWeb - Crée ton jeu par navigateur (https://jeuweb.org) +-- Forum : Discussions, Aide, Ressources... (https://jeuweb.org/forumdisplay.php?fid=38) +--- Forum : Programmation, infrastructure (https://jeuweb.org/forumdisplay.php?fid=51) +--- Sujet : [Réglé]Valeurs aléatoires pour un remplissage de carte (/showthread.php?tid=606) |
[Réglé]Valeurs aléatoires pour un remplissage de carte - Shidame - 04-01-2007 Bonjour à tous et meilleurs voeux, Il est vrai que j'ai été longuement absent au niveau des post mais je passe toujours de temps en temps sur le forum, la fac me prend du temps. Bref passons directement au vif du sujet. Je souhaite remplir aléatoirement une carte de systemes stellaires ayant comme attributs : - coordonnée absysse : x (entre 1 et 200) - coordonnée ordonnée : y (entre 1 et 200) - une image associé sur la carte (un simple INT) : skin (entre 1 et 6) Le coin haut-gauche représente le zéro. J'ai donc créé un script pour remplir aléatoirement cette carte de 40000 cases a 10% soit environ 4000 systèmes. (tout les scripts ci-dessous sont au stade de broullion voir code panzani ) Voici mon script : creer_systemes.php Code PHP :
Ensuite j'utilise la librairie GD pour visualiser ma création :p , car bon pas évident pour un humain (même demi-dieu) d'interpréter une suite de coordonnée. build_map.php Code PHP :
On vois clairement un motif apparaitre, je sais que la fonction rand() est pseudo aléatoire mais bon la je bloque.... J'ai également oté les couleurs cela donne ceci : On vois que rand() a du mal sur les petits ecarts ( 1 à 6). Ai-je commis une erreur? Voyez vous un moyen de remédier à ce problème? Merci d'avance, RE: Valeurs aléatoires pour un remplissage de carte - Loetheri - 04-01-2007 Utilise mt_rand de PHP. Il est nettement plus performant pour l'avoir essayé de nombreuses fois. RE: Valeurs aléatoires pour un remplissage de carte - Shidame - 04-01-2007 Merci je viens d'essayer c'est bien mieux mais nécessite du coup d'effectuer un calcul par PHP. Voici la partie que j'ai modifié: dans 'creer_systme.php' Code PHP :
Merci Loetheri, RE: Valeurs aléatoires pour un remplissage de carte - Loetheri - 04-01-2007 Que cela soit PHP ou MySQL, c'est toujours un serveur derrière. Ce qui change, c'est l'implémentation de la fonction. Plus ta fonction est performante pour trouver des valeurs aléatoires, plus il y a de chances que cela utilise de la puissance de ton serveur. RE: Valeurs aléatoires pour un remplissage de carte - Shidame - 04-01-2007 Je ne parlai pas de ca exactement, avant tout etait interprétai directement par mysql, mais ca n'est pas grave ca marche c'est l'essentiel, et puis le script ne sert que pour remplir la BDD. En cherchant dans le manuel php : mt_rand consome moins que rand() :p RE: [Réglé]Valeurs aléatoires pour un remplissage de carte - joshua - 05-01-2007 gloups. Effectivement, je pensais aps que le rand() était AUSSI pourri.... RE: [Réglé]Valeurs aléatoires pour un remplissage de carte - Loetheri - 05-01-2007 On parle de rand de MySQL pour la première image. rand de PHP ne doit guère fonctionner mieux que cela. Il vaut mieux utiliser mt_rand de PHP. |