Advertisement
rAthus

générateur libération lots instant gagnant aléatoire équitable

Aug 31st, 2022 (edited)
1,013
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 1.15 KB | None | 0 0
  1. <?php
  2.    
  3.     /*************\
  4.     |* variables *|
  5.     \*************/
  6.    
  7.     // timestamp de début de jeu
  8.     $ts_deb = 1664575200;
  9.     // timestamp de din de jeu
  10.     $ts_fin = 1669762800;
  11.     // lots (dénomination => nombre à gagner)
  12.     $lots = array(
  13.         "Session de simulateur F1" => 25,
  14.         "Montre Ferrari" => 25,
  15.     );
  16.    
  17.     /***************************************\
  18.     |* à partir de là tout est automatique *|
  19.     \***************************************/
  20.    
  21.     // calcul du nombre total de lots
  22.     $nb_lots = array_sum($lots);
  23.     // calcul de la durée d'une tranche égale pour chaque lot
  24.     $duree_lot = ($ts_fin-$ts_deb)/$nb_lots;
  25.     // création d'un ordre aléatoire des lots
  26.     $lots_melanges = array();
  27.     while(count($lots)) {
  28.         $k = array_rand($lots);
  29.         $lots_melanges[] = $k;
  30.         $lots[$k]--;
  31.         if ($lots[$k]==0)
  32.             unset($lots[$k]);
  33.     }
  34.     // répartition des lots aléatoirement dans chaque tranche
  35.     $linez = array("Timestamp\tHorodatage\tLot");
  36.     for ($i=0; $i<$nb_lots; $i++) {
  37.         $ts = $ts_deb+$duree_lot*$i+rand(0,$duree_lot);
  38.         $linez[] = $ts."\t".date('d/m/Y H:i:s',$ts)."\t".$lots_melanges[$i];
  39.     }
  40.     // affichage du tableau de résultats
  41.     echo implode("\n",$linez);
  42.    
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement