def update_ratings(self, color): points = {self.color: 1.0, self.opponent.color: 0.0}.get(color, 0.5) mine = utils.loads(self.factory.db[self.name]) others = utils.loads(self.factory.db[self.opponent.name]) mine['rating'], others['rating'] = utils.elo(mine['rating'], others['rating'], points) self.factory.db[self.name] = utils.dumps(mine) self.factory.db[self.opponent.name] = utils.dumps(others)
def startFactory(self): self.db = anydbm.open(self.dbpath, 'c') # Initialize db with bot if 'Herbie' not in self.db: self.db['Herbie'] = utils.dumps({'password': None, 'type': 'AI', 'engine': 'random_ai', 'rating': 1500.0})
def register(self, request): try: user = str(request['user']) if user in self.factory.db: # This is bad, we shouldn't allow someone overwriting already # existing users self.send({'action': utils.general.BADREQUEST}) else: # TODO: Don't store plain-text passwords! self.factory.db[user] = utils.dumps( {'password': request['password'], 'type': 'human', 'rating': 1500}) self.state = AUTHENTICATED self.name = user self.send({'action': utils.auth.REGISTER, 'rating': 1500}) except KeyError: self.send({'action': utils.general.BADREQUEST})
def send(self, response): response = utils.dumps(response) self.sendString(response)
def send(self, request): request = utils.dumps(request) self.sendString(request)