Petit algorithme tout bête

algo.jpg

  • Mélanger dans un tableau x *y nombres se suivant de 1 à x*y,
  • Lors de l'affichage de la série, revenir à la ligne tous les x nombres.
  1. <table>
  2. <tr>
  3.  
  4. <?php
  5. $lignes=8;
  6. $colones=10;
  7.  
  8. $numbers = range(1, $lignes*$colones);
  9. $counter=1;
  10. srand((float)microtime() * 1000000);
  11. //le hasard:
  12. shuffle($numbers);
  13. while (list(, $number) = each($numbers)) {
  14. //afficher le nombre dans sa case
  15. echo "<td>".$number."</td>";
  16. //tester si faut faire un changement de ligne
  17. if ($counter%$colones==0)
  18. {
  19. if ($counter==$lignes*$colones){
  20. //c'était la derniere valeur
  21. echo "</tr>";
  22. }
  23. else
  24. {
  25. //on ferme la ligne et en ouvre une autre:
  26. echo "</tr>\n<tr>";
  27. }
  28. }
  29. $counter++;
  30. }
  31.  
  32. ?>
  33. </table>

Le seul truc à retenir, enfin disons que c'est un truc auquel je ne pense pas toujours. C'est l'utilisation du modulo (le reste de la division). ($counter%$colones==0) permet de tester si $counter est divisible par $colonnes.

Bon OK ce n'est pas avec ça que je vais postuler chez Google ou faire une thèse au MIT

Page top