コード例 #1
0
ファイル: inference_views.py プロジェクト: Grovbolle/aligulac
def postable_match(base, request):
    pla = base['match'].get_player(0)
    plb = base['match'].get_player(1)

    numlen = len(str(base['match'].get_num()))

    strings = [(
        '({rat}) {name}'.format(rat=ratscale(pla.elo_vs_opponent(plb)), name=pla.name),
        '{sca: >{nl}}-{scb: <{nl}}'.format(
            sca=base['match'].get_result()[0],
            scb=base['match'].get_result()[1],
            nl=numlen
        ),
        '{name} ({rat})'.format(rat=ratscale(plb.elo_vs_opponent(pla)), name=plb.name),
    ), None]

    for resa, resb in base['res']:
        L = ('{pctg: >6.2f}% {sca}-{scb: >{nl}}'.format(
            pctg=100*resa['prob'], sca=resa['sca'], scb=resa['scb'], nl=numlen
        ) if resa else '')
        R = ('{sca: >{nl}}-{scb} {pctg: >6.2f}%'.format(
            pctg=100*resb['prob'], sca=resb['sca'], scb=resb['scb'], nl=numlen
        ) if resb else '')
        strings.append((L, '', R))

    strings += [None, (
        '{pctg: >6.2f}%'.format(pctg=100*base['proba']), '',
        '{pctg: >6.2f}%'.format(pctg=100*base['probb']),
    )]

    median = base['match'].find_lsup()

    base['postable_tl'] = (
          TL_HEADER
        + left_center_right(strings)
        + ('\n\n{medout}: {pla} {sca}-{scb} {plb}'.format(
            medout=_('Median outcome'), pla=pla.name, sca=median[1], scb=median[2], plb=plb.name))
        + TL_FOOTER % {
              'modurl': request.build_absolute_uri(),
              'modify': _('Modify'),
              'estby': _('Estimated by'),
          }
    )

    base['postable_reddit'] = (
          REDDIT_HEADER 
        + left_center_right(strings, justify=False, indent=4) 
        + ('\n\n    {medout}: {pla} {sca}-{scb} {plb}'.format(
            medout=_('Median outcome'), pla=pla.name, sca=median[1], scb=median[2], plb=plb.name))
        + REDDIT_FOOTER % {
              'modurl': request.build_absolute_uri(),
              'modify': _('Modify'),
              'estby': _('Estimated by'),
          }
    )
コード例 #2
0
ファイル: predict.py プロジェクト: peteryao/aligulac
def match_postable(base, obj, r1, r2, url):
    pa = obj.get_player(0)
    pb = obj.get_player(1)

    numlen = len(str(obj._num))

    strings = [
        (
            "({rat}) {name}".format(rat=ratscale(pa.elo + pa.elo_race[pb.race]), name=pa.name),
            "{sca: >{nl}}-{scb: <{nl}}".format(sca=obj._result[0], scb=obj._result[1], nl=numlen),
            "{name} ({rat})".format(rat=ratscale(pb.elo + pb.elo_race[pa.race]), name=pb.name),
        )
    ]
    strings.append(None)

    for i in range(0, len(r1)):
        try:
            L = "{pctg: >6.2f}% {sca}-{scb: >{nl}}".format(pctg=100 * r1[i][2], sca=r1[i][0], scb=r1[i][1], nl=numlen)
        except:
            L = ""

        try:
            R = "{sca: >{nl}}-{scb} {pctg: >6.2f}%".format(pctg=100 * r2[i][2], sca=r2[i][0], scb=r2[i][1], nl=numlen)
        except:
            R = ""

        strings.append((L, "", R))

    strings += [
        None,
        ("{pctg: >6.2f}%".format(pctg=100 * base["t1"]), "", "{pctg: >6.2f}%".format(pctg=100 * base["t2"])),
    ]

    ls = obj.find_lsup()

    postable_tl = left_center_right(strings)
    postable_tl += "\n\nMedian outcome: {pla} {sca}-{scb} {plb}".format(pla=pa.name, sca=ls[1], plb=pb.name, scb=ls[2])
    base["postable_tl"] = TL_HEADER + postable_tl + TL_FOOTER % url

    postable_reddit = left_center_right(strings, justify=False, indent=4)
    postable_reddit += "\n\n    Median outcome: {pla} {sca}-{scb} {plb}".format(
        pla=pa.name, sca=ls[1], plb=pb.name, scb=ls[2]
    )
    base["postable_reddit"] = REDDIT_HEADER + postable_reddit + REDDIT_FOOTER % url
コード例 #3
0
ファイル: misc_views.py プロジェクト: HotspurHN/aligulac
def training(request, team_id):
    team = get_object_or_404(Group, id=team_id)

    allowed = [
        ('Wake', 'mousesports'),
        ('mouz', 'mousesports'),
        ('TheBB', 'mousesports'),
    ]

    if not request.user.is_authenticated() or (request.user.username, team.name) not in allowed:
        raise PermissionDenied

    players = Player.objects.filter(
        groupmembership__group=team,
        groupmembership__current=True,
        groupmembership__playing=True,
    )

    out = []

    for rca in 'ptz':
        players_race = players.filter(race=rca.upper())
        for rcb in 'ptz':
            players_race_weak = players_race
            for other in [r for r in 'ptz' if r != rcb]:
                players_race_weak = players_race_weak.filter(
                    **{'current_rating__rating_v%s__lt' % rcb: F('current_rating__rating_v%s' % other)}
                )

            if players_race_weak.exists():
                out.append('<h3>Weak %sv%s</h3><ul>' % (rca.upper(), rcb.upper()))
                for p in players_race_weak:
                    out.append(
                        '<li>%s (%.0f; %+.0f)</li>' 
                        % ( 
                            p.tag, 
                            ratscale(p.current_rating.get_totalrating(rcb.upper())),
                            ratscalediff(p.current_rating.get_rating(rcb.upper())),
                        )
                    )
                out.append('</ul>')

                opponents = sorted(
                    [p for p in players if p.race == rcb.upper()],
                    key=lambda p: p.current_rating.get_totalrating(rca.upper()), reverse=True
                )

                out.append(
                    '<p>Strongest %sv%s players are, in order: %s.</p>'
                    % (rcb.upper(), rca.upper(), ', '.join([o.tag for o in opponents]))
                )

    return HttpResponse('\n'.join(out))
