21-08-2008, 08:26 AM
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
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