JeuWeb - Crée ton jeu par navigateur

Version complète : [résolu]la donnée "aléatoire"
Vous consultez actuellement la version basse qualité d'un document. Voir la version complète avec le bon formatage.
Bonjour 2 Pour ceux qui se rapelle de mes derniers POST ...34 j'ai progresser 10

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 16
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 2

(Pas trouver de correspondance dans la recherche...)
Salut, je sait pas si j'ai tout saisi mais avec un rand me parait la solution la plus logique:

Code PHP :
$pourcentage '100';
$result_pourcentage rand('1',$pourcentage);//une chance sur 100 donc 1%
if($result_pourcentage == '10'){// si le pourcentage est egale a 10..
$events 'orage'//là c'est l'orage
}

$map '//nombre de map presentes par id_map';//mieu vaut mettre une seconde id non auto_incrementer pour éviter les trous
$result_map rand('0',$map)//tu cherche une map au hasard;

//puis requette 
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 2
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 ?
si, de la même façon en ayant un table evenement indéxé et en faisant un rand sur la table 34..
mais je ne comprend pas ce que tu veut dire par "additionner les rands".
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
Je testerais ca...en tout cas merci tu m'as enlever une serieuse épine de la main 2
On va pouvoir passer à la partie débug maintenant lol 34

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 2 Là j'ai même plus besoin de me creuser la tête pour comprendre comment faire avec ma base de donnée34
Merci à vous deux, en reprenant tout ca, le script devrait être facile à faire 2
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.
URLs de référence