Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [mój skrypt] optymalizacja, jak zoptymalizować skrypt do Lotto?
tomilipin
post
Post #1





Grupa: Zarejestrowani
Postów: 70
Pomógł: 0
Dołączył: 28.01.2004
Skąd: że znowu ლ(ಠ益ಠლ

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


Witam,
napisałem sobie dziś prosty sktypr do Dużego Lotka, nazwałem go Tata- Lizator (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif) (tak... ten emot jest odpowiedni) ale zrobiłem to bardzo prosto, dokładnie tak samo jak działa mój mózg...
Chodzi mi teraz o jakieś wskazówki na temat optymalizacji tegoż skryptu. Jestem pewien że można to samo wykonać w pętlach. Próbowałem oczywiście już wielokrotnie! ale niestety, nie udało mi się... Nie wyskakiwały blędy tylko np. nic nie pojawiało się na stronie, albo skrypt zapętlał się i nie wychodził z FOR albo WHILE.
Ogólnie wiem jak to zrobić w tzw. pseudojęzyku (czyli na ludzkie zrozumienie) ale jak tok myślenia przełożyć na php, to już nie mam pomysłu... Widocznie źle myślę...
Dlatego proszę Was o pomoc, oto cały kod skryptu:
  1. <?php
  2. $liczba[1]=rand(1,49);
  3. $liczba[2]=rand(1,49);
  4. $liczba[3]=rand(1,49);
  5. $liczba[4]=rand(1,49);
  6. $liczba[5]=rand(1,49);
  7. $liczba[6]=rand(1,49);
  8.  
  9. while($liczba[2]==$liczba[1]) {
  10. $liczba[2]=rand(1,49);
  11. }
  12. while($liczba[3]==$liczba[2] or $liczba[3]==$liczba[1]) {
  13. $liczba[3]=rand(1,49);
  14. }
  15. while($liczba[4]==$liczba[3] or $liczba[4]==$liczba[2] or $liczba[4]==$liczba[1]) {
  16. $liczba[4]=rand(1,49);
  17. }
  18.  
  19. while($liczba[5]==$liczba[4] or $liczba[5]==$liczba[3] or $liczba[5]==$liczba[2] or $liczba[5]==$liczba[1]) {
  20. $liczba[5]=rand(1,49);
  21. }
  22.  
  23. while($liczba[6]==$liczba[5] or $liczba[6]==$liczba[4] or $liczba[6]==$liczba[3] or $liczba[6]==$liczba[2] or $liczba[6]==$liczba[1]) {
  24. $liczba[6]=rand(1,49);
  25. }
  26.  
  27. echo &#092;"$liczba[1]<br>\";
  28. echo &#092;"$liczba[2]<br>\";
  29. echo &#092;"$liczba[3]<br>\";
  30. echo &#092;"$liczba[4]<br>\";
  31. echo &#092;"$liczba[5]<br>\";
  32. echo &#092;"$liczba[6]<br>\";
  33.  
  34. ?>


Cały problem tkwi oczywiście w tym, że liczby nie mogą się powtarzać!
PS. skrypt testowany we Flashu (ActionScript) wygląda bardzo fajnie, losuje liczby na bieżąco, widać jak się zmieniają (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

Ten post edytował tomilipin 7.10.2004, 18:05:14
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
dr_bonzo
post
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%)
-----


Moja funkcja wylosujesz dowolna ilosc elementow z dowolnego zbioru (tablicy).
  1. <?php
  2. /*
  3.  * @return array
  4.  * @param int $iHowMuchElements -- ile elementow zbioru (tablicy) wylosowac
  5.  * @param int $aElements -- zbior elementow z ktorego losujemy
  6.  * @desc Zwraca $iHowMuchElements losowych elementow ze zbioru $aElements
  7.  * @author Dr Bonzo
  8.  */
  9. function drawElements( $iHowMuchElements, $aElements )
  10. {
  11.     shuffle( $aElements );
  12.     
  13.     for ( $i = 0; $i < $iHowMuchElements; $i++ )
  14.     {
  15.         $aResult[] = array_pop( $aElements ); // lub array_shift
  16.     }
  17.     
  18.     return $aResult;
  19. }
  20.  
  21.  
  22. /* Dla duzego lotka, zbior liczbe calk. [1; 49] */
  23. for ( $i = 0; $i < 49; $i++ )
  24. {
  25.     $aElements_1[ $i ] = $i + 1;    
  26. }
  27.  
  28. $x = drawElements( 6, $aElements_1 );
  29. $xx = implode( ', ', $x );
  30. print( &#092;"$xx<br />\" );
  31.  
  32.  
  33. /* 10 liter z jakiegos tam zakresu [A, (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif) ?] */
  34. for ( $i = 0; $i < 24; $i++ )
  35. {
  36.     $aElements_2[ $i ] = chr( 65 + $i );
  37. }
  38.  
  39. $y = drawElements( 10, $aElements_2 );
  40. $yy = implode( ', ', $y );
  41. print( &#092;"$yy<br />\" );
  42.  
  43. ?>


------------------
a teraz spojzcie na to:
Cytat
mixed array_rand ( array input [, int num_req])

array_rand() is rather useful when you want to pick one or more random entries out of an array. It takes an input array and an optional argument num_req which specifies how many entries you want to pick - if not specified, it defaults to 1.

If you are picking only one entry, array_rand() returns the key for a random entry. Otherwise, it returns an array of keys for the random entries. This is done so that you can pick random keys as well as values out of the array.

hehe

Ten post edytował dr_bonzo 19.01.2005, 12:49:25
Go to the top of the page
+Quote Post

Posty w temacie


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

 



RSS Aktualny czas: 5.10.2025 - 22:30