コード例 #4
0
ファイル: predict.py プロジェクト: orangeups/aligulac
def match_postable(base, obj, r1, r2):
    pa = obj.get_player(0)
    pb = obj.get_player(1)

    numlen = len(str(obj._num))

    strings = [('({rat}) {name}'.format(rat=ratscale(pa.elo + pa.elo_race[pb.race]), name=pa.name),\
                '{sca: >{nl}}-{scb: <{nl}}'.format(sca=obj._result[0], scb=obj._result[1], nl=numlen),\
                '{name} ({rat})'.format(rat=ratscale(pb.elo + pb.elo_race[pa.race]), name=pb.name))]
    strings.append(None)
    
    for i in range(0, len(r1)):
        try:
            L = '{pctg: >6.2f}% {sca}-{scb: >{nl}}'.format(pctg=100*r1[i][2], sca=r1[i][0], scb=r1[i][1], nl=numlen)
        except:
            L = ''
        
        try:
            R = '{sca: >{nl}}-{scb} {pctg: >6.2f}%'.format(pctg=100*r2[i][2], sca=r2[i][0], scb=r2[i][1], nl=numlen)
        except:
            R = ''

        strings.append((L, '', R))

    strings += [None, ('{pctg: >6.2f}%'.format(pctg=100*base['t1']), '',\
                       '{pctg: >6.2f}%'.format(pctg=100*base['t2']))]

    ls = obj.find_lsup()

    postable_tl = left_center_right(strings)
    postable_tl += '\n\nMedian outcome: {pla} {sca}-{scb} {plb}'\
            .format(pla=pa.name, sca=ls[1], plb=pb.name, scb=ls[2])
    base['postable_tl'] = TL_HEADER + postable_tl + TL_FOOTER

    postable_reddit = left_center_right(strings, justify=False, indent=4)
    postable_reddit += '\n\n    Median outcome: {pla} {sca}-{scb} {plb}'\
            .format(pla=pa.name, sca=ls[1], plb=pb.name, scb=ls[2])
    base['postable_reddit'] = REDDIT_HEADER + postable_reddit + REDDIT_FOOTER
コード例 #5
0
 def _print(self, player):
     value = self.get_value(player)
     return ratscale(value)
コード例 #6
0
def postable_match(base, request):
    pla = base['match'].get_player(0)
    plb = base['match'].get_player(1)

    numlen = len(str(base['match'].get_num()))

    strings = [(
        '({rat}) {name}'.format(rat=ratscale(pla.elo_vs_opponent(plb)),
                                name=pla.name),
        '{sca: >{nl}}-{scb: <{nl}}'.format(sca=base['match'].get_result()[0],
                                           scb=base['match'].get_result()[1],
                                           nl=numlen),
        '{name} ({rat})'.format(rat=ratscale(plb.elo_vs_opponent(pla)),
                                name=plb.name),
    ), None]

    for resa, resb in base['res']:
        L = ('{pctg: >6.2f}% {sca}-{scb: >{nl}}'.format(
            pctg=100 * resa['prob'],
            sca=resa['sca'],
            scb=resa['scb'],
            nl=numlen) if resa else '')
        R = ('{sca: >{nl}}-{scb} {pctg: >6.2f}%'.format(
            pctg=100 * resb['prob'],
            sca=resb['sca'],
            scb=resb['scb'],
            nl=numlen) if resb else '')
        strings.append((L, '', R))

    strings += [
        None,
        (
            '{pctg: >6.2f}%'.format(pctg=100 * base['proba']),
            '',
            '{pctg: >6.2f}%'.format(pctg=100 * base['probb']),
        )
    ]

    median = base['match'].find_lsup()

    base['postable_tl'] = (TL_HEADER + left_center_right(strings) +
                           ('\n\n{medout}: {pla} {sca}-{scb} {plb}'.format(
                               medout=_('Median outcome'),
                               pla=pla.name,
                               sca=median[1],
                               scb=median[2],
                               plb=plb.name)) + TL_FOOTER % {
                                   'modurl': request.build_absolute_uri(),
                                   'modify': _('Modify'),
                                   'estby': _('Estimated by'),
                               })

    base['postable_reddit'] = (
        REDDIT_HEADER + left_center_right(strings, justify=False, indent=4) +
        ('\n\n    {medout}: {pla} {sca}-{scb} {plb}'.format(
            medout=_('Median outcome'),
            pla=pla.name,
            sca=median[1],
            scb=median[2],
            plb=plb.name)) + REDDIT_FOOTER % {
                'modurl': request.build_absolute_uri(),
                'modify': _('Modify'),
                'estby': _('Estimated by'),
            })