Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Blokada liczb - instrukcja warunkowa.
Forum PHP.pl > Forum > Przedszkole
-ozi-
Witam.

Oto prawidłowy zestaw liczb pionowych: 1,1 2,1 3,1 4,1
a ten zaś z błędem 1,2 2,1 3,1 4,1

Funkcją explode rozbijam sobie liczby:
  1. $ciag = $_POST["nr1"].','.$_POST["nr2"].','.$_POST["nr3"].','.$_POST["nr4"];
  2. $zn = explode(',', $ciag);
  3.  
  4. $liczba1 = $zn[0];
  5. $liczba2 = $zn[1];
  6. $liczba3 = $zn[2];
  7. $liczba4 = $zn[3];
  8. $liczba5 = $zn[4];
  9. $liczba6 = $zn[5];
  10. $liczba7 = $zn[6];
  11. $liczba8 = $zn[7];


Liczby pionowe 1, 3, 5, 7 reszta poziome.
Jak zrobić aby tak jak w powyższym przykładzie jedne albo drugie będą o jeden większe a drugie muszą być takie same ponieważ nie ma możliwości na skos?
Sephirus
Hmmm... Say what?! tongue.gif
-ozi-
Użytkownik wpisuje dwie liczby po przecinku w cztery pola formularza następnie skrypt rozbija te ciągi na dwie liczby które są przypisane do zmiennych. Liczby nieparzyste w zmiennych czyli $liczba1, $liczba3, $liczba5 i $liczba 7 są pionowymi a parzyste poziomymi. Chodzi o to, że nie mogę zabezpieczyć aby użytkownik albo wybiera liczby pionowe (np. 1,1 2,1 3,1 4,1 lub 2,5 3,5 4,5 5,5) albo poziome (np.1,2 1,3 1,4 1,5 lub 3,2 3,3 3,4 3,5).

Pion liczby pierwsze zmieniają się poziom liczby drugie.

Shido
Chyba wiem o co chodzi.
Czym funkcje, nie wiem z czym miał być problem.
  1. function ciag($ciag)
  2. {
  3. $zn = explode(',', $ciag);
  4. $liczba1 = $zn[0];
  5. $liczba2 = $zn[1];
  6. $liczba3 = $zn[2];
  7. $liczba4 = $zn[3];
  8. $liczba5 = $zn[4];
  9. $liczba6 = $zn[5];
  10. $liczba7 = $zn[6];
  11. $liczba8 = $zn[7];
  12.  
  13. if($liczba1 == $liczba3 and $liczba3 == $liczba5 and $liczba5 == $liczba7)
  14. {
  15.  
  16. if($liczba4 == $liczba2+1 and $liczba6 == $liczba4+1 and $liczba8 == $liczba6+1)
  17. {
  18. return true;
  19. }
  20. else
  21. {
  22. return false;
  23. }
  24. }
  25. else if($liczba2 == $liczba4 and $liczba4 == $liczba6 and $liczba6 == $liczba8)
  26. {
  27. if($liczba3 == $liczba1+1 and $liczba5 == $liczba3+1 and $liczba7 == $liczba5+1)
  28. {
  29. return true;
  30. }
  31. else
  32. {
  33. return false;
  34. }
  35. }
  36. }
  37.  
  38. $ciag = $_POST["nr1"].','.$_POST["nr2"].','.$_POST["nr3"].','.$_POST["nr4"];
  39. if(ciag($ciąg))
  40. {
  41. echo('Dobre liczby');
  42. }
  43. else
  44. {
  45. echo('Błędne Liczby');
  46. }
SmokAnalog
Ależ paskudnie, panowie. Stworzyłem taką funkcję na szybko bez sprawdzenia. Przyjmuje ona jako parametr dowolną tablicę punktów. Każdy punkt to array(x, y). Uważam, że taka powinna być postać argumentów funkcji.
  1. function isVertical($points) {
  2. $lastX = null;
  3. $coordsY = array();
  4. foreach($points as $point) {
  5. list($x, $y) = $point;
  6. if($lastX !== null AND $x !== $lastX) // jeżeli współrzędna X jest inna niż nasz ostatni X, to zwracamy fałsz
  7. return false;
  8. $coordsY[] = $y;
  9. $lastX = $x;
  10. }
  11. sort($coordsY);
  12. $lastY = null;
  13. foreach($coordsY as $y) { // sprawdzamy, czy współrzędne Y rosną co 1
  14. if($lastY !== null AND $y - $lastY !== 1)
  15. return false;
  16. $lastY = $y;
  17. }
  18. return true;
  19. }
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.