While the driver, constructor and engine have an Elo score, this score is the same for all tracks. To take the track into account, each of them needs to have a special score for each track as well.
To do this, all the Elo classes should have map for track-specific elo scores. As an example, EloDriver already has the line self.trackRatings = {}. In this map, they key should be the track id, and the value should be the Elo score.
This score should be adjusted up and down in the same way the driver's own Elo score is adjusted. When a driver, constructor or engine first race in a track, their value should be initialised to 2200.
The track Elo scores should also be used in getGaElo(). They should have some small weight, such as 3% for each (make sure overall weights add up to 100% for now).
While the driver, constructor and engine have an Elo score, this score is the same for all tracks. To take the track into account, each of them needs to have a special score for each track as well.
To do this, all the Elo classes should have map for track-specific elo scores. As an example, EloDriver already has the line
self.trackRatings = {}
. In this map, they key should be the track id, and the value should be the Elo score.This score should be adjusted up and down in the same way the driver's own Elo score is adjusted. When a driver, constructor or engine first race in a track, their value should be initialised to 2200.
The track Elo scores should also be used in
getGaElo()
. They should have some small weight, such as 3% for each (make sure overall weights add up to 100% for now).