Пример #1
0
 def nobestmove(self):
     if self.engine.sit.turn == Chess.RED:
         side = '黑方'
     else:
         side = '红方'
     logger.debug('nobestmove')
     self.toast.message(f"{side}行棋违例!")
Пример #2
0
 def run(self):
     logger.debug("Thread started.")
     while not self.__stopped:
         self.__wait()
         if not self.__stopped:
             try:
                 self.doCall()
             except Exception, e:
                 logger.critical("Unhandled exception", exc_info=e)
Пример #3
0
 def run(self):
     logger.debug("Thread started.")
     while not self.__stopped:
         self.__wait()
         if not self.__stopped:
             try:
                 self.doCall()
             except Exception, e:
                 logger.critical("Unhandled exception", exc_info=e)
Пример #4
0
 def set_thinking(self, thinking):
     self.thinking = thinking
     logger.debug("set thinking %s", self.thinking)
     if len(self.engine_side) == 2 and not self.engine.checkmate:
         QtWidgets.QApplication.setOverrideCursor(QtCore.Qt.BusyCursor)
     elif self.thinking:
         QtWidgets.QApplication.setOverrideCursor(QtCore.Qt.BusyCursor)
     else:
         QtWidgets.QApplication.setOverrideCursor(QtCore.Qt.ArrowCursor)
     self.update_action_state()
Пример #5
0
    def go(self):
        if self.engine.checkmate:
            self.game_signal.checkmate.emit()
            logger.debug('engine is checkmated hint ignored...')
            return
        self.game_signal.thinking.emit(True)
        engine = self.current_engine()
        engine.position(self.engine.sit.format_fen())

        params = self.settings.get_params(self.engine.sit.turn)
        engine.go(**params)
Пример #6
0
    def redo(self):
        for _ in range(2):
            self.engine.redo()
            logger.debug('engine redo result %d', self.engine.sit.result)
            self.game_signal.move.emit(self.engine.sit.result)
            if self.engine.checkmate:
                self.game_signal.checkmate.emit()
            if self.engine.sit.turn in self.human_side:
                break

        self.updateBoard()
Пример #7
0
    def finish_arrange(self, finished):
        if not finished:
            return
        logger.debug('finish arrange')
        self.engine.close()
        self.engine = Engine()

        self.engine.sit.board = self.board.board
        self.engine.sit.turn = self.board.first_side
        self.engine.sit.fen = self.engine.sit.format_current_fen()
        self.try_engine_move()
        self.game_menu.setAllShortcutEnabled(True)
Пример #8
0
    def doCall(self):
        endDateTime = self.__nextBarClose
        self.__updateNextBarClose()
        barDict = {}

        for indentifier in self.__identifiers:
            try:
                logger.debug("Requesting bars with precision %s and period %s for %s" % (self.__precision, self.__period, indentifier))
                response = api.XigniteGlobalRealTime_GetBar(self.__apiToken, indentifier, "Symbol", endDateTime, self.__precision, self.__period)
                # logger.debug(response)
                barDict[indentifier] = build_bar(response["Bar"], indentifier, self.__frequency)
            except api.XigniteError, e:
                logger.error(e)
Пример #9
0
class PollingThread(threading.Thread):
    def __init__(self):
        threading.Thread.__init__(self)
        self.__stopped = False

    def __wait(self):
        # Wait until getNextCallDateTime checking for cancelation every 0.5 second.
        nextCall = self.getNextCallDateTime()
        while not self.__stopped and utcnow() < nextCall:
            time.sleep(0.5)

    def stop(self):
        self.__stopped = True

    def stopped(self):
        return self.__stopped

    def run(self):
        logger.debug("Thread started.")
        while not self.__stopped:
            self.__wait()
            if not self.__stopped:
                try:
                    self.doCall()
                except Exception, e:
                    logger.critical("Unhandled exception", exc_info=e)
        logger.debug("Thread finished.")
Пример #10
0
 def engine_callback(self, type, data):
     if type == Chess.MOVE:
         time.sleep(self.settings.delay.value() / 1000)
         self.move(data[0], data[1])
     elif type == Chess.INFO:
         logger.debug(data)
     elif type == Chess.POPHASH:
         logger.debug(data)
     elif type == Chess.DRAW:
         self.game_signal.draw.emit()
     elif type == Chess.RESIGN:
         self.game_signal.resign.emit()
     elif type == Chess.CHECKMATE:
         pass
         # self.game_signal.checkmate.emit()
     elif type == Chess.NOBESTMOVE:
         self.game_signal.nobestmove.emit()
