← Aktualności

Jak liczymy ranking ELO w Gammon42

Jak Gammon42 liczy ranking ELO w backgammonie od wersji 1.3.1: dokładny wzór, współczynnik K, kostka podwajająca i co się zmieniło, razem z kodem.

technical 18 września 2026

Twój ranking w grach rankingowych Gammon42 to liczba ELO. Każdy zaczyna od 1500. Po każdej grze rankingowej zwycięzca zyskuje punkty, a przegrany je traci. Ile dokładnie, zależy od trzech rzeczy: różnicy rankingu między wami, tego, jak wysoko doszła kostka podwajająca, a od wersji 1.3.1 także od tego, ile gier rankingowych rozegrałeś w ostatnich 7 dniach. Pokonasz równego sobie rywala, dostajesz +16. Pokonasz dużo silniejszego, dostajesz więcej. Pokonasz dużo słabszego, dostajesz mniej. Gammony i backgammony w ogóle nie zmieniają twojego rankingu.

To wersja skrócona. Poniżej znajdziesz cały rachunek w postaci, w jakiej działa od wersji 1.3.1 (październik 2026), liczby, które wybraliśmy, powód, dla którego zmienialiśmy je dwa razy, i prawdziwy kod. Wolimy pokazać ci matematykę, niż prosić o zaufanie.

Które gry liczą się do ELO

  • Gry rankingowe: tak. Tylko tu zmienia się twoje ELO.
  • Gry Boosted: nie. Gry Boosted (przed wersją 1.3.0 nazywały się Casual, czyli gry towarzyskie) dają punkty do rankingu Boosted i Sparks, ale nigdy nie ruszają twojego ELO.
  • Turnieje: gry w turnieju nie zmieniają twojego ELO. Zamiast tego publiczne turnieje dają stałe nagrody ELO dla podium, na przykład +50, +25 i +15. Więcej w naszym artykule o turniejach.

Krok 1: jak prawdopodobna była twoja wygrana?

Zanim powiemy, ile jest warte zwycięstwo, szacujemy, jak było prawdopodobne. To oczekiwany wynik, liczba od 0 do 1:

oczekiwany = 1 / (1 + 10^((ranking rywala − twój ranking) / 1200))

Jeśli masz taki sam ranking jak rywal, oczekiwany wynik to 0,5: rzut monetą. Im wyżej jesteś od niego, tym bliżej 1.

Różnica rankinguOczekiwany odsetek wygranych faworyta
050,0%
5052,4%
10054,8%
15057,1%
20059,5%
30064,0%
40068,3%
50072,3%

Krok 2: o ile wynik przebił prognozę?

Potem porównujemy to, co się stało, z tym, czego się spodziewaliśmy:

zmiana = K × (wynik − oczekiwany)

wynik to 1 za wygraną i 0 za porażkę. K to współczynnik K: największa zmiana, jaką może dać jedna gra (bez kostki, patrz niżej). Dla większości graczy K wynosi 32. Zaokrąglamy do liczby całkowitej.

Dwóch graczy z 1500: oczekiwany wynik 0,5. Zwycięzca dostaje 32 × (1 − 0,5) = +16, przegrany −16.

Tak to wygląda przy różnych różnicach rankingu, z K równym 32 i kostką na 1:

Różnica rankinguWygrywa faworytWygrywa słabszy
0+16 / −16+16 / −16
100+14 / −14+18 / −18
200+13 / −13+19 / −19
300+12 / −12+20 / −20
400+10 / −10+22 / −22

Logika jest prosta: niespodzianka jest warta więcej niż oczekiwane zwycięstwo. Jeśli masz 200 punktów więcej niż rywal, musisz wygrywać z nim około 60% gier, żeby tylko utrzymać ranking. Wygrywasz częściej, idziesz w górę. Wygrywasz rzadziej, spadasz, chociaż nadal wygrywasz większość gier.

Krok 3: ile grałeś w tym tygodniu?

Ten krok jest nowy w wersji 1.3.1. Zanim serwer policzy grę rankingową, sprawdza, ile gier rankingowych każdy z graczy rozegrał w ostatnich 7 dniach:

  • Mniej niż 50 gier: K wynosi 32.
  • 50 gier lub więcej: K wynosi 16. Każda zmiana, w górę i w dół, jest o połowę mniejsza.
Różnica rankinguK = 32 (faworyt wygrywa / przegrywa)K = 16 (faworyt wygrywa / przegrywa)
0+16 / −16+8 / −8
150+14 / −18+7 / −9
300+12 / −20+6 / −10

Po co? Wielkość wahań rankingu w ciągu tygodnia to mniej więcej K razy liczba rozegranych gier. Niektórzy gracze rozgrywają 300 gier rankingowych w tydzień. Przy K = 32 wystarczyło, że na takiej liczbie gier byli tylko 2 lub 3 punkty procentowe poniżej oczekiwanego odsetka wygranych, co spokojnie mieści się w zwykłym pechu, a kosztowało ich to około 200 punktów w jednym tygodniu. Dzięki o połowę mniejszemu K ich intensywny tydzień waha się mniej więcej tak jak zwykły. Gracze, którzy grają mniej, zachowują pełne K i awansują tak szybko jak dotąd.

