class CmdPendu(SyncModule): def __init__(self, bot): desc = u"""Un superbe jeu de pendu pendu init : lance une partie avec un mot aléatoire (to be coded...) pendu init [word] : lance une partie avec 'word' comme mot à trouver pendu reset : pour interrompre une partie en cours pendu try [letter] : propose la lettre 'letter' pendu played : affiche la liste des lettres déjà jouées""" SyncModule.__init__(self, bot, desc=desc, name="pendu") self.pendu = Pendu("") @answercmd("init", "init (?P<word>\w+)") def init(self, sender, word=""): if self.pendu.word != "": return u"Il y a déjà une partie en cours… tu peux la finir, ou au pire 'reset' si tppt" if word == "": word_list = os.path.join(os.path.dirname(__file__), "wordlist.cfg") self.pendu.word = self.pendu.create_word(word_list) return u"Et c'est parti pour un pendu ! On cherche un mot de %s caractères" % len(self.pendu.word) else: word = word.strip().lower() if all([letter in VALID_CAR for letter in word]): self.pendu.word = word say = u"Et c'est parti pour un pendu ! On cherche un mot de %i caractères" self.bot.say(say % len(self.pendu.word)) else: return u"Le mot choisi n'est pas valide ! (caractères acceptés : %s)" % VALID_CAR @answercmd("reset") def reset(self, sender): self.pendu.word = "" return u"Reset effectué, plus qu'à utiliser init pour lancer une nouvelle partie" @answercmd("(try|guess) (?P<letter>\w)") def guess(self, sender, letter): if self.pendu.word == "": return "Euh, il faudrait lancer une partie…" if letter in VALID_CAR: return self.pendu.propose(letter) else: return "Il faut proposer une lettre !" @answercmd("(played|histo)") def played(self, sender): if self.pendu.word == "": return u"Euh, il faudrait lancer une partie…" return self.pendu.playedtostr()
class CmdPendu(SyncModule): def __init__(self, bot): desc = u"""Un superbe jeu de pendu pendu init : lance une partie avec un mot aléatoire (to be coded...) pendu init [word] : lance une partie avec 'word' comme mot à trouver pendu reset : pour interrompre une partie en cours pendu try [letter] : propose la lettre 'letter' pendu played : affiche la liste des lettres déjà jouées""" SyncModule.__init__(self, bot, desc=desc, name="pendu") self.pendu = Pendu("") @answercmd("init", "init (?P<word>\w+)") def init(self, sender, word=""): if self.pendu.word != "": return u"Il y a déjà une partie en cours… tu peux la finir, ou au pire 'reset' si tppt" if word == "": word_list = os.path.join(os.path.dirname(__file__), "wordlist.cfg") self.pendu.word = self.pendu.create_word(word_list) return u"Et c'est parti pour un pendu ! On cherche un mot de %s caractères" % len( self.pendu.word) else: word = word.strip().lower() if all([letter in VALID_CAR for letter in word]): self.pendu.word = word say = u"Et c'est parti pour un pendu ! On cherche un mot de %i caractères" self.bot.say(say % len(self.pendu.word)) else: return u"Le mot choisi n'est pas valide ! (caractères acceptés : %s)" % VALID_CAR @answercmd("reset") def reset(self, sender): self.pendu.word = "" return u"Reset effectué, plus qu'à utiliser init pour lancer une nouvelle partie" @answercmd("(try|guess) (?P<letter>\w)") def guess(self, sender, letter): if self.pendu.word == "": return "Euh, il faudrait lancer une partie…" if letter in VALID_CAR: return self.pendu.propose(letter) else: return "Il faut proposer une lettre !" @answercmd("(played|histo)") def played(self, sender): if self.pendu.word == "": return u"Euh, il faudrait lancer une partie…" return self.pendu.playedtostr()