Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Lottomat
Forum PHP.pl > Inne > Oceny
koderrr
Skrypt generuje losowe liczby do popularnych gier totalizatora sportowego.
Chybil trafil bez wychodzenia z domu.
Zaczynam przygode z PHP takze prosze o wyrozumialosc

  1. <?php
  2. $losowana1 = rand(1,49);
  3. $losowana2 = rand(1,49);
  4. while ($losowana2 == $losowana1) {
  5. $losowana2 = rand(1,49);
  6. }
  7. $losowana3 = rand(1,49);
  8. while ($losowana3 == $losowana1 or $losowana3 == $losowana2) {
  9. $losowana3 = rand(1,49);
  10. }
  11. $losowana4 = rand(1,49);
  12. while ($losowana4 == $losowana1 or $losowana4 == $losowana2 or $losowana4 == $losowana3) {
  13. $losowana4 = rand(1,49);
  14. }
  15. $losowana5 = rand(1,49);
  16. while ($losowana5 == $losowana1 or $losowana5 == $losowana2 or $losowana5 == $losowana3 or $losowana5 == $losowana4) {
  17. $losowana5 = rand(1,49);
  18. }
  19. $losowana6 = rand(1,49);
  20. while ($losowana6 == $losowana1 or $losowana6 == $losowana2 or $losowana6 == $losowana3 or $losowana6 == $losowana4 or $losowana6 == $losowana5) {
  21. $losowana6 = rand(1,49);
  22. }
  23.  
  24. echo '<ul id="liczby">';
  25. echo '<li>';
  26. echo $losowana1;
  27. echo '</li>';
  28. echo '<li>';
  29. echo $losowana2;
  30. echo '</li>';
  31. echo '<li>';
  32. echo $losowana3;
  33. echo '</li>';
  34. echo '<li>';
  35. echo $losowana4;
  36. echo '</li>';
  37. echo '<li>';
  38. echo $losowana5;
  39. echo '</li>';
  40. echo '<li>';
  41. echo $losowana6;
  42. echo '</li>';
  43. echo '</ul>';
  44. ?>



wersja 'live' http://uberalles.lua.pl/index.php
cbagov
Fajne, ale jak bys mial do wylosowania wiecej ? to troche bys pocwyczyl pisanie na klawiaturze winksmiley.jpg

Kod
<?PHP

$_wylosowane=array();
$_liczb=6;
$_min=1;
$_max=49;
$_i=0;

while (count($_wylosowane)<6)
    {
    if (!in_array( $_l = rand($_min, $_max), $_wylosowane ))
        $_wylosowane[] = $_l;
        echo "Losowanie: ".$_i."<BR>";    
        $_i++;
    }

echo ( "<ul id=\"liczby\"><li>".implode("</li><li>",$_wylosowane)."</ul>");
print_r($_wylosowane);
echo "<BR>Wylosowanych: ".count ($_wylosowane);
exit;

?>

Oczywiscie count w petli while, to moze byc lekka przesada;), ale jak fun to fun.
dr_bonzo
array_rand()
.radex
Jak na pierwszy konkretny skrypt ok, ale jeszcze przed Tobą dłuuga droga tongue.gif

EDIT:

cbagov, po co count() w while, skoro liczysz iteracje w $_i
ShadowD
Moie zdanie posegreguj wyniki od najmniejszego do największego i jak losujesz dane to pozwul losować np tylko "Duży Lotek - Lottomat" a nie, że wszystkie na raz. Ponadto przy pierwszym wejściu bym nie losował liczb... smile.gif

Ale pomysł fajny można się nieźle pobawić... smile.gif
Speedy
  1. <?php foreach( (array_rand(range(0,49),6)) as $liczba ) echo $liczba."<br/>\n"; ?>


smile.gif
cbagov
@radex_p po to, ze wylosowana ilosc nie musi rownac sie ilosci iteracji

@Speedy a array_rand() daje unikalne ?

Juz raczej

$_a = range(1,49);
shuffle( $_a );

$_a[0] do $_a[5] powinny byc unikalne. ( A tak w ogole o range mi przypomniales tx)
Speedy
Szczerze mówiąc, nie wiem, czy to array_rand zwraca unikalne elementy. W manualu nie ma nic na ten temat.

Jeśli nawet nie zwraca unikalnych wartości to można skorzystać z funkcji shuffle, której wspomniałeś i wtedy będziemy mieli pewność, że wartości będą unikalne (choć wtedy kod będzie wydłużony i nieco mniej wydajny tongue.gif).

  1. <?php for($i = 0, $tablica = range(0,49), shuffle($tablica); $i < 7; $i++) echo $tablica[$i]."<br/>\n"; ?>
cbagov
Tez troche poszukalem ale jakos nie trafilem, w kazdym razie przy .......398181 losowaniu array_rand() jeszcze bledu nie zrobila \-}
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.