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
FiDO
post
Post #2





Grupa: Przyjaciele php.pl
Postów: 1 717
Pomógł: 0
Dołączył: 12.06.2002
Skąd: Wolsztyn..... Studia: Zielona Góra

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


Cytat
IMO, przekombinowaliści.

IMO niedoceniles problemu ;]


Cytat
$objDB->query( 'SELECT * FROM items WHERE percentage >= ' . rand( 1, 100 ) . 'ORDER BY RAND() LIMIT 1' );

// i już mamy przedmiot (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif)

Tylko, ze losowany niezgodnie z zasadami podanymi na poczatku.
Po wylosowaniu jakiegos progu procentowego zostaja nam tylko rekordy z wiekszym prawdopodobienstwem wystapienia niz wylosowane.. i do tego momentu jest dobrze (no prawie..), bo sposrod tych elementow losujesz kolejny niestety juz na rownych prawach, czyli jesli wylosuje sie prog dajmy na to 30% to zarownio element majacy 31% jak i element majacy prawdopodobienstwo wystapienia rowne 50% beda mialy rowne szanse przy losowaniu a tak nie mialo byc.

Robilem cos podobnego niedawno w pracy (losowanie wazone), zrobilem do tego procedure, ale mysql takich mozliwosci jeszcze w wersji produkcyjnej nie daje, wiec trzeba sobie radzic inaczej (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) . Algorytm polega na tym, ze do jakiejs tymczasowej tablicy (czy to w bazie czy php) wpisujemy kazdy element tyle razy ile wynosi jego waga, czyli np. dla wartosci 20%, 25% i 50% wpisujemy kolejne elementy w ilosciach 20, 25 i 50 (w tym przypadku akurat mozna te wagi skrocic, bo maja NWD > 1), a nastepnie losujemy z tej tablicy/tabeli w sposob tradycyjny. Teraz elementy maja takie szanse jak miec powinny (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: 13.10.2025 - 21:15