示例#1
0
文件: bot.py 项目: phoeagon/hangman
class Agent(object):

    def __init__(self):
        self.options = ''.join(hangman.LETTER_SET)
        self.last_choice = ''
        self.bot = Bot()
        self.flog = open(LOG_FILE, 'a')

    def append(self, text):
        for line in text.splitlines():
            if line.startswith('The word was: '):
                word = line.split(':')[-1].strip().lower()
                logging.warn(word)
                self.flog.write(word + '\n')
                self.flog.flush()
    
    def interact(self, msg):
        # print 'Agent::interact'
        text = msg.get('text', '')
        self.append(text)
        if text.startswith('There is already a game running'):
            logging.warn("/stop")
            return '/stop'
        elif text.startswith('Correct letter') or text.startswith('Incorrect letter') or text.startswith('Word:'):
            # logging.warn("/react")
            (word, life)= parse(text)
            print (word, life)
            for x in word:
                if x.isalpha():
                    self.options = self.options.replace(x, '')
            # Remove last from candidates
            self.options = self.options.replace(self.last_choice, '')
            # Ask bot
            (self.last_choice, i) = self.bot.next(word, life, self.options)
            logging.warn((self.last_choice, i))
            if i < 0.05 or life <= 1:
                return '/stop'
            return self.last_choice
        elif (text.startswith('You win!') or text.startswith('Game stopped')  or text.startswith('You lose')):
            self.last_choice = ''
            self.options = ''.join(hangman.LETTER_SET)
            return '/start'
        elif text.statswith('Your victories: '):
            return '/stop'
        else:
            logging.warn(msg)
            logging.warn("WTF")
            sys.exit(1)
示例#2
0
文件: bot.py 项目: phoeagon/hangman
 def __init__(self):
     self.options = ''.join(hangman.LETTER_SET)
     self.last_choice = ''
     self.bot = Bot()
     self.flog = open(LOG_FILE, 'a')