Пример #11
0
    def doCall(self):
        endDateTime = self.__nextBarClose
        self.__updateNextBarClose()
        barDict = {}

        for indentifier in self.__identifiers:
            try:
                logger.debug(
                    "Requesting bars with precision %s and period %s for %s" %
                    (self.__precision, self.__period, indentifier))
                response = api.XigniteGlobalRealTime_GetBar(
                    self.__apiToken, indentifier, "Symbol", endDateTime,
                    self.__precision, self.__period)
                # logger.debug(response)
                barDict[indentifier] = build_bar(response["Bar"], indentifier,
                                                 self.__frequency)
            except api.XigniteError, e:
                logger.error(e)
Пример #12
0
    def move(self, fpos, tpos):
        self.game_signal.thinking.emit(False)
        if self.engine.checkmate:
            self.game_signal.checkmate.emit()
            return

        result = self.engine.move(fpos, tpos)
        logger.debug('move result %s', result)
        if not result:
            return

        if result != Chess.INVALID:
            self.game_signal.animate.emit(fpos, tpos)

        if self.engine.sit.check:
            self.board.setCheck(self.engine.sit.check)
            logger.debug('check ... %s', self.engine.sit.check)
        else:
            self.board.setCheck(None)

        self.game_signal.move.emit(result)

        if result == Chess.CHECKMATE:
            logger.debug("emit checkmate")
            self.game_signal.checkmate.emit()
            return

        self.try_engine_move()
Пример #13
0
 def paste(self):
     content = QtWidgets.QApplication.clipboard().text()
     logger.debug('Clipboard text %s', content)
     self.pasre_content(content)
Пример #14
0
    def stop(self):
        self.__stopped = True

    def stopped(self):
        return self.__stopped

    def run(self):
        logger.debug("Thread started.")
        while not self.__stopped:
            self.__wait()
            if not self.__stopped:
                try:
                    self.doCall()
                except Exception, e:
                    logger.critical("Unhandled exception", exc_info=e)
        logger.debug("Thread finished.")

    # Must return a non-naive datetime.
    def getNextCallDateTime(self):
        raise NotImplementedError()

    def doCall(self):
        raise NotImplementedError()


class TushareBarFeedThread(TuSharePollingThread):
    # Events
    ON_BARS = 1

    def __init__(self, queue, identifiers, frequency):
        super(TushareBarFeedThread, self).__init__(identifiers)
Пример #15
0
    def stop(self):
        self.__stopped = True

    def stopped(self):
        return self.__stopped

    def run(self):
        logger.debug("Thread started.")
        while not self.__stopped:
            self.__wait()
            if not self.__stopped:
                try:
                    self.doCall()
                except Exception, e:
                    logger.critical("Unhandled exception", exc_info=e)
        logger.debug("Thread finished.")

    # Must return a non-naive datetime.
    def getNextCallDateTime(self):
        raise NotImplementedError()

    def doCall(self):
        raise NotImplementedError()


class TushareBarFeedThread(TuSharePollingThread):
    # Events
    ON_BARS = 1

    def __init__(self, queue, identifiers, frequency):
        super(TushareBarFeedThread, self).__init__(identifiers)
Пример #16
0
 def handleResponse(self, msg):
     ret = msg.get("event") == "pusher:pong"
     if ret:
         logger.debug("Received pusher:pong.")
     return ret
Пример #17
0
 def sendKeepAlive(self):
     logger.debug("Sending pusher:ping.")
     self.getWSClient().sendPing()
Пример #18
0
 def handleResponse(self, msg):
     ret = msg.get("event") == "pusher:pong"
     if ret:
         logger.debug("Received pusher:pong.")
     return ret
Пример #19
0
 def sendKeepAlive(self):
     logger.debug("Sending pusher:ping.")
     self.getWSClient().sendPing()
Пример #20
0
 def debug(self):
     logger.debug("debug slot.....")
Пример #21
0
 def hint(self):
     if self.thinking:
         logger.debug('engine is thinking hint ignored...')
         return
     self.go()