Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: petla while, nie powtarzalnosc liczb
Forum PHP.pl > Forum > PHP
marco222
Witam
probuje zrobic program lotto:) na 6 numerkow i mam problem z wygenerowaniem takich liczb dla ilosci zakladow by kazdy zaklad 6ciu liczb roznil sie 3-ma liczbami. Prubuje cos takiego ale cos w tym jest nie tak;

  1. $t_klasyfikuj=array(11,12,13,14,14,14,14,14,14,14,15,15,15,16,16,16,17,18,19);//,18,18,18,18,19,19,20,21,22,22,23,24,27);
  2.  
  3. for($z=0; $z<=2; $z++)
  4. {
  5.  
  6. $l_losowa[$z] = array_rand($t_klasyfikuj,6);
  7. for($d=1; $d<=6; $d++)
  8. $t_losuj[$z][$d]=$t_klasyfikuj[$l_losowa[$z][$d-1]];
  9. }
  10.  
  11. $war=array();
  12. $war2=0;
  13.  
  14. for($z=0; $z<=2; $z++)
  15. {
  16.  
  17. do //powtarzaj poki kazde 6 liczb bedzie roznila sie 3 liczbami
  18. {
  19. for($z1=0; $z1<=2; $z1++)
  20. {
  21. for($d=1; $d<=6; $d++)
  22. {
  23. if ($t_losuj[$z][$d]==$t_losuj[$z1][1] or $t_losuj[$z][$d]==$t_losuj[$z1][2] or $t_losuj[$z][$d]==$t_losuj[$z1][3] or $t_losuj[$z][$d]==$t_losuj[$z1][4] or $t_losuj[$z][$d]==$t_losuj[$z1][5] or $t_losuj[$z][$d]==$t_losuj[$z1][6])
  24. {
  25. ++$war[$z1];
  26. }
  27. }
  28.  
  29. if ($war[$z1]>=3)
  30. {
  31. $war2=0;
  32. $l_losowa[$z] = array_rand($t_klasyfikuj,6);
  33. for($d=1; $d<=6; $d++)
  34. $t_losuj[$z][$d]=$t_klasyfikuj[$l_losowa[$z][$d-1]];
  35. }
  36. else
  37. {
  38. ++$war2;
  39. }
  40. }
  41. }
  42.  
  43. while(
  44. $t_losuj[$z][1]==$t_losuj[$z][2] or $t_losuj[$z][1]==$t_losuj[$z][3] or $t_losuj[$z][1]==$t_losuj[$z][4] or $t_losuj[$z][1]==$t_losuj[$z][5] or $t_losuj[$z][1]==$t_losuj[$z][6] or
  45. $t_losuj[$z][2]==$t_losuj[$z][1] or $t_losuj[$z][2]==$t_losuj[$z][3] or $t_losuj[$z][2]==$t_losuj[$z][4] or $t_losuj[$z][2]==$t_losuj[$z][5] or $t_losuj[$z][2]==$t_losuj[$z][6] or
  46. $t_losuj[$z][3]==$t_losuj[$z][1] or $t_losuj[$z][3]==$t_losuj[$z][2] or $t_losuj[$z][3]==$t_losuj[$z][4] or $t_losuj[$z][3]==$t_losuj[$z][5] or $t_losuj[$z][3]==$t_losuj[$z][6] or
  47. $t_losuj[$z][4]==$t_losuj[$z][1] or $t_losuj[$z][4]==$t_losuj[$z][2] or $t_losuj[$z][4]==$t_losuj[$z][3] or $t_losuj[$z][4]==$t_losuj[$z][5] or $t_losuj[$z][4]==$t_losuj[$z][6] or
  48. $t_losuj[$z][5]==$t_losuj[$z][1] or $t_losuj[$z][5]==$t_losuj[$z][2] or $t_losuj[$z][5]==$t_losuj[$z][3] or $t_losuj[$z][5]==$t_losuj[$z][4] or $t_losuj[$z][5]==$t_losuj[$z][6] or
  49. $t_losuj[$z][6]==$t_losuj[$z][1] or $t_losuj[$z][6]==$t_losuj[$z][2] or $t_losuj[$z][6]==$t_losuj[$z][3] or $t_losuj[$z][6]==$t_losuj[$z][4] or $t_losuj[$z][6]==$t_losuj[$z][5]
  50. and $war2<2);
  51.  
  52. sort($t_losuj[$z]);
  53. }
  54.  
  55.  
  56.  
  57.  


Dzieki
borec
Poczytaj o array_diff, a jeśli nic Ci nie zaświeci:
  1. if (count(array_diff($zaklad1, $zaklad2)) >= 3) {
  2. # zakłady różnią się conajmniej trzema liczbami
  3. }
marco222
Dziekuje za pomoc, wogole nie bralem cos takiego pod uwage, udalo sie i dzieki.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.