From 6a778527b32b182c8b8d8984fd71dce45e914296 Mon Sep 17 00:00:00 2001 From: Vincent Le Gallic Date: Mon, 7 May 2012 20:39:19 +0200 Subject: [PATCH] =?utf8?q?Gestion=20am=C3=A9lior=C3=A9e=20des=20scores=20(?= =?utf8?q?SCORE=20TRANSFERT=20&=20SCORES=20{DEL|ADD|SUB})?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- deconnaissances.acoeur.txt | 244 ++++++++++++++++++------------------- deconnaissances.crans.txt | 180 +++++++++++++-------------- deconnaisseur.py | 93 +++++++++++--- 3 files changed, 290 insertions(+), 227 deletions(-) diff --git a/deconnaissances.acoeur.txt b/deconnaissances.acoeur.txt index b532ea6..cfd89b9 100644 --- a/deconnaissances.acoeur.txt +++ b/deconnaissances.acoeur.txt @@ -1,16 +1,16 @@ % +Écrivain : En voiture Marcel +Provence +Marcel bagnole +Marcel bagnole +1 +% Chanteur : Chanteur du sud-ouest en Renault 4 Sarbacane Francis 4L Francis 4L 1 % -Écrivain : En voiture Marcel -Provence -Marcel bagnole -Marcel bagnole -0 -% Profession : Boisson russe pour vous défendre Justice La vodka de la défense @@ -41,12 +41,6 @@ Costard Ricard Costard Ricard 1 % -Événement sportif : 24 arabes au pays des rillettes -Course automobile -Les (24|vingt-quatre) beurs du Mans -Les 24 beurs du Mans -1 -% Chanteur : Le Michel qui a pris beaucoup de poissons Laurette Michel belle pêche @@ -65,36 +59,18 @@ Ne me cuite pas Ne me cuite pas 1 % -Géographie : Les îles du doigt infecté -Espagne -Les îles panaris -Les îles panaris -1 -% Homme politique : Fidèle à sa marque d'huile automobile La Havane Fidèle Castrol Fidèle Castrol 1 % -Fleur : La moitié d'Amadeus -Nice -(Le )mi(-| )Mozart -Le mi-Mozart -1 -% Ville : Le mâle de ta chèvre tousse Mali Ton bouc tousse Ton bouc tousse 1 % -Bande dessinée : Le sceptre de bus -Tintin -Le sceptre d'autocar -Le sceptre d'autocar -1 -% Chanson : Le chevreau c'est terminé Hervé Vilard Cabri c'est fini @@ -131,12 +107,6 @@ Le mur de l'alimentation Le mur de l'alimentation 1 % -Gastronomie : Philosophe grec de fromages -Avant le dessert -Platon de fromages -Platon de fromages -1 -% Géographie : La pomme de terre belge du sud Le Cap La frite du sud @@ -179,12 +149,6 @@ Questions pour un shampo?oing Questions pour un shampooing 1 % -Chanson : La poupée qui petit drapeau -Michel Polnareff -La poupée qui fanion -La poupée qui fanion -1 -% Événement sportif : Le tour d'une écriture particulière Cyclisme Le tour d'italique @@ -321,7 +285,7 @@ Pays : Le petit de l'autruche grise Habsbourg L'autruchon gris L'autruchon gris -1 +2 % Chanson : Il est baissé devant le pianiste Michel Berger @@ -329,12 +293,6 @@ L'accroupi du pianiste L'accroupi du pianiste 1 % -Œuvre musicale : Belle bicyclette d'un compositeur classique -Maurice Ravel -Le beau vélo de Ravel -Le beau vélo de Ravel -1 -% Chanson : Arbre du bord des routes pour moi Plastic Bertrand Platane pour moi @@ -367,7 +325,7 @@ Roc qui bat le boa % Femme politique : Filet de canard en pile de chairs Ministre anglais -Magret de tas de chairs +Magret (de )?tas de chairs? Magret de tas de chairs 1 % @@ -377,12 +335,6 @@ Marguerite ours noir Marguerite ours noir 1 % -Œuvre musicale : Il apprend les sources -Paul Dukas -L'apprenti sourcier -L'apprenti sourcier -1 -% Roman : Damné stylo Baleine Maudit Bic @@ -455,12 +407,6 @@ Valide vos stocks Valide vos stocks 1 % -Acteur : Sylvester skie entre les piquets -Rambo -Sylvester slalome -Sylvester slalome -1 -% Film : Membre amputé des eaux fraîches Marcel Pagnol Moignon des sources @@ -551,42 +497,18 @@ Défaite de Napoléon Premier La bataille de water-polo 1 % -Scientifique : Il commande et va au lit de bonne heure -Bonnet rouge -(Le |)commandant couche( |-)tôt -Le commandant couche tôt -1 -% Établissement scolaire : École des surveillants pieds nus Ingénieurs École des pions déchaussés École des pions déchaussés 1 % -Société secrète : Le clan des clowns -Cagoule -Le gugus(se|) clan -Le gugusse clan -1 -% Homme politique : Georges proclame en sautant Le Tigre Georges clame en saut Georges clame en saut 1 % -Sport : Une haie tous les centièmes de mètre -Guy Drut -Le centimètre haie(s|) -Le centimètre haies -1 -% -Événement sportif : Le four d'hypnose -Course cycliste -Le four de transe -Le four de transe -1 -% Chanson : Les potes ne sont pas à tribord Georges Brassens Les copains babord @@ -707,12 +629,6 @@ Il sera elle Il sera elle 1 % -Gastronomie : La noix d'alligator -Fruit exotique -(La |)noix de croco -La noix de croco -1 -% Écrivain: encouragement à un âne Lettres de mon moulin Allez(,| !|) fonce( !|) baudet @@ -725,12 +641,6 @@ Vieux motard que j'aimais Vieux motard que j'aimais 1 % -Cinéaste : Le gros aiguillon de Jean-Luc -La chinoise -Jean-Luc gros dard -Jean-Luc gros dard -1 -% Événement historique : Le couvent des porcs Conflit USA - Cuba L'abbaye des cochons @@ -761,18 +671,6 @@ Le lierre et la tordue Le lierre et la tordue 1 % -Marque publicitaire : Seulement un chinois -Y'a pas d'heure pour en manger -Juste un bridé -Juste un bridé -1 -% -Film : La cage aux petits flacons de verre -Edouard Molinaro -La cage aux fioles -La cage aux fioles -1 -% Chanson : Elle a l'essieu de velours Luis Mariano La bielle de Cadix @@ -815,12 +713,6 @@ Vilaine fermière Vilaine fermière 1 % -Présentateur T.V. : Patrick n'a pas besoin de porte-jarretelles -C'est fou -Patrick ses bas s(e |')tiennent -Patrick ses bas s'tiennent -1 -% Personnalité T.V. : Étienne remue TF1 Étienne Bougeotte @@ -851,15 +743,123 @@ Coq mort Coq mort 1 % -Département : Les deux femelles du bouc -Niort -Les deux chèvres -Les deux chèvres +Acteur : Sylvester skie entre les piquets +Rambo +Sylvester slalome +Sylvester slalome 1 % +Présentateur T.V. : Patrick n'a pas besoin de porte-jarretelles +C'est fou +Patrick ses bas s(e |')tiennent +Patrick ses bas s'tiennent +2 +% +Gastronomie : La noix d'alligator +Fruit exotique +(La |)noix de croco +La noix de croco +2 +% +Société secrète : Le clan des clowns +Cagoule +Le gugus(se|) clan +Le gugusse clan +2 +% +Fleur : La moitié d'Amadeus +Nice +(Le )?mi(-| )Mozart +Le mi-Mozart +2 +% +Bande dessinée : Le sceptre de bus +Tintin +Le sceptre d'autocar +Le sceptre d'autocar +2 +% +Événement sportif : 24 arabes au pays des rillettes +Course automobile +(Les )?(24|vingt-quatre) beurs du Mans +Les 24 beurs du Mans +2 +% +Cinéaste : Le gros aiguillon de Jean-Luc +La chinoise +Jean-Luc gros dard +Jean-Luc gros dard +2 +% +Chanson : La poupée qui petit drapeau +Michel Polnareff +La poupée qui fanion +La poupée qui fanion +2 +% +Marque publicitaire : Seulement un chinois +Y'a pas d'heure pour en manger +Juste un bridé +Juste un bridé +2 +% Acteur : Sylvester skie entre les piquets Rambo Sylvester slalome Sylvester slalome -1 -% \ No newline at end of file +2 +% +Géographie : Les îles du doigt infecté +Espagne +Les îles panaris +Les îles panaris +2 +% +Événement sportif : Le four d'hypnose +Course cycliste +Le four de transe +Le four de transe +2 +% +Œuvre musicale : Belle bicyclette d'un compositeur classique +Maurice Ravel +Le beau vélo de Ravel +Le beau vélo de Ravel +2 +% +Film : La cage aux petits flacons de verre +Edouard Molinaro +La cage aux fioles +La cage aux fioles +2 +% +Gastronomie : Philosophe grec de fromages +Avant le dessert +Platon de fromages +Platon de fromages +2 +% +Œuvre musicale : Il apprend les sources +Paul Dukas +L'apprenti sourcier +L'apprenti sourcier +2 +% +Département : Les deux femelles du bouc +Niort +Les deux chèvres +Les deux chèvres +2 +% +Sport : Une haie tous les centièmes de mètre +Guy Drut +(Le )?centimètre haie(s|) +Le centimètre haies +2 +% +Scientifique : Il commande et va au lit de bonne heure +Bonnet rouge +(Le |)commandant couche( |-)tôt +Le commandant couche tôt +2 +% diff --git a/deconnaissances.crans.txt b/deconnaissances.crans.txt index 74f69d6..33dc6c5 100644 --- a/deconnaissances.crans.txt +++ b/deconnaissances.crans.txt @@ -41,24 +41,12 @@ L'abbaye des cochons L'abbaye des cochons 1 % -People: Pauvre Hotel de Luxe - -Pas riche Hilton -Pas riche Hilton -1 -% Animaux : Les briquets potables Mammifères des fleuves Les Zippos potables Les Zippos potables 1 % -Pays : Venez vous amuser ici -Caracas -Venez jouer là -Venez jouer là -1 -% Roman : Damné stylo Baleine Maudit Bic @@ -71,36 +59,12 @@ Très chères nos piles Très chères nos piles 1 % -Profession : Réparateur de toit à bicyclette -Petite reine -Couvreur cycliste -Couvreur cycliste -1 -% -Chanteuse : La paysanne moche -Lauret Boutonnat -Vilaine fermière -Vilaine fermière -1 -% Acteur : Christophe le vertébré Le sicilien Christophe lombaire Christophe lombaire 1 % -Jeu T.V. : Des additions et des kilos de liquide -Armand Jammot -Des chiffres et des litres -Des chiffres et des litres -1 -% -Acteur : Gérard égale 4 -Cyrano de Bergerac -Gérard deux par deux -Gérard deux par deux -1 -% Gastronomie : Démange un dos asiatique Avec des pommes de terre Gratte un dos chinois @@ -127,7 +91,7 @@ Termite a tort % Sport : Une haie tous les centièmes de mètre Guy Drut -Le centimètre haie(s|) +(Le )?centimètre haie(s|) Le centimètre haies 1 % @@ -137,12 +101,6 @@ La comète des Harley(|s) La comète des Harley 1 % -Film : La cage aux petits flacons de verre -Edouard Molinaro -La cage aux fioles -La cage aux fioles -1 -% Série télévisée : Les demi tas de bois de la rivière d'Afrique du nord Robert Conrad & Ross Martin Les mi(-| )stères de l'Oued @@ -179,12 +137,6 @@ Questions pour un shampo?oing Questions pour un shampooing 1 % -Personnage historique : Empereur arbre fruitier -Corse -Napoléon pommier -Napoléon pommier -1 -% Médecine chirurgicale : L'opération des potes de Capone Gorge L'opération des amis d'Al @@ -197,12 +149,6 @@ TF1 Étienne Bougeotte 1 % -Actur : Jean-Paul, enlève la peau sur mes coups de soleil -Les magnifiques -Jean-Paul pèle mon dos -Jean-Paul pèle mon dos -1 -% Lieu : La balade des morceaux de bœuf Nice La promenade des onglets @@ -215,12 +161,6 @@ Fidèle Castrol Fidèle Castrol 1 % -Acteur : Sylvester skie entre les piquets -Rambo -Sylvester slalome -Sylvester slalome -2 -% Chanson : Ne me fais pas boire Jacques Brel Ne me cuite pas @@ -233,12 +173,6 @@ Moignon des sources Moignon des sources 1 % -Présentatrice T.V. : Cajolée -Enfants -Dorlotée -Dorlotée -1 -% Politique : Fantômas la brosse à cheveux FN Jean Marais le peigne @@ -269,12 +203,6 @@ Il sera elle Il sera elle 1 % -Femme politique : Filet de canard en pile de chairs -Ministre anglais -Magret de tas de chairs -Magret de tas de chairs -1 -% Marque publicitaire : Seulement un chinois Y'a pas d'heure pour en manger Juste un bridé @@ -329,18 +257,6 @@ Héros chinois et bagage à ski Héros chinois et bagage à ski 1 % -Gastronomie : La noix d'alligator -Fruit exotique -(La |)noix de croco -La noix de croco -1 -% -Poète : Paul tisane -Les sanglots longs -Paul verveine -Paul verveine -1 -% Événement sportif : Le four d'hypnose Course cycliste Le four de transe @@ -433,7 +349,7 @@ Navarin % Événement sportif : 24 arabes au pays des rillettes Course automobile -Les (24|vingt-quatre) beurs du Mans +(Les )?(24|vingt-quatre) beurs du Mans Les 24 beurs du Mans 1 % @@ -453,13 +369,97 @@ Cinéaste : Le gros aiguillon de Jean-Luc La chinoise Jean-Luc gros dard Jean-Luc gros dard -1 +2 +% +Jeu T.V. : Des additions et des kilos de liquide +Armand Jammot +Des chiffres et des litres +Des chiffres et des litres +2 +% +Pays : Venez vous amuser ici +Caracas +Venez jouer là +Venez jouer là +2 +% +Présentatrice T.V. : Cajolée +Enfants +Dorlotée +Dorlotée +2 % Acteur : Sylvester skie entre les piquets Rambo Sylvester slalome Sylvester slalome -1 +2 +% +Gastronomie : La noix d'alligator +Fruit exotique +(La |)noix de croco +La noix de croco +2 +% +Femme politique : Filet de canard en pile de chairs +Ministre anglais +Magret (de )?tas de chairs? +Magret de tas de chairs +2 +% +Personnage historique : Empereur arbre fruitier +Corse +Napoléon pommier +Napoléon pommier +2 +% +Acteur : Gérard égale 4 +Cyrano de Bergerac +Gérard deux par deux +Gérard deux par deux +2 +% +Poète : Paul tisane +Les sanglots longs +Paul verveine +Paul verveine +2 +% +People: Pauvre Hotel de Luxe + +Pas riche Hilton +Pas riche Hilton +2 +% +Profession : Réparateur de toit à bicyclette +Petite reine +Couvreur cycliste +Couvreur cycliste +2 +% +Film : La cage aux petits flacons de verre +Edouard Molinaro +La cage aux fioles +La cage aux fioles +2 +% +Chanteuse : La paysanne moche +Lauret Boutonnat +Vilaine fermière +Vilaine fermière +2 +% +Actur : Jean-Paul, enlève la peau sur mes coups de soleil +Les magnifiques +Jean-Paul pèle mon dos +Jean-Paul pèle mon dos +2 +% +Acteur : Sylvester skie entre les piquets +Rambo +Sylvester slalome +Sylvester slalome +2 % Série T.V. : Deux policiers américains qui ont faim Floride @@ -643,7 +643,7 @@ Père laboure % Fleur : La moitié d'Amadeus Nice -(Le )mi(-| )Mozart +(Le )?mi(-| )Mozart Le mi-Mozart 2 % @@ -862,4 +862,4 @@ Tintin Le sceptre d'autocar Le sceptre d'autocar 2 -% +% \ No newline at end of file diff --git a/deconnaisseur.py b/deconnaisseur.py index 666f60a..f2e405c 100755 --- a/deconnaisseur.py +++ b/deconnaisseur.py @@ -80,7 +80,6 @@ class Deconnaisseur(ircbot.SingleServerIRCBot): self.stay_channels=config_stay_channels self.play_channels=config_play_channels self.play_status={i:[0] for i in self.play_channels} - self.scores={} def give_me_my_pseudo(self,serv): serv.privmsg("NickServ","RECOVER %s %s"%(config_pseudo,config_password)) @@ -184,6 +183,7 @@ class Deconnaisseur(ircbot.SingleServerIRCBot): if cmd=="help": helpmsg_default="""Liste des commandes : HELP Affiche ce message d'aide + SCORE Affiche ton score (SCORE TRANSFERT [] pour transférer des points) SCORES Affiche les scores""" helpmsg_ops=""" JOIN Faire rejoindre un channel (sans paramètres, donne la liste des chans actuels) @@ -191,6 +191,7 @@ class Deconnaisseur(ircbot.SingleServerIRCBot): PLAY Passe un channel en mode "jouer" NOPLAY Passe un channel en mode "ne pas jouer" """ helpmsg_overops=""" + SCORES {DEL|ADD|SUB} Tu veux un dessin ? SAY Fais envoyer un message sur un chan ou à une personne STAY Ignorera les prochains LEAVE pour un chan NOSTAY Opposé de STAY @@ -300,17 +301,79 @@ class Deconnaisseur(ircbot.SingleServerIRCBot): if auteur in self.overops: self.die() elif cmd=="score": - serv.privmsg(auteur,"Votre score : %s"%(self.scores.get(auteur,0)) ) + if len(message)>1: + if len(message) in [3,4] and message[1].lower()=="transfert": + scores=self.get_scores() + de,to=auteur,message[2] + value=scores.get(de,0) + if len(message)==4: + try: + asked=int(message[3]) + except ValueError: + serv.privmsg(auteur,"Syntaxe : SCORE TRANSFERT []") + return + else: + asked=value + if value==0: + serv.privmsg(auteur,"Vous n'avez pas de points") + return + elif asked<=0: + serv.privmsg(auteur,"Bien tenté…") + return + elif asked>value: + serv.privmsg(auteur,"Vous n'avez que %s points"%(value)) + return + else: + self.add_score(de,-asked) + self.add_score(to,asked) + serv.privmsg(auteur,"Transfert de %s points de %s à %s"%(asked,de,to)) + else: + serv.privmsg(auteur,"Syntaxe : SCORE TRANSFERT []") + else: + serv.privmsg(auteur,"Votre score : %s"%(self.get_scores().get(auteur,0)) ) elif cmd=="scores": - scores=self.get_scores().items() - # trie par score - scores.sort(lambda x,y:cmp(x[1].lower(),y[1].lower())) - scores.reverse() - serv.privmsg(auteur,"Scores by score : "+" ; ".join(["%s %s"%(i[0],i[1]) for i in scores])) - # trie par pseudo - scores.sort(lambda x,y:cmp(x[0],y[0])) - scores.reverse() - serv.privmsg(auteur,"Scores by pseudo : "+" ; ".join(["%s %s"%(i[0],i[1]) for i in scores])) + if len(message)==1: + scores=self.get_scores().items() + # trie par score + scores.sort(lambda x,y:cmp(x[1],y[1])) + scores.reverse() + serv.privmsg(auteur,"Scores by score : "+" ; ".join(["%s %s"%(i[0],i[1]) for i in scores])) + # trie par pseudo + scores.sort(lambda x,y:cmp(x[0].lower(),y[0].lower())) + scores.reverse() + serv.privmsg(auteur,"Scores by pseudo : "+" ; ".join(["%s %s"%(i[0],i[1]) for i in scores])) + elif auteur in self.overops: + souscmd=message[1].lower() + if souscmd=="del": + if len(message)==3: + todelete=message[2] + scores=self.get_scores() + if scores.has_key(todelete): + del scores[todelete] + self.save_scores(scores) + serv.privmsg(auteur,"Score de %s supprimé"%(todelete)) + else: + serv.privmsg(auteur,"Ce score n'existe pas : %s"%(todelete)) + else: + serv.privmsg(auteur,"Syntaxe : SCORES DEL ") + elif souscmd in ["add","sub"]: + if len(message)==4: + toadd,val=message[2],message[3] + try: + val=int(val) + except ValueError: + serv.privmsg(auteur,"Syntaxe : SCORES {ADD|SUB} ") + return + if souscmd=="sub": + val=-val + self.add_score(toadd,val) + serv.privmsg(auteur,"Done") + else: + serv.privmsg(auteur,"Syntaxe : SCORES {ADD|SUB} ") + else: + serv.privmsg(auteur,"Syntaxe : SCORES {DEL|ADD|SUB} []") + else: + notunderstood=True else: notunderstood=True if notunderstood: @@ -385,7 +448,7 @@ class Deconnaisseur(ircbot.SingleServerIRCBot): if re.match(tolere(answer_regexp),unicode(message,"utf8").lower()): answer=self.play_status[canal][4] serv.privmsg(canal,"%s: bravo ! (C'était %s)"%(auteur,answer)) - self.scoreplus(auteur) + self.add_score(auteur,1) token=time.time() self.play_status[canal]=[0,token] serv.execute_delayed(random.randrange(Ttrig*5,Ttrig*10),self.start_enigme,(serv,canal,token)) @@ -395,12 +458,12 @@ class Deconnaisseur(ircbot.SingleServerIRCBot): f.close() return scores - def scoreplus(self,pseudo): + def add_score(self,pseudo,value): scores=self.get_scores() if scores.has_key(pseudo): - scores[pseudo]+=1 + scores[pseudo]+=value else: - scores[pseudo]=1 + scores[pseudo]=value self.save_scores(scores) def save_scores(self,scores): -- 2.39.2