%
+É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
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
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
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
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
Habsbourg
L'autruchon gris
L'autruchon gris
-1
+2
%
Chanson : Il est baissé devant le pianiste
Michel Berger
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
%
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
%
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
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
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
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
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
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
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
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
+%
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
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
%
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
%
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
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
É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
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
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
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é
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
%
É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
%
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
%
Fleur : La moitié d'Amadeus
Nice
-(Le )mi(-| )Mozart
+(Le )?mi(-| )Mozart
Le mi-Mozart
2
%
Le sceptre d'autocar
Le sceptre d'autocar
2
-%
+%
\ No newline at end of file
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))
if cmd=="help":
helpmsg_default="""Liste des commandes :
HELP Affiche ce message d'aide
+ SCORE Affiche ton score (SCORE TRANSFERT <pseudo> [<n>] 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)
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
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 <pseudo> [<n>]")
+ 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 <pseudo> [<n>]")
+ 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 <pseudo>")
+ 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} <pseudo> <n>")
+ return
+ if souscmd=="sub":
+ val=-val
+ self.add_score(toadd,val)
+ serv.privmsg(auteur,"Done")
+ else:
+ serv.privmsg(auteur,"Syntaxe : SCORES {ADD|SUB} <pseudo> <n>")
+ else:
+ serv.privmsg(auteur,"Syntaxe : SCORES {DEL|ADD|SUB} <pseudo> [<n>]")
+ else:
+ notunderstood=True
else:
notunderstood=True
if notunderstood:
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))
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):