Пример #1
0
class Strategy:
    Setup = None
    # 'random' - randomly places initial settlements and roads
    Discard = None
    # 'random' - randomly discard floor(half) cards when over 8 cards when 7 rolls
    Rob = None
    # 'random' - randomly places robber and robs randomly from enemy if able
    Trade = None
    # 'none' - never trades with anyone
    Build = None

    # 'best' - builds something that leaves the players total points highest

    def __init__(self,
                 playerId,
                 board,
                 players,
                 setup='random',
                 discard='random',
                 rob='random',
                 trade='none',
                 build='best'):
        self.Setup = Setup(setup, playerId, board, players)
        self.Discard = Discard(discard, playerId, board, players)
        self.Rob = Rob(rob, playerId, board, players)
        self.Trade = Trade(trade, playerId, board, players)
        self.Build = Build(build, playerId, board, players)

    def play(self, do):
        do = do.lower()

        if do == 'setup':
            self.Setup.go()
        elif do == 'discard':
            self.Discard.go()
        elif do == 'rob':
            self.Rob.go()
        elif do == 'trade':
            self.Trade.go()
        elif do == 'build':
            self.Build.go()