Пример #1
0
class GamePlayer:
    def __init__(self, white_engine=Human(), black_engine=Human(), log=True):
        self.white_engine = white_engine
        self.black_engine = black_engine
        self.board = Board()
        self.log = log

    def set_engine(self, color, engine):
        if color == 'w':
            self.white_engine = engine
        elif color == 'b':
            self.black_engine = engine

    def print_log(self, s):
        if self.log:
            print s

    def print_result(self):
        board = self.board
        # winner
        if board.result == 'd':
            print "DRAWN GAME"
        else:
            print "WINNER: ", (board.white if board.result == 'w' else board.black)
        print "Number of moves: ", board.moves


    def print_move_information(self, move):
        player = "White" if self.board.turn == 'w' else "Black"
        print "Move: ", self.board.moves
        print player, "played the move ", str(move)        

    def play_game(self):
        while self.board.result == None:
            self.print_log(self.board)
            if self.board.in_check != None:
                print self.board.turn, " is in check from: ", self.board.in_check
            if self.board.turn == 'w':
                move, ev = self.white_engine.get_best_move(self.board)
            else:
                move, ev = self.black_engine.get_best_move(self.board)
            self.print_move_information(move)
            self.board = self.board.make_move_from_move(move)
        self.print_result()