Play the game here: https://randomgamingdev.github.io/ChessELOle
ChessELOle gets random games from lichess and gives you the game to guess the ELO of. Based on how close or far you are from the actual elos you get a reward or punishment determined by the following code:
let reward = 2 * maxElo - 10 * (((Math.abs(whiteElo - whiteEloGuess) + Math.abs(blackElo - blackEloGuess)) * 0.028) ** 2);
if (reward < 0)
reward = -Math.log(Math.abs(reward)) / Math.log(1.005);
reward = Math.round(reward);
This project uses the lichess-id-divider
script and dataset for its random games.