+2006-08-01 Daigo Moriwaki <daigo at debian dot org>
+
+ * Add a command, %%RATING, to show a ranking sorted by rates.
+
2006-07-31 Daigo Moriwaki <daigo at debian dot org>
* Add a simple rating system.
end
hash
end
+
+ def rated_players
+ players = []
+ @db.transaction(true) do
+ @db.roots.each do |id|
+ players << id
+ end
+ end
+ return players.collect do |id|
+ p = RatedPlayer.new(id, nil, nil)
+ self.load(p)
+ p
+ end
+ end
end
+class RatedPlayer < Struct.new(:id, :name, :rate); end
+
class Player
def initialize(str, socket)
@name = nil
end
when /^%%HELP/
write_help
+ when /^%%RATING/
+ players = LEAGUE.rated_players
+ players.sort {|a,b| b.rate <=> a.rate}.each do |p|
+ write_safe("%s (%s) \t %4d\n" % [p.name, p.id, p.rate])
+ end
when /^%%GAME\s*$/
if ((@status == "connected") || (@status == "game_waiting"))
@status = "connected"