Je refais mon post en simplifié, ça reprend l'idée de Xenos un peu aussi :
Soit
Soit
Soit
La chance
Tu tires un nombre
Si
Edit: et pour améliorer, si le joueur a attendu plus longtemps que le temps maximum, tu peux sauver comme date
Soit
D
la date du dernier patient (en secondes (timestamp)) ;Soit
N
la date de maintenant en secondes time()
;Soit
MT
le temps maximal (en secondes) avant d'avoir un nouveau patient, pat exemple une heure MT = 3600
;La chance
C
d'avoir un nouveau patient au chargement de la page est C = (N - D) / MT * 100
;Tu tires un nombre
H
au hasard : H = mt_rand(0, 100)
;Si
H < C
alors tu spawn un nouveau patient, et tu sauves N
comme date du dernier patient.Edit: et pour améliorer, si le joueur a attendu plus longtemps que le temps maximum, tu peux sauver comme date
D + MT
au lieu de N
, ainsi s'il attend deux heures et qu'il charge deux fois la page, il aura direct deux patients. Et pour améliorer encore tu fais les tirages dans une boucle en sauvant la nouvelle date à chaque fois, comme ça il aura les deux patients dès le premier chargement (voire plus avec un peu de chance).