Exemplo n.º 1
0
 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)
Exemplo n.º 2
0
 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})
Exemplo n.º 3
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})
Exemplo n.º 4
0
 def send(self, response):
     response = utils.dumps(response)
     self.sendString(response)
Exemplo n.º 5
0
 def send(self, request):
     request = utils.dumps(request)
     self.sendString(request)