Exemple #1
0
def calc():
    pool = Pool.init_for_ratings()
    rates = {player['id']: Rate(1500, 200, 0.06) for player in pool.fg_player}
    history = {player['id']: [] for player in pool.fg_player}

    for t in sorted(pool.tournaments.values(), key=attrgetter('end_at_desc'), reverse=True):
        o = {index: rate.copy() for index, rate in rates.items()}
        m = {index: [] for index in rates.keys()}

        for match in t.matches:
            fg1 = match.player1.player.id
            fg2 = match.player2.player.id

            if fg1 != 0 and fg2 != 0:
                w1, w2 = match.p1_win_count, match.p2_win_count
                m[fg1].extend([(o[fg2], WIN) for _ in range(w1)] + [(o[fg2], LOSE) for _ in range(w2)])
                m[fg2].extend([(o[fg1], WIN) for _ in range(w2)] + [(o[fg1], LOSE) for _ in range(w1)])

        for index, rate in rates.items():
            if m[index]:
                rate.add_match(m[index])
                history[index].append((t.date_string, str(rate.rating)))

    for pair in sorted(rates.items(), key=lambda x: x[1].mu, reverse=True):
        index, rate = pair[0], pair[1]
        if rate.rd < 50:
            print(pool.players[index].name + "\t" + str(int(rate.rating)) + "\t" + str(int(rate.rd)))
Exemple #2
0
from database.common import Table
from model.Pool import Pool

pool = Pool.init_for_create_rel()
cp = Table('challo_participant')
cp.update_all([('player_id', None)])

i = 0
for participant in pool.participants.values():
    found = []
    for player in pool.players.values():
        if player.maybe(participant.name):
            cp.update_with_tournament_id(participant.tournament_id, participant.id, [('player_id', player.id)])
            found.append(player.name)
            i += 1

    if len(found) > 1:
        print('duplicated candidate for {0} : {1} = {2}'.format(participant.tournament.name, participant.name, ','.join(found)))

print("participants {0}".format(i))

Exemple #3
0
def vstable():
    s, pool = Pool.init_for_standing('cpt-finals-2016', None)
    return template('standing', pool=pool, standing=s)
Exemple #4
0
def rate(player_and_labels=None):
    player_urls, pool = Pool.init_for_ratings(player_and_labels=player_and_labels)
    return template('rate', pool=pool, player_urls=player_urls)
Exemple #5
0
def ratings(labels=None):
    _, pool = Pool.init_for_ratings(labels=labels)
    return template('ratings', pool=pool)
Exemple #6
0
def standing(standing_url, labels=None):
    s, pool = Pool.init_for_standing(standing_url, labels)
    return template('standing', pool=pool, standing=s)
Exemple #7
0
def player(player_url, labels=None):
    player_id, pool = Pool.init_for_player(player_url, labels)
    return template('player', pool=pool, player_id=player_id)
Exemple #8
0
def vs(p1, p2, labels=None):
    p1_id, p2_id, pool = Pool.init_for_vs(p1, p2, labels)
    return template('vs', pool=pool, p1=p1_id, p2=p2_id)
Exemple #9
0
def tournament(challo_url):
    tournament_id, pool = Pool.init_for_tournament(challo_url)
    return template('tournament', pool=pool, tournament_id=tournament_id)
Exemple #10
0
def tournaments(labels=None):
    return template('tournaments', pool=Pool.init_for_tournaments(labels))
Exemple #11
0
def players(labels=None):
    return template('players', pool=Pool.init_for_players(labels))