Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP]funkcja
Forum PHP.pl > Forum > Przedszkole
damian238
Witam,
mam taką funkcję:
  1. function calculateChance($int)
  2. {
  3. $rand = rand(0, 100);
  4.  
  5. if($rand <= $int)
  6. {
  7. return true;
  8. }
  9. else
  10. {
  11. return false;
  12. }
  13. }
  14.  
  15. function biegnij($szybkosc, $technika, $kondycja, $first = 0)
  16. {
  17.  
  18. $szybkoscSkut = floor($szybkosc/200*100);
  19. $technikaSkut = floor($technika/200*100);
  20. $kondycjaSkut = floor($kondycja/200*100);
  21.  
  22. $tor = array(2400, 3000);
  23.  
  24. $value = 0;
  25.  
  26. if(calculateChance($szybkoscSkut)) $value += 1000;
  27. if(calculateChance($technikaSkut)) $value += 1000;
  28. if(calculateChance($kondycjaSkut)) $value += 1000;
  29.  
  30.  
  31. $procentowyBieg = rand($value,100)/100;
  32. echo $first.'<br>';
  33. $bieg = $procentowyBieg * $tor[1];
  34. if($first > 0)
  35. {
  36. $first = floor($first);
  37. $bieg = rand($first+2, $first+7);
  38. }
  39. echo $bieg.'<br>';
  40. if($bieg < $tor[0]) $bieg = $tor[0];
  41.  
  42. return $bieg;
  43. }
  44.  


a w bazie mam taką linijkę odpowiadającą zapisowi tej wartości:
  1. `bieg` varchar(10) NOT NULL,

i kiedy wykonam ją sobie cronem to mi się nieraz pojawia większa wartość niż 3000, która jest losowana od 2400 do 3000
wie ktoś co tu jest źle? dam pomógł wink.gif

dobra, poradziłem sobie
ma teraz tylko 1 problem, bo im gracz jest lepszy pod względem szybkości, techniki i kondycji tym wartość (czas w sekundach np. 2547) jest większa, a chodzi mi o to by była mniejsza, pomoże ktoś?
Damonsson
Matematykę w podstawówce miał?

A jak naprawdę, nie miałeś, bądź jesteś na poziomie intelektualnym niższym niż szóstoklasista. To wstaw poprawiony kod, że wyświetla między 2400 a 3000, to ktoś Ci pewnie podpowie.
-damian238-
Nie wiem czy widziałeś, ale napisałem już tam, że problem rozwiązałem, ale mam z czym innym teraz.
I nie wiem czy wiesz, ale ta część jest odpowiedzialna za wynik
  1. $tor = array(2400, 3000);

nospor
Cytat
ma teraz tylko 1 problem, bo im gracz jest lepszy pod względem szybkości, techniki i kondycji tym wartość (czas w sekundach np. 2547) jest większa, a chodzi mi o to by była mniejsza, pomoże ktoś?

3000 - $bieg
i bedziesz mial wartosci mniejsze im wieksze.... Dosc logiczne.

Poza tym bieg to liczba a nie zaden tekst, wiec VARCHAR jest lekko chybiony
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.