Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP] Lottomat
koderrr
post
Post #1





Grupa: Zarejestrowani
Postów: 255
Pomógł: 16
Dołączył: 4.07.2007

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


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

Ten post edytował koderrr 23.06.2008, 18:35:11
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 8)
cbagov
post
Post #2





Grupa: Zarejestrowani
Postów: 181
Pomógł: 18
Dołączył: 19.04.2008

Ostrzeżenie: (10%)
X----


Fajne, ale jak bys mial do wylosowania wiecej ? to troche bys pocwyczyl pisanie na klawiaturze (IMG:http://forum.php.pl/style_emoticons/default/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.
Go to the top of the page
+Quote Post
dr_bonzo
post
Post #3





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

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


array_rand()
Go to the top of the page
+Quote Post
.radex
post
Post #4





Grupa: Zarejestrowani
Postów: 1 657
Pomógł: 125
Dołączył: 29.04.2006

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


Jak na pierwszy konkretny skrypt ok, ale jeszcze przed Tobą dłuuga droga (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif)

EDIT:

cbagov, po co count() w while, skoro liczysz iteracje w $_i

Ten post edytował radex_p 23.06.2008, 19:05:03
Go to the top of the page
+Quote Post
ShadowD
post
Post #5





Grupa: Zarejestrowani
Postów: 1 333
Pomógł: 137
Dołączył: 25.03.2008
Skąd: jesteś??

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


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... (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

Ale pomysł fajny można się nieźle pobawić... (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

Ten post edytował ShadowD 25.06.2008, 00:17:23
Go to the top of the page
+Quote Post
Speedy
post
Post #6





Grupa: Zarejestrowani
Postów: 651
Pomógł: 28
Dołączył: 4.12.2004

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


  1. <?php foreach( (array_rand(range(0,49),6)) as $liczba ) echo $liczba."<br/>\n"; ?>


(IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
cbagov
post
Post #7





Grupa: Zarejestrowani
Postów: 181
Pomógł: 18
Dołączył: 19.04.2008

Ostrzeżenie: (10%)
X----


@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)

Ten post edytował cbagov 25.06.2008, 01:39:55
Go to the top of the page
+Quote Post
Speedy
post
Post #8





Grupa: Zarejestrowani
Postów: 651
Pomógł: 28
Dołączył: 4.12.2004

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


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 (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif) ).

  1. <?php for($i = 0, $tablica = range(0,49), shuffle($tablica); $i < 7; $i++) echo $tablica[$i]."<br/>\n"; ?>


Ten post edytował Speedy 25.06.2008, 01:54:00
Go to the top of the page
+Quote Post
cbagov
post
Post #9





Grupa: Zarejestrowani
Postów: 181
Pomógł: 18
Dołączył: 19.04.2008

Ostrzeżenie: (10%)
X----


Tez troche poszukalem ale jakos nie trafilem, w kazdym razie przy .......398181 losowaniu array_rand() jeszcze bledu nie zrobila \-}
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 Aktualny czas: 24.08.2025 - 08:57