Rajtvonal Sim Masters
BOP RENDSZER
1. Alappontszám (Score) Kiszámítása
score = (gap × 0.35) + (dominance × 0.25) + (consistency × 0.15) + (max(0, neighbour) × 0.25)
2. Score Tényezőkinek Kiszámítása
gap = e − (leader_points − own_points) max(1, max_point_per_race × 1.5)

Azt méri, milyen messze van a pilóta a bajnokság vezetőjétől.

• Ha valaki vezeti a bajnokságot (a különbség 0), az értéke 1.0.

• Minél nagyobb a lemaradása, az érték annál közelebb kerül a 0-hoz.

• Ez biztosítja, hogy a hátrányban lévők kevesebb súlyt kapjanak.

dominance = own_points races_done × max_point_per_race

Azt mutatja meg, hogy a pilóta az eddig megszerezhető maximális pontszámnak mekkora részét gyűjtötte be.

• A konzisztensen nyerő (domináns) versenyzők ezáltal magasabb súlyt kapnak.

consistency = 1 1 + σ | σ: a futamokon elért helyezések szórása

A pilóta eredményeinek stabilitását méri.

• Ha egy versenyző mindig kiegyensúlyozottan teljesít (kicsi a szórás), a faktor közelebb lesz az 1.0-hez.

• Az ingadozó teljesítményt mutató pilóták kevesebb büntetést kapnak.

neighbour = max(−1, min(1, neighbour_advantage))

neighbour_advantage = driver_behind_points − driver_ahead_points races_done × max_points_per_race

Ha a mögötte álló sokkal közelebb van hozzá pontszámban, mint amennyire ő van az előtte állóhoz, a faktor pozitív lesz (előnyben van a közvetlen környezetéhez képest).

• A képletben csak a pozitív értéket vesszük figyelembe max(0, neighbour), hogy növelje a súlyt, ha a versenyző elnyúlt a közvetlen üldözőitől.

3. Szezonális és Környezeti Korrekciós Tényezők
season_progress = min©1, current_race / races_count 0.60 ©

A szezon első felében (a futamok 60%-áig) mesterségesen visszafogja a BOP súlyokat, hogy az első pár futam véletlenszerű eredményei ne torzítsák el azonnal a bajnokságot.

• A szezon végére a hatása fixen maximumra (1.0) áll be.

track_factor = max(0.4, min(1.5, (length_f × 0.5) + (turns_f × 0.2) + (lap_f × 0.3)))

length_f = AVG_LENLEN, turns_f = 18TURNS, lap_f = 120000LAPTIME

A_LEN: átlag pályahossz, LEN, TURNS, LAPTIMES: az aktuális pálya adatai.

• A rövidebb, kevesebb kanyarral rendelkező, vagy gyorsabb pályákon a pluszsúly sokkal drasztikusabban rontja a köridőt.

Ez a faktor kompenzál: ha a pálya rövidebb vagy gyorsabb az átlagnál, a szorzó megnő, így több súlyt ad.

fuel_factor = current_track_fuel_factor

• Ha a pilóta a tabella első felében van: 1.0

• Ha a mezőny hátsó felében: 0.85

• A mezőny gyengébb vagy szerencsétlenebb felét automatikusan megsegíti egy 15%-os súlycsökkentéssel, elősegítve a felzárkózásukat.

4. Végső BOP Súly Kiszámítása
bop = max_bop × score × season_progress × track_factor × fuel_factor × catch_up
https://github.com/rajtvonal/season2/tree/main/src/py/BOP.py