def add_player(player_id, name, country, score):
player_key = f"player:{player_id}"
r.hset(player_key, mapping={
"name": name,
"country": country,
"games_played": 0,
"score": score
})
r.zadd("leaderboard", {player_id: score})
def update_score(player_id, points):
player_key = f"player:{player_id}"
new_score = r.hincrbyfloat(player_key, "score", points)
games_played = r.hincrby(player_key, "games_played", 1)
r.zadd("leaderboard", {player_id: new_score})
def player_info(player_id):
player_key = f"player:{player_id}"
player_data = r.hgetall(player_key)
return player_data
def show_top_players(n):
leaderboard_key = "leaderboard"
top_players = r.zrevrange(leaderboard_key, 0, n - 1, withscores=True)
print(f"Top {n} jugadores del leaderboard:\n")
print(top_players)
from datetime import date
def register_login(player_id):
fecha = date.today()
key = f"unique:players:{fecha}"
r.pfadd(key, player_id)
def count_unique_logins(date):
key = f"unique:players:{date}"
return r.pfcount(key)
def weekly_report(dates):
keys = [f"unique:players:{fecha}" for fecha in dates]
r.pfmerge("unique:players:week", *keys)
return r.pfcount("unique:players:week")