Trzy szczegóły:

  • Każdy gracz ma swoje K. Gry liczymy osobno dla zwycięzcy i osobno dla przegranego.
  • Dwie zmiany nie zawsze są już lustrzanym odbiciem. Jeśli w tym tygodniu rozegrałeś 60 gier rankingowych, a twój rywal z takim samym rankingiem 10, za wygraną dostajesz +8, a on traci −16. Jeśli wygra on, zyskuje +16, a ty tracisz −8. Gdy obaj gracze mają to samo K, zwycięzca nadal zyskuje dokładnie tyle, ile traci przegrany.
  • Okno przesuwa się razem z tobą. To zawsze 7 dni przed liczoną grą, a ona sama nie jest wliczana. Gdy twój licznik spadnie poniżej 50, wracasz do K = 32.

Czemu dzielimy przez 1200, a nie przez 400

W szachach wzór ELO dzieli przez 400. Od tego zaczęliśmy. W wersji 1.2.0 zmieniliśmy tę liczbę na 800, a w wersji 1.3.1 na 1200.

Ta liczba decyduje, jak bardzo system jest pewny, że wygra silniejszy gracz. Przy 400 faworyt z przewagą 200 punktów powinien wygrywać w 76% przypadków. W szachach to rozsądne. W pojedynczej grze w backgammona to o wiele za dużo, bo kości dają słabszemu graczowi realne szanse w każdej grze. Nawet dużo lepszy gracz przegrywa sporo pojedynczych gier przez pecha.

Efektem był ranking, który karał dobrych graczy. Przy 400 gracz z przewagą 300 punktów dostawał +5 za wygraną i tracił 27 za porażkę. Żeby utrzymać ranking, musiał wygrywać 85% takich gier, co w backgammonie jest prawie niemożliwe.

W 1.2.0 przeszliśmy na 800, co zmniejszyło nachylenie krzywej o połowę. Pomogło, ale nie wystarczyło. Po kilku tygodniach gier rankingowych porównaliśmy krzywą z prawdziwymi wynikami. Nasi najsilniejsi gracze wygrywali od 57 do 58% gier, a krzywa oczekiwała od nich około 60%. Nadal więc tracili ranking, wygrywając większość gier, a ranking pozostawał ściśnięty: połowa aktywnych graczy mieściła się w przedziale około 60 punktów.

Przy 1200 krzywa odpowiada temu, na co kości naprawdę pozwalają:

Faworyt z przewagą 300 punktówPrzed 1.2.0 (÷400)Od 1.2.0 do 1.3.0 (÷800)Od 1.3.1 (÷1200)
Oczekiwany odsetek wygranych84,9%70,3%64,0%
Punkty za wygraną+5+9+12
Punkty za porażkę−27−23−20

Dla porównania FIBS, najstarszy serwer do backgammona, idzie jeszcze dalej i używa 2000 dla meczów do jednego punktu. Przy naszym współczynniku K równym 32 rozciągnęłoby to ranking powyżej 3000 punktów, więc zatrzymaliśmy się na 1200.

Nie przeliczaliśmy dawnych gier. Nowy wzór dotyczy gier rankingowych rozegranych po zmianie, a twój ranking został przeniesiony bez zmian.

Kostka podwajająca: wyższa stawka, ale z limitem

Gra na wyższej kostce powinna liczyć się trochę bardziej, ale nie powinna przepisać twojego rankingu przez jedną szczęśliwą grę. Dlatego kostka mnoży zmianę ELO przez współczynnik od 1,0 do 2,0. Każde podwojenie dodaje jedną szóstą drogi do maksimum:

współczynnik = 1 + log2(kostka) / 6
KostkaWspółczynnikDwóch graczy z 1500, K = 32Dwóch graczy z 1500, K = 16
11,00±16±8
21,17±19±9
41,33±21±11
81,50±24±12
161,67±27±13
321,83±29±15
642,00±32±16

Nawet przy maksymalnej kostce 64 zmiana jest co najwyżej dwa razy większa niż normalnie. Przed wersją 1.0.5 kostka mnożyła punkty bezpośrednio, a jedna gra na wysokiej kostce mogła przesunąć ranking dużo bardziej, niż na to zasługiwała. Kostka nadal ma znaczenie, żeby decyzje przyjąć czy spasować miały sens. Ale to, kogo pokonałeś i czy wygrałeś, liczy się dużo bardziej.

Czemu gammony i backgammony się nie liczą

Gammon jest wart 2 punkty, a backgammon 3, i w Gammon42 nadal dają ci więcej punktów w wyniku gry. Ale twojemu rankingowi jest to obojętne. ELO mierzy tylko jedno: jak często wygrywasz z graczami o danej sile. Gammon to większe zwycięstwo, ale nadal jedno zwycięstwo. Wczesne wersje Gammon42 dawały dodatkowe ELO za gammony, a to nagradzało głównie ryzykowne, szczęśliwe gry zamiast równej gry. Od 1.0.5 liczą się tylko wygrana, ranking rywala i kostka.

