Пример #1
0
    def setup(self):
        self._first = [Match(self._num), Match(self._num)]
        self._second = [Match(self._num), Match(self._num)]
        self._final = Match(self._num)

        self._matches = self._first + self._second + [self._final]

        self._first[0].add_winner_link(self._second[0], 0)
        self._first[0].add_loser_link(self._second[1], 0)
        self._first[0].add_parent(self)
        self._first[1].add_winner_link(self._second[0], 1)
        self._first[1].add_loser_link(self._second[1], 1)
        self._first[1].add_parent(self)
        self._second[0].add_loser_link(self._final, 0)
        self._second[0].add_parent(self)
        self._second[1].add_winner_link(self._final, 1)
        self._second[1].add_parent(self)
        self._final.add_parent(self)
Пример #2
0
    def setup(self):
        nmatches = len(self._schema_out) * (len(self._schema_out) - 1) // 2
        self._matches = []

        for r in range(0, nmatches):
            m = Match(self._num)
            self._matches.append(m)

            m.add_parent(self)
Пример #3
0
    def set_players(self, players):
        self._pla = players[:len(players) // 2]
        self._plb = players[len(players) // 2:]
        self._nplayers = len(self._pla)
        self._numw = self._nplayers // 2 + 1
        self._nums = (self._nplayers - 1) // 2

        self._matches = []
        for i in range(0, self._nplayers):
            m = Match(self._num)
            m.set_players([self._pla[i], self._plb[i]])
            self._matches.append(m)
Пример #4
0
    def compute_match(self, pla, plb, base):
        obj = Match(self._num)
        obj.set_players([pla[0], plb[0]])
        obj.compute()
        inst = obj.random_instance_detail(new=True)

        if inst[1] > inst[2]:
            plb = plb[1:]
        else:
            pla = pla[1:]

        if len(plb) != 0 and len(pla) != 0:
            self.compute_match(pla, plb, base)
        elif len(plb) == 0:
            self._tally[0][1] += base
            self._tally[1][0] += base
        else:
            self._tally[1][1] += base
            self._tally[0][0] += base
Пример #5
0
    def setup(self):
        self._matches = dict()
        self._bracket = []

        prev_round = None
        this_round = []

        for r in range(0, len(self._num)):
            for i in range(0, 2**(len(self._num) - 1 - r)):
                m = Match(self._num[r])
                this_round.append(m)

                m.add_parent(self)
                if prev_round != None:
                    prev_round[2 * i].add_winner_link(m, 0)
                    prev_round[2 * i + 1].add_winner_link(m, 1)

            self._matches['Round ' + str(r + 1)] = this_round
            self._bracket.append(this_round)
            prev_round = this_round
            this_round = []