Cześć,
zastanawiam się nad algorytmem wyliczającym ocenę zawodnika ( gracza ) w grę fifa/PES.
Chciałbym by każdy zawodnik miał ocenę od 1 do 10 bazującą na wygranych, przegranych i ilości rozegranych meczy.
Nie wiem jak to ugryźć, by algorytm zawierał w sobie rozróżnienie na to, czy dany mecz jest rozegrany z osobą posiadającą wyższą ocenę czy niższą tak, by słaby gracz wygrywając z lepszym zyskiwał więcej niż wygrywając z kimś na własnym poziomie oraz by przegrywając z lepszym, tracił mniej niż gdyby przegrał z kimś równym sobie.
Ktoś może ma na to jakiś pomysł ?
A w czym problem.
Ustalasz sobie bazową ilość pkt które gracz zyskuje/traci. Np. 2pkt.
Jeśli wygra z lepszym +1 do bazowych == 3pkt.
Jeśli przegra z lepszym -1 czyl -1pkt.
itd. rozpisujesz sobie kombinacje i gotowe.
Tylko, że chciałbym zawrzeć w algorytmie obecną ocenę zawodnika. Tak by zawodnik z oceną 9/10 grający z zawodnikiem z oceną 2/10 nie dostawał/tracił tyle samo punktów, jakby grał z zawodnikiem znacznie lepszym, np. z oceną 8/10.
Rozpatrując dla przykładu:
Mecz pomiędzy zawodnikiem 9/10 a 2/10
- wygrywa zawodnik z oceną 9/10 i dostaje np. 0.1 do oceny
- przegranemu 2/10 zostaje odjęte 0.1 od oceny
Mecz pomiędzy 9/10 a 8/10
- wygrywa zawodnik z oceną 9/10 i dostaje np. 0.5 do oceny bo grał z zawodnikiem na podobnym poziomie
- przegranemu 8/10 odejmuje się np. 0.5 od oceny, gdyby przegrał ze słabszym od siebie to odjęło by się np. 0.8.
No i właśnie nie wiem jak wyliczyć, by to odejmowanie/dodawanie punktacji na bazie różnicy ocen zawodników, miało ręce i nogi.
Jeśli ktoś gra w jakieś gry online, to można się tam spotkać z rankingiem MMR na bazie którego, z tego co wiem, wyszukiwani są przeciwnicy na podobnym poziomie.
Jedyne co mi przychodzi do głowy i chyba nie jest takie złe, to po prostu wygranemu, brać różnicę ocen i na jej bazie liczyć punkty. Wygrany dostaje 9 - różnica, przegrany traci 9 - różnica.
W takim przypadku, miałbym sumę punktów, która odzwierciedla "poziom" gracza, ale szczerze mówiąc nie wiem jak miałbym to przekształcić na ocenę 1 - 10 :|
Zobacz na "gotowe algorytmy" wykorzystywane np w turniejach szachowych:
http://szachmistrz.pl/jak-obliczyc-normy-na-kategorie-szachowe.html
https://pl.wikipedia.org/wiki/System_Buchholza
https://pl.wikipedia.org/wiki/System_Sonneberga-Bergera
https://pl.wikipedia.org/wiki/Metoda_progresji
Dzięki, poczytałem i ostatecznie postawiłem na algorytm ELO, również stworzony dla szachistów. W prawdzie nie zrobie z tego oceny 1 - 10 ale przynajmniej bardzo dobrze odzwierciedla poziom graczy
Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)