Beispiel #1
0
        print "send arguments!"
        exit(-1)

    if sys.argv[1] == "recalculate":
        players = db.getPlayerList()
        games = db.getGames()
        db.init()
        db.clear()

        for p in players:
            db.addPlayer(p)

        for g in games:
            ratings = map(lambda x: db.getPlayerRating(x), [g['a1'], g['a2'], g['b1'], g['b2']])
            rds = map(lambda x: db.getPlayerRD(x), [g['a1'], g['a2'], g['b1'], g['b2']])
            rps = map(lambda x: glicko.secToRatingPeriods(g['t'] - db.getPlayerT(x)), [g['a1'], g['a2'], g['b1'], g['b2']])
            
            # log game
            data = {
                't':g['t'], 
                'a1':g['a1'], 'a1_r':ratings[0], 'a1_rd':rds[0],
                'a2':g['a2'], 'a2_r':ratings[1], 'a2_rd':rds[1],
                'b1':g['b1'], 'b1_r':ratings[2], 'b1_rd':rds[2],
                'b2':g['b2'], 'b2_r':ratings[3], 'b2_rd':rds[3]
            }
            print data
            db.recordGame(data)
        
            # compute new scores
            [stats1, stats2, stats3, stats4] = glicko.calcGameScores(ratings, rds, rps)
       
Beispiel #2
0
    a1 = form['a1'].value
    a2 = form['a2'].value
    b1 = form['b1'].value
    b2 = form['b2'].value

    if 'TeamAWins' in form:
        pass
    elif 'TeamBWins' in form:
        [a1,a2,b1,b2] = [b2,b1,a2,a1]
    else:
        raise "Who won?"

    ratings = map(lambda x: db.getPlayerRating(x), [a1,a2,b1,b2])
    rds = map(lambda x: db.getPlayerRD(x), [a1,a2,b1,b2])
    tnow = int(time.time())
    tds = map(lambda x: glicko.secToRatingPeriods(tnow - db.getPlayerT(x)), [a1,a2,b1,b2])

    # log game
    db.recordGame({
        't': tnow, 
        'a1':a1, 'a1_r':ratings[0], 'a1_rd':rds[0],
        'a2':a2, 'a2_r':ratings[1], 'a2_rd':rds[1],
        'b1':b1, 'b1_r':ratings[2], 'b1_rd':rds[2],
        'b2':b2, 'b2_r':ratings[3], 'b2_rd':rds[3]
    })

    # compute new scores
    [stats1, stats2, stats3, stats4] = glicko.calcGameScores(ratings, rds, tds)

    # store new scores
    db.setPlayerStats(a1, stats1 + [tnow])