[résolu]la donnée "aléatoire" - 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ésolu]la donnée "aléatoire" (/showthread.php?tid=1619) |
[résolu]la donnée "aléatoire" - biboum - 21-08-2008 Bonjour Pour ceux qui se rapelle de mes derniers POST ...^^ j'ai progresser :p Mais j'aimerai savoir comment crée l'évènement aléatoire ? Par exemple dans mon cas...j'aimerai que lors du passage de tour, des évènements climatique se déroule. Mais bon par forcement à chaque tour, ni forcement toujours sur les même pays Bref comment coder ce aléatoire, comment faire pour coder un "une chance sur X" ? le php seul arrive t'il à faire cela ? Ou bien faut-il passer en un autre code, javascript par exemple ? Je vous remercie (Pas trouver de correspondance dans la recherche...) RE: la donnée "aléatoire" - Asther - 21-08-2008 Salut, je sait pas si j'ai tout saisi mais avec un rand me parait la solution la plus logique: Code PHP :
RE: la donnée "aléatoire" - biboum - 21-08-2008 Ha bah oui ca ca peut marcher j'ai l'impression, je ne savais pas que l'on pouvais utiliser les rand avec des variables "texte". Bah merci beaucoup Je pense que cela me suffira si je l'adapte un peu. Et d'un point de vue plus complexe y a pas un moyen ? De choisir aléatoirement un évènement qui se déroulera aléatoirement sur des térritoires aléatoire... Comment tu vas additionner les trois variables rand ? RE: la donnée "aléatoire" - Asther - 21-08-2008 si, de la même façon en ayant un table evenement indéxé et en faisant un rand sur la table ^^.. mais je ne comprend pas ce que tu veut dire par "additionner les rands". RE: la donnée "aléatoire" - Sephi-Chan - 21-08-2008 Bonjour, PHP suffit à lancer des événements aléatoires. Il te suffit par exemple de récupérer un tableau (codé en dur, issu d'une BdD, d'un fichier, etc.) qui associe à chaque nom d'événements un intervalle. Puis, sur ta page, tu tire un nombre aléatoire avec la fonction mt_rand(). Il te suffit ensuite de stocker l'événement quelque part, pour ne pas le tirer à nouveau à chaque visite de la page. Par exemple, si tu tires un mt_rand(1, 100), voilà à quoi pourrait ressembler ton tableau d'événements : Tremblement de terre : 1, 3 Eruption volcanique : 4, 4 Pluie : 5, 20 Ici, un tremblement de terre a 3% de chance du survenir, alors qu'une éruption volcanique n'a qu'1% de chance de se produire. La pluie, plus courante, survient dans 15% des cas. Dans les autres cas, rien ne se passe. Ensuite, pour effectuer un nouveau tirage à intervalle régulier (6h par exemple), tu peux utiliser une tâche Cron, ou bien de stocker (là aussi en base de données ou dans un fichier, par exemple) la date du dernier événement + la durée d'un intervalle. Il te suffit ensuite de vérifier une condition : si la date stockée est antérieur à maintenant, c'est que le délai est écoulé. Exemple : on arrive sur la page à 16h30 le script indique qu'il n'y a pas d'événement en cours : il en tire donc un. Il tombe sur 16 : l'événement est donc la pluie. On stock donc le timestamp actuel + 6 heures (puisqu'on a dit qu'on faisait un tirage toutes les 6 heures). A chaque fois qu'on retournera sur la page, on comparera la date stockée au timestamp actuel. Si elle est supérieur, c'est que les 6 heures ne sont pas encore écoulées, auquel cas on ne fait rien. Sinon, les 6 heures sont écoulées, on produit un nouvel événement et on remplace la date pour y mettre de nouveau le timestamp + 6 heures (et éventuellement le décalage qu'il y a eu si on n'est pas venu sur la page depuis longtemps). Voilà, c'est une méthode simple de faire ça. Il y en a plein d'autres ! Sephi-Chan RE: la donnée "aléatoire" - biboum - 21-08-2008 Je testerais ca...en tout cas merci tu m'as enlever une serieuse épine de la main On va pouvoir passer à la partie débug maintenant lol ^^ Pour additionner les rand...je voulais le mettre dans une fonction...pour que tout se mette ensemble et permettre de les unir ensemble...mais je me plongerais sur les fonctions vu que je suis pas à l'aise encore avec... edit : Ouaaaa sephi-chan...j'en attendais pas autant Là j'ai même plus besoin de me creuser la tête pour comprendre comment faire avec ma base de donnée^^ Merci à vous deux, en reprenant tout ca, le script devrait être facile à faire RE: [résolu]la donnée "aléatoire" - Raoull - 21-08-2008 ya aussi shuffle($array) qui peut être pas mal dans certains cas, pour mélanger les valeurs d'un tableau, et donc avoir de l'aléatoire. |