Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> generowanie liczb
lalas
post 6.01.2005, 16:00:53
Post #1





Grupa: Zarejestrowani
Postów: 123
Pomógł: 0
Dołączył: 16.09.2003

Ostrzeżenie: (0%)
-----


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. ?>


Ten post edytował lalas 6.01.2005, 16:02:14
Go to the top of the page
+Quote Post
dr_bonzo
post 6.01.2005, 16:28:59
Post #2





Grupa: Przyjaciele php.pl
Postów: 5 724
Pomógł: 259
Dołączył: 13.04.2004
Skąd: N/A

Ostrzeżenie: (0%)
-----


zajrzyj tutaj: http://forum.php.pl/index.php?showtopic=21...=0&#entry137766, http://forum.php.pl/index.php?showtopic=23457&hl=losowanie


--------------------
Nie lubię jednorożców.
Go to the top of the page
+Quote Post
lalas
post 6.01.2005, 19:55:17
Post #3





Grupa: Zarejestrowani
Postów: 123
Pomógł: 0
Dołączył: 16.09.2003

Ostrzeżenie: (0%)
-----


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
Go to the top of the page
+Quote Post
dr_bonzo
post 6.01.2005, 20:27:23
Post #4





Grupa: Przyjaciele php.pl
Postów: 5 724
Pomógł: 259
Dołączył: 13.04.2004
Skąd: N/A

Ostrzeżenie: (0%)
-----


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. ?>


--------------------
Nie lubię jednorożców.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 13.06.2025 - 02:54