Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Wypadanie przedmiotów w grze
Diwi
post
Post #1





Grupa: Zarejestrowani
Postów: 245
Pomógł: 4
Dołączył: 22.01.2005

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


Witam. Pisząc silnik gry napotkałem problem. Otóż zazwyczaj po zabiciu potwora wypadają z niego jakieś przedmioty, załóżmy że np. jest 1% szansy że wypadnie jakiś drogocenny kamień ale 20% że jakiś średni miecz. Czy istnieje jakiś algorytm który jest w stanie wybrać co wypadło wg procentu szansy ?

Pozdrawiam
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
tiraeth
post
Post #2





Grupa: Przyjaciele php.pl
Postów: 1 789
Pomógł: 41
Dołączył: 30.10.2003
Skąd: Wrocław

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


A ja to rozwiązałem tak:

  1. <?php
  2. $przedmioty[] = array(
  3. 'name' => 'Magiczny miecz wilka',
  4. 'p' => '20');
  5. $przedmioty[] = array(
  6. 'name' => 'Nadkruszony szafir',
  7. 'p' => '1');
  8.  
  9. /***
  10.  * Powiedzmy, że tablica $przedmioty to zwrócona przez MySQL tablica z przedmiot
    ami (posortowanymi wg. procentu malejąco):
  11.  * while($row = mysql_fetch_assoc($result))
  12.  * { $przedmioty[] = $row; }
  13.  */
  14.  
  15. $items = count($przedmioty); # Liczba przedmiotow
  16. $i=0;
  17. do
  18. {
  19.  $name = $przedmioty[$i]['name'];
  20.  $p = $przedmioty[$i]['p'];
  21.  $a = 100/$p;
  22.  $r = rand(1, $a);
  23.  if($r == 1)
  24.  {
  25. $item = true;
  26. $item_name = $name;
  27.  }
  28.  $i++;
  29. }
  30. while($item == false && $i < $items);
  31.  
  32. if($item == true)
  33. {
  34.  echo 'Z pola walki zabrano <b>'.$item_name.'</b>';
  35. }
  36. else
  37. {
  38.  echo 'Nie znaleziono żadnych przedmiotów';
  39. }
  40. ?>


W komentarzu napisałem, że pobierasz z bazy danych przedmioty sortując je wg. procentu malejąco (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

I wcale nie jest tutaj potrzebna tablica 100-elementowa (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post

Posty w temacie
- Diwi   Wypadanie przedmiotów w grze   29.08.2005, 12:12:43
- - Fipaj   Robisz tablicę, na sto elementów... (można to zrob...   29.08.2005, 12:19:15
- - tiraeth   A ja to rozwiązałem tak: [PHP] pobierz, plaintext...   29.08.2005, 12:36:29
- - mike_mech   IMO, przekombinowaliści. [PHP] pobierz, plaintext ...   29.08.2005, 13:01:42
- - ebe   CytatRobisz tablicę, na sto elementów... (można to...   29.08.2005, 13:22:11
- - dr_bonzo   Cytatzałóżmy że np. jest 1% szansy że wypadnie jak...   29.08.2005, 13:38:12
- - SongoQ   W programowaniu jak w zyciu, czym prostrzy algoryt...   29.08.2005, 13:39:34
- - Diwi   Hmm.. Pomysł mike_mecha wydaje mi się najprostszy ...   29.08.2005, 14:42:54
- - php programmer   // wersja z możliwośćią wielokrotnego wyboru szan...   29.08.2005, 15:26:31
- - mike_mech   Cytat(php programmer @ 2005-08-29 15:26:31)//...   29.08.2005, 15:40:45
- - splatch   Cytat(mike_mech)W programowaniu jak w zyciu, czym ...   30.08.2005, 07:52:25
- - FiDO   CytatIMO, przekombinowaliści. IMO niedoceniles pro...   30.08.2005, 09:55:30
- - mike_mech   Cytat(FiDO @ 2005-08-30 09:55:30)IMO niedocen...   30.08.2005, 10:14:01
- - ActivePlayer   a co jeśli przedmiotów jest hm.... 10 000... dajmy...   30.08.2005, 18:46:44
- - FiDO   Wtedy gorzej.. znalazlem takie cos: http://forums....   30.08.2005, 19:50:32
- - ActivePlayer   z linka: [SQL] pobierz, plaintext SELECT [Fiel...   31.08.2005, 09:22:47
- - Diwi   Dobrze. To teraz następny problem który pojawił si...   2.09.2005, 18:18:11
- - dr_bonzo   Rzuc K100 i jesli wynik bedzie mniejszy niz 70 to ...   2.09.2005, 18:51:02
- - FiDO   Wylosowac liczbe z przedzialu 1-100, szanse na wyl...   2.09.2005, 18:52:14
- - L_Devil   Gdy przeczytałem problem zaczął mnie nurtować i wp...   4.09.2005, 08:54:23
- - Forgoot   Kiedy będzie można zagrać w tą grę?? Na przyszloś...   3.10.2005, 13:42:12


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 12.10.2025 - 14:28