![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 10 Pomógł: 0 Dołączył: 31.07.2011 Ostrzeżenie: (0%) ![]() ![]() |
Witajcie.
Próbuje nauczyć się na własną rękę pisać skrypty w php. Zapoznałem się z podstawami jednak nie zawsze wiem czy wykorzystuje zdobytą w najprostszy sposób. Dlatego chciałbym abyście rzucili okiem na mój skrypt losowania lotto i powiedzieli co mogłem zrobić lepiej i w jaki sposób.
Chyba trochę przesadziłem z komentarzami... Proszę o sugestie i pozdrawiam Maciek. |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 4 340 Pomógł: 542 Dołączył: 15.01.2006 Skąd: Olsztyn/Warszawa Ostrzeżenie: (0%) ![]() ![]() |
1. Zamiast klepać tablice $zakres z palca użyj funkcji http://www.php.net/manual/en/function.range.php
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 10 Pomógł: 0 Dołączył: 31.07.2011 Ostrzeżenie: (0%) ![]() ![]() |
Wielkie dzięki, rzeczywiście wystarczyło: $zakres = range (1, 49). Tak to jest jak się nie zna do końca języka
i dodaje się samemu sobie pracy. (IMG:style_emoticons/default/wink.gif) Na przyszłość z pewnością zapamiętam. |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 2 350 Pomógł: 512 Dołączył: 4.01.2009 Skąd: Wrocław / Świdnica Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 10 Pomógł: 0 Dołączył: 31.07.2011 Ostrzeżenie: (0%) ![]() ![]() |
Dziękuje za rady. Zastosowałem wszystkie i kod stał się dużo bardziej przejrzysty, a do tego poznałem kilka przydatnych funkcji. (IMG:style_emoticons/default/wink.gif)
Poprawiony kod:
Trapi mnie jeszcze jedne rzecz. Użytkownik może podać 6 takich samych liczb, przez co prawdopodobieństwo na trafienie "szóstki" byłoby bardzo duże ( 1 do 49 ). Do sprawdzania czy wszystkie liczby są różne mógłbym użyć funkcji in_array. Jednak musiałbym sprawdzać każdy element z osobna i porównywać go do całej tablicy. Czy nie ma jakiegoś bardziej wydajnego i odpowiedniego wyjścia w tej sytuacji? Jeszcze raz dziękuje za zainteresowanie i udzieloną pomoc. |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 2 350 Pomógł: 512 Dołączył: 4.01.2009 Skąd: Wrocław / Świdnica Ostrzeżenie: (0%) ![]() ![]() |
Chyba nie ma... przynajmniej nie przypominam sobie... - na wszelki wypadek popatrz jeszcze do manual-a na funkcję tablicy: http://www.php.net/manual/pl/ref.array.php
Ale i tak już raz masz pętle na wszystkie elementy: Kod for ($i = 0; $i<= 5; $i++) { Wykorzystaj ją. |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 10 Pomógł: 0 Dołączył: 31.07.2011 Ostrzeżenie: (0%) ![]() ![]() |
Głosiłem jednak herezję z in_array(). Funkcja ta sprawdza czy element znajduje się w tablicy.
Skoro element jest pobierany z tablicy $wpisane, to również w niej musi się znajdować. Zgodnie z radą kamil4u przejrzałem dokładnie listę funkcji w manualu i znalazłem dosyć ciekawą perełkę. array_unique(). Usuwa ona duplikaty z tablicy. Jako, że potem każdy z elementów tablicy jest sprawdzany czy mieści się w przedziale od 1 do 49 zostanie zwrócony fałsz, a działanie skryptu przerwane. Jako, że dodałem tylko jedno linijkę kodu i zmodyfikowałem echo(), nie wrzucam całego kodu, który jest dostępny wyżej ponieważ mija się to z celem.
Przy użyciu generowania tablic, z której ma być losowana cyfra przy użyciu funkcji range() dzieje się u mnie na serwerze dosyć dziwna rzecz. Pomimo, że zakres jest ustawiony od 1,49 to czasami w losowaniu potem z tej tablicy jest wyciągnięte 0. Ciekawe. (IMG:style_emoticons/default/smile.gif) Udało mi się z Waszą pomocą ulepszyć ten skrypt. Jednak nie myliłem się co do tego, że potrzebuje jakichś mentorów, którzy będą mi pokazywali błędy. Teraz spróbuje napisać coś większego, może jakiś system logowania. (IMG:style_emoticons/default/wink.gif) Tylko muszę się dokształcić z wyrażeń regularnych i obsługi sesji. Jeśli uda mi się stworzyć coś sensownego to wrzucę abyście wskazali mi błędy. Jeszcze raz dziękuje za pomoc i zainteresowanie. (IMG:style_emoticons/default/smile.gif) |
|
|
![]() ![]() |
![]() |
Aktualny czas: 17.10.2025 - 04:47 |