Esempio n. 1
0
    def _test_round_robin(self):

        players = [
            TicTacToe.TicTacToe(),
            TicTacToe.CenterGrabTicTacToe(),
            TicTacToe.RandomTicTacToe(),
            TicTacToe.CenterGrabRandomTicTacToe(),
            TicTacToe.BottomUpTicTacToe(),
            TicTacToe.HunterTicTacToe()
        ]
        players.append(TicTacToe.InvalidReturnTicTacToe())
        players.append(TicTacToe.LoopBackTicTacToe())
        #players.append(TicTacToe.NoReturnTicTacToe())

        points = {}
        losses = {}
        for i in range(len(players)):
            points[i] = 0
            losses[i] = 0

        for x in range(len(players)):
            for y in range(len(players)):
                if x != y:
                    result = TicTacToe.TicTacToe.head_to_head(
                        players[x], players[y], TicTacToe.TicTacToe())
                    if 'X' in result:
                        points[x] += 1
                        losses[y] += 1
                    elif 'O' in result:
                        points[y] += 1
                        losses[x] += 1
                    else:
                        points[x] += 0.5
                        points[y] += 0.5
        print '\n'
        for k in points:
            print k, 'scored', points[k], 'points', losses[
                k], 'losses', players[k].get_name()