Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: generowanie liczb
Forum PHP.pl > Forum > Przedszkole
lalas
czesc napisalem cos takiego zeby wyciagnac 3 rozne losowo wygenerowane liczby, z tym zastrzezeniem ze kazda musi byc rozna, i gdy taki przypadek wystepuje to petla while wykonuje sie ponownie

problem w tym, ze ponowne wykonanie petli while nie generje nowych liczb tylko te same a wtedy petla wykonuje sie bez konca

gdzie popelnlem blad?


  1. <?php
  2. function slotnumber()
  3. {
  4.   $arg=5;
  5.   while($arg==5)
  6.   {
  7.  
  8.     for ($i=0; $i < 3; $i++)
  9.     {
  10.       $random = (rand(1,17));
  11.       $slot[] = $random;
  12.     }
  13.  
  14.       print(&#092;"<td width=\"33%\"><center>$slot[0]</td>\");
  15.       print(&#092;"<td width=\"33%\"><center>$slot[1]</td>\");
  16.       print(&#092;"<td width=\"33%\"><center>$slot[2]</td>\");
  17.  
  18.         if($slot[0] == $slot[1] || $slot[0] == $slot[2] || $slot[1] == $slot[2])
  19.         {
  20.           print(&#092;"</td></tr><br><br>rand again\");
  21.           $again=1;
  22.         }
  23.  
  24.              if($again==1)
  25.              {
  26.              }else
  27.               {
  28.                 break;
  29.               }
  30.      }
  31. }
  32.  
  33. slotnumber();
  34. ?>
lalas
dzieki za linki

co prawda zmusilo to do wykorzystania czyjegos sposobu ( z pewnoscia lepszego ), ale najwazniejsze, ze efekt osiagniety

pozdro


ps.
szkoda tylko, ze nie dowiedzialem sie gdzie u siebie cos pokopalem heh... smile.gif
dr_bonzo
Cytat
problem w tym, ze ponowne wykonanie petli while nie generje nowych liczb tylko te same a wtedy petla wykonuje sie bez konca

gdzie popelnlem blad?
  1. <?php
  2. for ($i=0; $i < 3; $i++)
  3. {
  4. $random = (rand(1,17));
  5. $slot[] = $random;
  6. }
  7. ?>


Ano tutaj, za kazdym przejsciem petli while dodajesz KOLEJNE 3 LICZBY do tablocy $slot, a zawsze wypisujesz TYKO PIERWSZE TRZY :
  1. <?php
  2. print(&#092;"<td width=\"33%\"><center>$slot[0]</td>\");
  3. print(&#092;"<td width=\"33%\"><center>$slot[1]</td>\");
  4. print(&#092;"<td width=\"33%\"><center>$slot[2]</td>\");
  5. ?>


Popraw na:
  1. <?php
  2.  
  3. $slot = array(); // wyzeruj tablice
  4. for ($i=0; $i < 3; $i++)
  5. {
  6. $random = (rand(1,17));
  7. $slot[] = $random;
  8. }
  9. // lub 
  10. for ($i=0; $i < 3; $i++)
  11. {
  12. $random = (rand(1,17));
  13. $slot[ $i ] = $random; // nie dodaje KOLEJNYCH elementow, tylko wpisuje liczby w piersze trzy miejsca
  14. }
  15.  
  16. ?>

popraw tez to:
  1. <?php
  2.  
  3. if($again==1)
  4.  {
  5.  }else
  6. {
  7. break;
  8. }
  9. // niezdefiniowane $again jesli liczby sie NIE POWTARZAJA
  10.  
  11. ?>
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.