# These scores are taken from the rliable library. It originaly comes from the MuZero paper.
ALL_HUMAN_SCORES = {
    "Alien": 7127.7,
    "Amidar": 1719.5,
    "Assault": 742.0,
    "Asterix": 8503.3,
    "Asteroids": 47388.7,
    "Atlantis": 29028.1,
    "BankHeist": 753.1,
    "BattleZone": 37187.5,
    "BeamRider": 16926.5,
    "Berzerk": 2630.4,
    "Bowling": 160.7,
    "Boxing": 12.1,
    "Breakout": 30.5,
    "Centipede": 12017.0,
    "ChopperCommand": 7387.8,
    "CrazyClimber": 35829.4,
    "DemonAttack": 1971.0,
    "DoubleDunk": -16.4,
    "Enduro": 860.5,
    "FishingDerby": -38.7,
    "Freeway": 29.6,
    "Frostbite": 4334.7,
    "Gopher": 2412.5,
    "Gravitar": 3351.4,
    "Hero": 30826.4,
    "IceHockey": 0.9,
    "Jamesbond": 302.8,
    "Kangaroo": 3035.0,
    "Krull": 2665.5,
    "KungFuMaster": 22736.3,
    "MontezumaRevenge": 4753.3,
    "MsPacman": 6951.6,
    "NameThisGame": 8049.0,
    "Phoenix": 7242.6,
    "Pitfall": 6463.7,
    "Pong": 14.6,
    "PrivateEye": 69571.3,
    "Qbert": 13455.0,
    "Riverraid": 17118.0,
    "RoadRunner": 7845.0,
    "Robotank": 11.9,
    "Seaquest": 42054.7,
    "Skiing": -4336.9,
    "Solaris": 12326.7,
    "SpaceInvaders": 1668.7,
    "StarGunner": 10250.0,
    "Tennis": -8.3,
    "TimePilot": 5229.2,
    "Tutankham": 167.6,
    "UpNDown": 11693.2,
    "Venture": 1187.5,
    "VideoPinball": 17667.9,
    "WizardOfWor": 4756.5,
    "YarsRevenge": 54576.9,
    "Zaxxon": 9173.3,
}

ALL_RANDOM_SCORES = {
    "Alien": 227.8,
    "Amidar": 5.8,
    "Assault": 222.4,
    "Asterix": 210.0,
    "Asteroids": 719.1,
    "Atlantis": 12850.0,
    "BankHeist": 14.2,
    "BattleZone": 2360.0,
    "BeamRider": 363.9,
    "Berzerk": 123.7,
    "Bowling": 23.1,
    "Boxing": 0.1,
    "Breakout": 1.7,
    "Centipede": 2090.9,
    "ChopperCommand": 811.0,
    "CrazyClimber": 10780.5,
    "Defender": 2874.5,
    "DemonAttack": 152.1,
    "DoubleDunk": -18.6,
    "Enduro": 0.0,
    "FishingDerby": -91.7,
    "Freeway": 0.0,
    "Frostbite": 65.2,
    "Gopher": 257.6,
    "Gravitar": 173.0,
    "Hero": 1027.0,
    "IceHockey": -11.2,
    "Jamesbond": 29.0,
    "Kangaroo": 52.0,
    "Krull": 1598.0,
    "KungFuMaster": 258.5,
    "MontezumaRevenge": 0.0,
    "MsPacman": 307.3,
    "NameThisGame": 2292.3,
    "Phoenix": 761.4,
    "Pitfall": -229.4,
    "Pong": -20.7,
    "PrivateEye": 24.9,
    "Qbert": 163.9,
    "Riverraid": 1338.5,
    "RoadRunner": 11.5,
    "Robotank": 2.2,
    "Seaquest": 68.4,
    "Skiing": -17098.1,
    "Solaris": 1236.3,
    "SpaceInvaders": 148.0,
    "StarGunner": 664.0,
    "Surround": -10.0,
    "Tennis": -23.8,
    "TimePilot": 3568.0,
    "Tutankham": 11.4,
    "UpNDown": 533.4,
    "Venture": 0.0,
    "VideoPinball": 0.0,
    "WizardOfWor": 563.5,
    "YarsRevenge": 3092.9,
    "Zaxxon": 32.5,
}


