+ def get_scores(self):
+ f=open(config_scores_file)
+ scores=pickle.load(f)
+ f.close()
+ return scores
+ def save_scores(self,scores):
+ f=open(config_scores_file,'w')
+ pickle.dump(scores,f)
+ f.close()
+ def add_score(self,dico):
+ scores=self.get_scores()
+ for k,v in dico.items():
+ if scores.has_key(k):
+ scores[k]+=v
+ else:
+ scores[k]=v
+ self.save_scores(scores)
+ def send_scores(self, serv, destinataire):
+ scores=self.get_scores()
+ scores=scores.items()
+ scores.sort(lambda x,y:cmp(x[1],y[1]))
+ scores.reverse()
+ serv.privmsg(destinataire,"Scores by score : "+" ; ".join(["%s %s"%(k,v) for (k,v) in scores]) )
+ scores.sort(lambda x,y:cmp(x[0].lower(),y[0].lower()))
+ serv.privmsg(destinataire,"Scores by pseudo : "+" ; ".join(["%s %s"%(k,v) for (k,v) in scores]) )
+
+ def gagne(self, serv, canal, bonus=None, bonusvalue=2):
+ realword="".join([lettre[0] for lettre in self.play_status[canal][0]])
+ definition = self.play_status[canal][1]
+ serv.privmsg(canal,"Bravo ! C'était %s"%(realword))
+ serv.privmsg(canal,definition)
+ nlettre=float(len(realword.replace("'","").replace("-","")))
+ contribs=["%s:%s%%%s"%(pseudo,str(int(100*contrib/nlettre)),("+bonus(%s)"%(bonusvalue))*(bonus==pseudo)) for pseudo,contrib in self.play_status[canal][2].items()]
+ contribs_score={pseudo:int(10*contrib/nlettre) for pseudo,contrib in self.play_status[canal][2].items()}
+ self.add_score(contribs_score)
+ serv.privmsg(canal,"Contributions : %s"%(" ".join(contribs)) )
+ self.play_status[canal]=[None,None,None]
+
+