Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Missing argument przy wywołaniu funkcji
Forum PHP.pl > Forum > Przedszkole
ChaChe
Witam.
Chcę napisać skrypt, który wylosuje kolejno:

Zestaw X (X = od 1 do 6)
Z zestawu X jedną z 6 opcji
W zależności jaka opcja została wylosowana, wykonuje czynność.

Losowanie odbywa się z tablicy za pomocą array_rand.

Przy próbie wylosowania wyświetla błąd:

Kod
Warning: Missing argument 1 for losuj(), called in ŚCIEŻKA DO PLIKU on line 345 and defined in ŚCIEŻKA DO PLIKU on line 148


Okolice linnie 345:

  1.  
  2. losuj();
  3. $zestaw = losuj();
  4. echo $zestaw;


Funkcja losuj():

  1. function losuj($rzucono) {
  2.  
  3. if ($rzucono == "1") {
  4.  
  5. $zestaw = array ("Opcja1",
  6. "Opcja2",
  7. "Opcja3",
  8. "Opcja4",
  9. "Opcja5",
  10. "Opcja6");
  11.  
  12. $zestaw = $zestaw[array_rand($zestaw)];
  13. }


Gdzie namieszałem? ;>
Spawnm
Musisz podać $rzucono przy wywołaniu funkcji...
ChaCHe
Dzięki Spawnm. Błędu już nie ma... Jednak skrypt nie działa jak należy.

Czy mógłby ktoś rzucić okiem?
Wyszło mi z tego prawie 700 linijek więc boję się wrzucać na forum tongue.gif

Kod starałem się pisać starannie i używać tabulatorów... Jest dosyć przejrzysty, tak mi się wydaje.
ChaChe
Albo chociaż logiczne ułożenie losowania:

Krok 1:

Losowanie zestawu wyjściowego:

Zestaw 1:
Opcja a
Opcja b (losowanie ponowne z tego samego zestawu wyjściowego)
Opcja c
Opcja d
Opcja a
Opcja b (losowanie ponowne z tego samego zestawu wyjściowego)

Zestaw 2:
Opcja a
Opcja b (losowanie ponowne z tego samego zestawu wyjściowego)
Opcja c
Opcja a
Opcja b (losowanie ponowne z tego samego zestawu wyjściowego)
Opcja c

Zestaw 3:
Opcja b (losowanie ponowne z tego samego zestawu wyjściowego)
Opcja c
Opcja d
Opcja b (losowanie ponowne z tego samego zestawu wyjściowego)
Opcja c
Opcja c

Zestaw 4:
Opcja a
Opcja b (losowanie ponowne z tego samego zestawu wyjściowego)
Opcja c
Opcja d
Opcja b (losowanie ponowne z tego samego zestawu wyjściowego)
Opcja c

Zestaw 5:
Opcja a
Opcja c
Opcja c
Opcja a
Opcja d
Opcja a

Zestaw 6:
Opcja b (losowanie ponowne z tego samego zestawu wyjściowego)
Opcja c
Opcja a
Opcja c
Opcja a
Opcja d

Krok 2:

Losowanie z zestawu dla danej opcji:

Opcja a:

a
b
c
d
a
b

Opcja b:

d
c
b
a
c
d

Opcja c:

a
a
c
c
b
b

Opcja d:

a
c
d
a
c
d

Krok 3:

Losowanie z zestawu dla danej pozycji z Opcji:

np.

Pozycja a:
1
1
2
3
4
6

Pozycja c

1
2
2
3
3
5

Przykład wyniku losowania:

Wylosowano zestaw wyjściowy nr. 3
Z zestawu wyjściowego nr. 3 wylosowano Opcję b - czyli następuje ponowne losowanie z tego samego zestawu wyjściowego.
Po ponownym losowaniu wylosowano Opcję a
Z Opcji a wylosowano Pozycję c
Z zestawu dla Pozycji c wylosowano nr. 3.

Zrobiłem to tak:

Stworzyłem funkcję rzut(), w której losuję liczbę od 1 do 6.
Przypisuję ją do zmiennej $rzucono. Do funkcji losuj() przekazuję zmienną $rzucono i losuję w tej funkcji zestaw wyjściowy:
Jeżeli $rzucono = "1" losuję jedną z opcji z Zestawu 1. itd...


Po wylosowaniu opcji z zestawu wyjściowego mam kolejne IF'y:
Jeżeli $opcja = "a" wykonuję rzut(), przypisuję wynik do $rzucono, losuję jedną z pozycji z Opcji a w funkcji opcjea() do której przekazuję $rzucono. itd...

Po wylosowaniu Pozycji dla danej Opcji mam kolejne IF'y:
Jeżeli $pozycja = "1" wyświetlam jakiś tekst. itd...

Miałem zamiar otrzymać (używając echo) taki wynik:
Wylosowano zestaw wyjściowy nr. 1.
Opcja: a.
Pozycja b.
Tekst dla pozycji b: Koniec!

Jednak przy 6-ciu zestawach wyjściowych po 6 opcji każdy, gdzie unikalnych opcji we wszystkich jest 10. 5 z tych 10-ciu ma kolejne 'dzieci' - po 6 - z czego przy tych 30 'dzieciach' unikalnych jest 10. One z kolei mają kolejne 'dzieci' - także po 6 - unikalnych jest 10. W tym miejscu 'rodzina' się kończy smile.gif

Tak jakby lecieć palcem po drzewie genealogicznym od rodziców do dzieci i losowo wybierać 'gałęzie'.

Jest na to jakiś prosty sposób? W php to rozumiem tak jak opisałem. Na JS się nie znam... :-] A może jakiś prostszy sposób z wykorzystaniem bazy SQL??

Z góry dziękuję za pomoc smile.gif
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.