EXPERIMENTED_GAME = [
    "Alien",
    "Amidar",
    "Assault",
    "Asterix",
    "Asteroids",
    "BankHeist",
    "BattleZone",
    "BeamRider",
    "Berzerk",
    "Bowling",
    "Boxing",
    "Breakout",
    "Centipede",
    "ChopperCommand",
    "CrazyClimber",
    "DemonAttack",
    "DoubleDunk",
    "Enduro",
    "FishingDerby",
    "Freeway",
    "Frostbite",
    "Gopher",
    "Gravitar",
    "Hero",
    "IceHockey",
    "Jamesbond",
    "Kangaroo",
    "Krull",
    "KungFuMaster",
    "MontezumaRevenge",
    "MsPacman",
    "NameThisGame",
    "Phoenix",
    "Pitfall",
    "Pong",
    "PrivateEye",
    "Qbert",
    "Riverraid",
    "RoadRunner",
    "Robotank",
    "Seaquest",
    "Skiing",
    "Solaris",
    "SpaceInvaders",
    "StarGunner",
    "Tennis",
    "TimePilot",
    "Tutankham",
    "UpNDown",
    "Venture",
    "VideoPinball",
    "WizardOfWor",
    "YarsRevenge",
    "Zaxxon",
]

COLORS = {
    "ut30_uh6000_5": "#377eb8",
    "ablation_study_K_5": "#377eb8",
    "ablation_study_K_10": "#ff7f00",
    "ut30_uh6000_k1_5_5": "#377eb8",
    "ut30_uh6000_k1_5": "#4daf4a",
    "ut30_uh6000_k5_5": "#f781bf",
    "sanity_check_1": "#377eb8",
    "sanity_check": "#4daf4a",
    "head_std_5": "#a65628",
    "approx_error_5": "#377eb8",
    "approx_error_1": "#f781bf",
    "DQN (Nature)": "#999999",
    "Quantile (JAX)_dopamine": "#e41a1c",
    "DQN (Adam)": "#f781bf",
    "C51": "#984ea3",
    "REM": "#4daf4a",
    "Rainbow": "#a65628",
    "IQN": "#ff7f00",
    "M-IQN": "#dede00",
    "DQN_dopamine": "#ff7f00",
    "DQN (Adam + MSE in JAX)_dopamine": "#999999",
    "C51_dopamine": "#377eb8",
    "Rainbow_dopamine": "#4daf4a",
    "IQN_dopamine": "#a65628",
}

LABEL = {
    "ut30_uh6000_5": "K=5",
    "ablation_study_K_5": "K=5",
    "ablation_study_K_10": "K=10",
    "ut30_uh6000_k1_5_5": "uniform sampling",
    "ut30_uh6000_k1_5": "first online Q sampling",
    "ut30_uh6000_k5_5": "last online Q sampling",
    "head_std_5": "inter-head standard deviation",
    "approx_error_5": "K=5",
    "approx_error_1": "K=1",
    "sanity_check_1": "K=1",
    "sanity_check": "(our implementation)",
    "DQN (Nature)": "DQN (Nature)",
    "Quantile (JAX)_dopamine": "QR-DQN + 3-step return",
    "DQN (Adam)": "DQN (Adam)",
    "C51": "C51",
    "REM": "REM",
    "Rainbow": "Rainbow (C51 + 3-step return + PER)",
    "IQN": "IQN + 3-step return",
    "M-IQN": "Munchausen + IQN + 3-step return",
    "DQN_dopamine": "DQN (Nature) dopamine",
    "DQN (Adam + MSE in JAX)_dopamine": "DQN (Adam) dopamine",
    "C51_dopamine": "C51 dopamine",
    "Rainbow_dopamine": "Rainbow dopamine",
    "IQN_dopamine": "IQN dopamine",
}

ORDER = {
    "ut30_uh6000_5": 11,
    "ablation_study_K_5": 11,
    "ablation_study_K_10": 12,
    "ut30_uh6000_k1_5_5": 11,
    "ut30_uh6000_k1_5": 2,
    "ut30_uh6000_k5_5": 3,
    "head_std_5": 11,
    "approx_error_5": 4,
    "approx_error_1": 3,
    "sanity_check_1": 11,
    "sanity_check": 5,
    "DQN (Nature)": 2,
    "Quantile (JAX)_dopamine": 3,
    "DQN (Adam)": 4,
    "C51": 5,
    "REM": 6,
    "Rainbow": 7,
    "IQN": 8,
    "M-IQN": 9,
}
