Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Algorytm rankingu?
swagger
post 24.02.2015, 17:42:35
Post #1





Grupa: Zarejestrowani
Postów: 14
Pomógł: 0
Dołączył: 27.05.2012

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


Hej,

temat raczej nie do końca pasuje do subforum które wybrałem, ponieważ jest to bardziej pytanie o algorytm, nie o PHP samo w sobie. Natomiast nie znalazłem lepszego subforum.

A więc chciałbym stworzyć system rankingu który będzie działał w następujący sposób:

powiedzmy, że gracz ma punkty według których jest pozycjonowany w rankingu oraz pieniądze.

Jeżeli gracz pobije swój rekord i jego liczba punktów przewyższy punkty userów nad nim (powiedzmy, że z z miejsca 5 wskakuje na miejsce 2gie), dostanie on określoną liczbę pieniędzy które zostanąś ściągnięte z konta graczy których wyprzedził.

Natomiast, nonsensem byłoby tworzenie tego w taki sposób, aby każdemu zabierało po równo. Poza tym to potrafilbym zrobić. Chciałbym to zrobić w taki sposób, że im wyższa pozycja w rankingu, tym więcej tych pieniędzy gracz stracił.

Problem jest w tym, że nie potrafię znaleźć odpowiedniego algorytmu. Próbowałem to przeliczyć na różne sposoby i nici z tego wychodzą. Nie wiem, macie może wy jakiś pomysł?

Dzięki!
Go to the top of the page
+Quote Post
Aqu
post 24.02.2015, 17:55:50
Post #2





Grupa: Zarejestrowani
Postów: 279
Pomógł: 58
Dołączył: 14.07.2012

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


  1. $maxGoldLost = 1000;
  2.  
  3. $player1Lost = $maxGoldLost - (1*50); // gracz nr. 1 straci 950
  4. $player2Lost = $maxGoldLost - (2*50); // gracz nr. 2 straci 900

Coś na tej zasadzie?
Go to the top of the page
+Quote Post
kartin
post 24.02.2015, 17:56:49
Post #3





Grupa: Zarejestrowani
Postów: 246
Pomógł: 79
Dołączył: 25.05.2010

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


Pobieraj np. od graczy których wyprzedził kwotę np. X / pozycja_w_rankingu, gdzie X to jakaś ustalona kwota


--------------------
Jeśli ten post pomógł to kliknij przycisk po lewej stronie.
Nie pomagam przez PW, GG, e-mail, faks, telegram, znaki dymne, ...
Go to the top of the page
+Quote Post
swagger
post 24.02.2015, 18:19:27
Post #4





Grupa: Zarejestrowani
Postów: 14
Pomógł: 0
Dołączył: 27.05.2012

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


Cytat(Aqu @ 24.02.2015, 18:55:50 ) *
  1. $maxGoldLost = 1000;
  2.  
  3. $player1Lost = $maxGoldLost - (1*50); // gracz nr. 1 straci 950
  4. $player2Lost = $maxGoldLost - (2*50); // gracz nr. 2 straci 900

Coś na tej zasadzie?

Niestety nie

Cytat(kartin @ 24.02.2015, 18:56:49 ) *
Pobieraj np. od graczy których wyprzedził kwotę np. X / pozycja_w_rankingu, gdzie X to jakaś ustalona kwota

Także o tym myślałem, ale to nie zwróciłoby wcześniej ustalonej kwoty. Sytuacja wygląda tak, że chciałbym wcześniej ustalić konkretną kwotę która będzie przyznana, a następnie owa kwota będzie procentowo* pobrana od użytkowników. Np:

Kwota: 100
Graczy: 5 (gracze od który powinno te pieniądze pobrać)

50
25
15
6.65
3.35

A więc, sprawdzając:
50+25+15+6.65+3.35 = 100

* = nie musi być dokłanie procentowo.

Czyli aby zabrana suma równała się zarobionej kwocie. Oczywiście, to tylko przykład. Chodzi o to, aby im wyższa pozycja w rankingu, tym więcej tracimy pieniędzy.