Poddanie, rozłączenie i czas na ruch

Gra rankingowa, która kończy się wcześniej, i tak się liczy. Jeśli się poddasz, wyjdziesz, zbyt długo nie będziesz mieć połączenia albo przekroczysz czas przy 3 ruchach, gra jest liczona jak zwykła porażka, z wartością kostki z tej chwili. Aplikacja ostrzega cię, zanim się poddasz. Ta zasada jest dla uczciwości: inaczej wyjście z przegranej gry byłoby darmowym sposobem na ochronę rankingu.

Prawdziwy kod

To kod, który nasz serwer gry uruchamia po każdej grze rankingowej (Go):

const K = 32                 // maximum change per game, before the cube
const HeavyVolumeK = 16      // K for players with a heavy ranked week
const HeavyVolumeGames = 50  // ranked games in the window that switch K
const HeavyVolumeWindow = 7 * 24 * time.Hour
const Divisor = 1200         // chess uses 400; dice make single games less predictable
const Starting = 1500

func KFor(recentRankedGames int) int {
	if recentRankedGames >= HeavyVolumeGames {
		return HeavyVolumeK
	}
	return K
}

func CalculateChangeWithK(winnerELO, loserELO, winnerK, loserK int, coefficient float64) Change {
	expectedWinner := expectedScore(winnerELO, loserELO)
	expectedLoser := 1 - expectedWinner

	return Change{
		Winner: int(math.Round(float64(winnerK) * (1 - expectedWinner) * coefficient)),
		Loser:  int(math.Round(float64(loserK) * (0 - expectedLoser) * coefficient)),
	}
}

func expectedScore(playerELO, opponentELO int) float64 {
	return 1.0 / (1.0 + math.Pow(10, float64(opponentELO-playerELO)/Divisor))
}

coefficient to mnożnik kostki z tabeli powyżej. winnerK i loserK pochodzą z KFor, do którego trafia liczba gier rankingowych każdego gracza z ostatnich 7 dni.

Zwróć uwagę, czego kod nie dostaje: żadnej serii zwycięstw, kraju, zakupów ani ukrytego „wyrównywania”. Jedyne dane wejściowe to dwa rankingi, kostka i liczba gier rankingowych, które każdy z graczy rozegrał w tym tygodniu. Ta sama zasada co przy naszych kościach: jeśli czegoś nie ma we wzorze, to na ciebie nie wpływa.

Najczęstsze pytania o ranking ELO

Z jakim ELO zaczynam w Gammon42?

Każdy nowy gracz zaczyna od 1500.

Ile punktów ELO dostanę za wygraną?

Z rywalem o takim samym rankingu +16 przy kostce 1. Więcej, jeśli rywal ma wyższy ranking od ciebie, mniej, jeśli niższy. Wyższa kostka podwajająca zwiększa zmianę, maksymalnie dwukrotnie przy kostce 64. Jeśli w ostatnich 7 dniach rozegrałeś 50 lub więcej gier rankingowych, wszystkie twoje zmiany są o połowę mniejsze.

Czemu dostałem mniej punktów, niż stracił mój rywal?

Bo jeden z was rozegrał 50 lub więcej gier rankingowych w ostatnich 7 dniach. Ranking tego gracza zmienia się o połowę mniej po każdej grze, przy wygranych i przy porażkach. Na zmianę drugiego gracza nie ma to wpływu.

Czy gammony i backgammony dają więcej ELO?

Nie. Dają więcej punktów w wyniku gry, ale twoje ELO zależy tylko od wygranej, rankingu rywala i wartości kostki.

Czy gry Boosted wpływają na moje ELO?

Nie. Tylko gry rankingowe zmieniają twoje ELO. Gry Boosted dają punkty do rankingu Boosted i Sparks.

Co się stanie z moim ELO, jeśli się poddam albo rozłączę?

Gra rankingowa, która kończy się wcześniej, jest liczona jak zwykła porażka, z wartością kostki z tej chwili.

Co zmieniło się we wzorze ELO w wersji 1.3.1?

Dwie rzeczy. Dzielnik we wzorze wzrósł z 800 do 1200, więc od faworytów oczekuje się rzadszych wygranych i tracą oni mniej punktów za porażkę. A gracze, którzy w ostatnich 7 dniach rozegrali 50 lub więcej gier rankingowych, mają teraz współczynnik K równy 16 zamiast 32.


Masz pytania o swój ranking albo pomysł, jak uczynić go jeszcze uczciwszym? Napisz do nas na support@table-online.ro.

Zagraj grę rankingową i sprawdź tę matematykę w praktyce →

Wolisz aplikację? Pobierz Gammon42 z App Store lub Google Play.

Gotowy do gry?

Graj teraz
Graj teraz