Ten post edytował swagger 24.02.2015, 18:20:30
Go to the top of the page
+Quote Post
Aqu
post 24.02.2015, 18:53:25
Post #5





Grupa: Zarejestrowani
Postów: 279
Pomógł: 58
Dołączył: 14.07.2012

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


Gracz 1 | Gracz 2 | Gracz 3 | Gracz 4 --- 4 graczy

x = liczba graczy + 1; // 5
Każdemu przypisałbym "wartość", czyli:
G1 = x - 1; // 4
G2 = x - 2; // 3
G3 = x - 3; // 2
G4 = x - 4; // 1

razem - 4+3+2+1 = 10 (silnia z liczby graczy)

G1 płaci 4/10 = 40%
G2 płaci 3/10 = 30%
G3 płaci 2/10 = 20%
G4 płaci 1/10 = 10%;

Ten post edytował Aqu 24.02.2015, 22:00:08
Go to the top of the page
+Quote Post
swagger
post 24.02.2015, 19:27:11
Post #6





Grupa: Zarejestrowani
Postów: 14
Pomógł: 0
Dołączył: 27.05.2012

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


Zawsze najprostsze rozwiązania są najlepsze. Najwidoczniej za bardzo chciałem nakombinować i przegiąłem w drugą stronę. Dzięki! biggrin.gif

PS wybaczcie za moje literówki, nie spałem dzisiaj, a pisalem na szybko.

#ediit
Prześpię się z tym i odpowiem co i jak, bo chyba nie mam do tego głowy dzisiaj.

Ten post edytował swagger 24.02.2015, 19:36:22
Go to the top of the page
+Quote Post
sazian
post 24.02.2015, 20:08:45
Post #7





Grupa: Zarejestrowani
Postów: 1 045
Pomógł: 141
Dołączył: 19.09.2006
Skąd: B-tów

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


Cytat(Aqu @ 24.02.2015, 18:53:25 ) *
razem - 4+3+2+1 = 10 (silnia z liczby graczy)

arrowheadsmiley.png
Go to the top of the page
+Quote Post
Aqu
post 24.02.2015, 21:59:42
Post #8





Grupa: Zarejestrowani
Postów: 279
Pomógł: 58
Dołączył: 14.07.2012

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


Ups. biggrin.gif
Go to the top of the page
+Quote Post
swagger
post 25.02.2015, 23:43:44
Post #9





Grupa: Zarejestrowani
Postów: 14
Pomógł: 0
Dołączył: 27.05.2012

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


Wyspałem się i wymyśliłem system którego szukałem. Jakby ktoś potrzebował:

Points: 100
Players: 5

100 / 5 = 20
20 / 5 = 4

P1: 20 - 0 = 20
P2: 20 - 4 = 16
P3: 20 - 8 = 12
P4: 20 - 12 = 8
P5: 20 - 16 = 4

Total: 60

100 / 60 = 40
40 / 5 = 8

P1: 20 + 8 = 28
P2: 16 + 8 = 24
P3: 12 + 8 = 20
P4: 8 + 8 = 16
P5: 4 + 8 = 12

Total: 100

wybaczcie mi za moją gafę. Pisalem na szybko i machnąłem się o 2kę. Tutaj poprawiona wersja. tongue.gif

Ten post edytował swagger 26.02.2015, 02:43:56
Go to the top of the page
+Quote Post
Pyton_000
post 26.02.2015, 07:51:37
Post #10





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

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


100 / 60 = 40 blink.gif
Go to the top of the page
+Quote Post
sazian
post 26.02.2015, 22:04:11
Post #11





Grupa: Zarejestrowani
Postów: 1 045
Pomógł: 141
Dołączył: 19.09.2006
Skąd: B-tów

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


no i cały misterny plan w p....
Go to the top of the page
+Quote Post
swagger
post 27.02.2015, 22:07:14
Post #12





Grupa: Zarejestrowani
Postów: 14
Pomógł: 0
Dołączył: 27.05.2012

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


Miało być - tongue.gif
Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 23.06.2025 - 16:45