• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

Python Board.Board类代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

本文整理汇总了Python中pychess.Utils.Board.Board的典型用法代码示例。如果您正苦于以下问题:Python Board类的具体用法?Python Board怎么用?Python Board使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。



在下文中一共展示了Board类的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Python代码示例。

示例1: __init__

 def __init__(self, setup=False, lboard=None):
     if setup is True:
         Board.__init__(self,
                        setup=self.asymmetricrandom_start(),
                        lboard=lboard)
     else:
         Board.__init__(self, setup=setup, lboard=lboard)
开发者ID:bboutkov,项目名称:pychess,代码行数:7,代码来源:asymmetricrandom.py


示例2: __init__

 def __init__(self, setup=True):
     fen = SETUPSTART if setup is True else setup
     # add all kind if piece to holdings (except king)
     parts = fen.split()
     parts[0] += "/prnsqPRNSQ"
     fen = " ".join(parts)
     Board.__init__(self, setup=fen)
     self._ply = 0
开发者ID:sally0813,项目名称:pychess,代码行数:8,代码来源:setupposition.py


示例3: __init__

 def __init__(self, setup=True):
     fenstr = SETUPSTART if setup is True else setup
     # add all kind if piece to holdings
     parts = fenstr.split()
     parts[0] += "/prnsqkPRNSQK"
     fenstr = " ".join(parts)
     Board.__init__(self, setup=fenstr)
     self._ply = 0
开发者ID:bboutkov,项目名称:pychess,代码行数:8,代码来源:setupposition.py


示例4: test2

 def test2(self):
     """ Test analyzing in promotion situations """
     
     board = Board('5k2/PK6/8/8/8/6P1/6P1/8 w - - 1 48')
     self.analyzerA.setBoardList([board],[])
     self.analyzerI.setBoardList([board],[])
     
     self._testLine(self.engineA, self.analyzerA, board,
                    "9. 1833 23 43872584     a8=Q+ Kf7 Qa2+ Kf6 Qd2 Kf5 g4+",
                    ['a8=Q+','Kf7','Qa2+','Kf6','Qd2','Kf5','g4+'], 1833, "9.")
     
     self._testLine(self.engineI, self.analyzerI, board.switchColor(),
                    "10. -1883 59 107386433     Kf7 a8=Q Ke6 Qa6+ Ke5 Qd6+ Kf5",
                    ['Kf7','a8=Q','Ke6','Qa6+','Ke5','Qd6+','Kf5'], -1883, "10.")
开发者ID:Alex-Linhares,项目名称:pychess,代码行数:14,代码来源:analysis.py


示例5: test1

 def test1(self):
     """ Test analyzing in forced mate situations """
     
     board = Board('B1n1n1KR/1r5B/6R1/2b1p1p1/2P1k1P1/1p2P2p/1P2P2P/3N1N2 w - - 0 1')
     self.analyzerA.setBoardList([board],[])
     self.analyzerI.setBoardList([board],[])
     
     self._testLine(self.engineA, self.analyzerA, board,
                    "1. Mat1 0 1     Bxb7#",
                    ['Bxb7#'], MATE_VALUE, "1.")
     
     # Notice, in the opposite situation there is no forced mate. Black can
     # do Bxe3 or Ne7+, but we just emulate a stupid analyzer not
     # recognizing this.
     self._testLine(self.engineI, self.analyzerI, board.switchColor(),
                    "10. -Mat 2 35 64989837     Bd4 Bxb7#",
                    ['Bd4','Bxb7#'], -MATE_VALUE, "10.")
开发者ID:Alex-Linhares,项目名称:pychess,代码行数:17,代码来源:analysis.py


示例6: __onReadyForMoves

 def __onReadyForMoves (self, self_):
     # If we are an analyzer, this signal was already called in a different
     # thread, so we can safely block it.
     if self.mode in (ANALYZING, INVERSE_ANALYZING):
         if not self.board:
             self.board = Board(setup=True)
         self.__sendAnalyze(self.mode == INVERSE_ANALYZING)
     
     self.readyMoves = True
     semisynced(lambda s:None)(self)
开发者ID:btrent,项目名称:knave,代码行数:10,代码来源:CECPEngine.py


示例7: __init__

    def __init__(self, subprocess, color, protover, md5):
        ProtocolEngine.__init__(self, subprocess, color, protover, md5)

        self.ids = {}
        self.options = {}
        self.optionsToBeSent = {}

        self.wtime = 60000
        self.btime = 60000
        self.incr = 0
        self.timeHandicap = 1

        self.moveLock = RLock()
        # none of the following variables should be changed or used in a
        # condition statement without holding the above self.moveLock
        self.ponderOn = False
        self.pondermove = None
        self.ignoreNext = False
        self.waitingForMove = False
        self.needBestmove = False
        self.readyForStop = False  # keeps track of whether we already sent a 'stop' command
        self.multipvSetting = conf.get("multipv", 1
                                       )  # MultiPV option sent to the engine
        self.multipvExpected = 1  # Number of PVs expected (limited by number of legal moves)
        self.commands = collections.deque()

        self.gameBoard = Board(setup=True)  # board at the end of all moves played
        self.board = Board(setup=True)  # board to send the engine
        self.uciPosition = "startpos"
        self.uciPositionListsMoves = False
        self.analysis = [None]

        self.returnQueue = Queue()
        self.line_cid = self.engine.connect("line", self.parseLine)
        self.died_cid = self.engine.connect("died", self.__die)
        self.invalid_move = None

        self.cids = [
            self.connect("readyForOptions", self.__onReadyForOptions_before),
            self.connect_after("readyForOptions", self.__onReadyForOptions),
            self.connect_after("readyForMoves", self.__onReadyForMoves),
        ]
开发者ID:ME7ROPOLIS,项目名称:pychess,代码行数:42,代码来源:UCIEngine.py


示例8: __onReadyForMoves

 def __onReadyForMoves (self, self_):
     self.returnQueue.put("ready")
     self.readyMoves = True
     self._newGame()
     
     # If we are an analyzer, this signal was already called in a different
     # thread, so we can safely block it.
     if self.mode in (ANALYZING, INVERSE_ANALYZING):
         if not self.board:
             self.board = Board(setup=True)
         self.putMove(self.board, None, None)
开发者ID:jskurka,项目名称:PyChess-Learning-Module,代码行数:11,代码来源:UCIEngine.py


示例9: __init__

    def __init__(self, subprocess, color, protover, md5):
        ProtocolEngine.__init__(self, subprocess, color, protover, md5)

        self.ids = {}
        self.options = {}
        self.optionsToBeSent = {}

        self.wtime = 60000
        self.btime = 60000
        self.incr = 0
        self.moves = 0
        self.timeHandicap = 1

        self.ponderOn = False
        self.pondermove = None
        self.ignoreNext = False
        self.waitingForMove = False
        self.needBestmove = False
        self.bestmove_event = asyncio.Event()
        self.readyForStop = False  # keeps track of whether we already sent a 'stop' command
        self.multipvSetting = 1  # MultiPV option sent to the engine
        self.multipvExpected = 1  # Number of PVs expected (limited by number of legal moves)
        self.commands = collections.deque()

        self.gameBoard = Board(setup=True)  # board at the end of all moves played
        self.board = Board(setup=True)  # board to send the engine
        self.uciPosition = "startpos"
        self.uciPositionListsMoves = False
        self.analysis = [None]
        self.analysis_depth = None

        self.queue = asyncio.Queue()
        self.parse_line_task = asyncio.async(self.parseLine(self.engine))
        self.died_cid = self.engine.connect("died", lambda e: self.queue.put_nowait("die"))
        self.invalid_move = None

        self.cids = [
            self.connect_after("readyForOptions", self.__onReadyForOptions),
            self.connect_after("readyForMoves", self.__onReadyForMoves),
        ]
开发者ID:teacoffee2017,项目名称:pychess,代码行数:40,代码来源:UCIEngine.py


示例10: __init__

 def __init__(self, setup=False, lboard=None):
     if setup == True:
         Board.__init__(self, setup=self.shuffle_start(), lboard=lboard)
     else:
         Board.__init__(self, setup=setup, lboard=lboard)
开发者ID:jcoffee,项目名称:pychess,代码行数:5,代码来源:fischerandom.py


示例11: CECPEngine

class CECPEngine(ProtocolEngine):
    def __init__(self, subprocess, color, protover, md5):
        ProtocolEngine.__init__(self, subprocess, color, protover, md5)

        self.features = {
            "ping": 0,
            "setboard": 0,
            "playother": 0,
            "san": 0,
            "usermove": 0,
            "time": 1,
            "draw": 1,
            "sigint": 0,
            "sigterm": 0,
            "reuse": 0,
            "analyze": 0,
            "myname": ', '.join(self.defname),
            "variants": None,
            "colors": 1,
            "ics": 0,
            "name": 0,
            "pause": 0,
            "nps": 0,
            "debug": 0,
            "memory": 0,
            "smp": 0,
            "egt": '',
            "option": '',
            "exclude": 0,
            "done": None,
        }

        self.supported_features = [
            "ping", "setboard", "san", "usermove", "time", "draw", "sigint",
            "analyze", "myname", "variants", "colors", "pause", "done", "egt",
            "debug", "smp", "memory", "option"
        ]

        self.options = {}
        self.options["Ponder"] = {"name": "Ponder",
                                  "type": "check",
                                  "default": False}

        self.name = None

        self.board = Board(setup=True)

        # if self.engineIsInNotPlaying == True, engine is in "force" mode,
        # i.e. not thinking or playing, but still verifying move legality
        self.engineIsInNotPlaying = False
        self.engineIsAnalyzing = False
        self.movenext = False
        self.waitingForMove = False
        self.readyForMoveNowCommand = False
        self.timeHandicap = 1

        self.lastping = 0
        self.lastpong = 0

        self.queue = asyncio.Queue()
        self.parse_line_task = asyncio.async(self.parseLine(self.engine))
        self.died_cid = self.engine.connect("died", lambda e: self.queue.put_nowait("die"))
        self.invalid_move = None

        self.optionQueue = []
        self.undoQueue = []
        self.ready_moves_event = asyncio.Event()

        self.cids = [
            self.connect_after("readyForOptions", self.__onReadyForOptions),
            self.connect_after("readyForMoves", self.__onReadyForMoves),
        ]

    # Starting the game

    def prestart(self):
        print("xboard", file=self.engine)
        if self.protover == 1:
            # start a new game (CECPv1 engines):
            print("new", file=self.engine)

            # we are now ready for options:
            self.emit("readyForOptions")
        elif self.protover == 2:
            # start advanced protocol initialisation:
            print("protover 2", file=self.engine)

            # we don't start a new game for CECPv2 here,
            # we will do it after feature accept/reject is completed.

    def start(self, event=None):
        asyncio.async(self.__startBlocking(event))

    @asyncio.coroutine
    def __startBlocking(self, event):
        if self.protover == 1:
            self.emit("readyForMoves")
            return_value = "ready"

        if self.protover == 2:
#.........这里部分代码省略.........
开发者ID:bboutkov,项目名称:pychess,代码行数:101,代码来源:CECPEngine.py


示例12: __init__

 def __init__(self, setup=False, lboard=None):
     if setup is True:
         Board.__init__(self, setup=WILDCASTLESTART, lboard=lboard)
     else:
         Board.__init__(self, setup=setup, lboard=lboard)
开发者ID:CarbonFixer,项目名称:pychess,代码行数:5,代码来源:wildcastle.py


示例13: _

                 "* Exactly one king of each color\n" +
                 "* Pieces placed randomly behind the pawns\n" +
                 "* No castling\n" +
                 "* Black's arrangement mirrors white's")
    name = _("Random")
    cecp_name = "unknown"
    need_initial_board = True
    standard_rules = True
    variant_group = VARIANTS_SHUFFLE

    def __init__ (self, setup=False, lboard=None):
        if setup is True:
            Board.__init__(self, setup=self.random_start(), lboard=lboard)
        else:
            Board.__init__(self, setup=setup, lboard=lboard)

    def random_start(self):        
        tmp = random.sample(('r', 'n', 'b', 'q')*16, 7)
        tmp.append('k')
        random.shuffle(tmp)
        tmp = ''.join(tmp)
        tmp = tmp + '/pppppppp/8/8/8/8/PPPPPPPP/' + tmp.upper() + ' w - - 0 1'
        
        return tmp


if __name__ == '__main__':
    Board = RandomBoard(True)
    for i in range(10):
        print(Board.random_start())
开发者ID:Alex-Linhares,项目名称:pychess,代码行数:30,代码来源:randomchess.py


示例14: __init__

 def __init__(self, setup=False, lboard=None):
     if setup is True:
         Board.__init__(self, setup=UPSIDEDOWNSTART, lboard=lboard)
     else:
         Board.__init__(self, setup=setup, lboard=lboard)
开发者ID:jcoffee,项目名称:pychess,代码行数:5,代码来源:upsidedown.py


示例15: __init__

 def __init__ (self, setup=False, lboard=None):
     if setup is True:
         Board.__init__(self, setup=PAWNSPASSEDSTART, lboard=lboard)
     else:
         Board.__init__(self, setup=setup, lboard=lboard)
开发者ID:Alex-Linhares,项目名称:pychess,代码行数:5,代码来源:pawnspassed.py


示例16: UCIEngine

class UCIEngine (ProtocolEngine):
    
    def __init__ (self, subprocess, color, protover, md5):
        ProtocolEngine.__init__(self, subprocess, color, protover, md5)
        
        self.ids = {}
        self.options = {}
        self.optionsToBeSent = {}
        
        self.wtime = 60000
        self.btime = 60000
        self.incr = 0
        self.timeHandicap = 1 
        
        self.moveLock = RLock()
        # none of the following variables should be changed or used in a
        # condition statement without holding the above self.moveLock
        self.ponderOn = False
        self.pondermove = None
        self.ignoreNext = False
        self.waitingForMove = False
        self.needBestmove = False
        self.readyForStop = False   # keeps track of whether we already sent a 'stop' command
        self.multipvSetting  = conf.get("multipv", 1)    # MultiPV option sent to the engine
        self.multipvExpected = 1    # Number of PVs expected (limited by number of legal moves)
        self.commands = collections.deque()
        
        self.gameBoard = Board(setup=True) # board at the end of all moves played
        self.board = Board(setup=True)     # board to send the engine
        self.uciPosition = "startpos"
        self.uciPositionListsMoves = False
        self.analysis = [ None ]
        
        self.returnQueue = Queue()
        self.engine.connect("line", self.parseLines)
        self.engine.connect("died", self.__die)
        
        self.connect("readyForOptions", self.__onReadyForOptions_before)
        self.connect_after("readyForOptions", self.__onReadyForOptions)
        self.connect_after("readyForMoves", self.__onReadyForMoves)
    
    def __die (self, subprocess):
        self.returnQueue.put("die")
    
    #===========================================================================
    #    Starting the game
    #===========================================================================
    
    def prestart (self):
        print("uci", file=self.engine)
    
    def start (self):
        if self.mode in (ANALYZING, INVERSE_ANALYZING):
            t = Thread(target=self.__startBlocking,
                       name=fident(self.__startBlocking))
            t.daemon = True
            t.start()
        else:
            self.__startBlocking()
    
    def __startBlocking (self):
        r = self.returnQueue.get()
        if r == 'die':
            raise PlayerIsDead
        assert r == "ready" or r == 'del'
        #self.emit("readyForOptions")
        #self.emit("readyForMoves")
    
    def __onReadyForOptions_before (self, self_):
        self.readyOptions = True
    
    def __onReadyForOptions (self, self_):
        if self.mode in (ANALYZING, INVERSE_ANALYZING):
            if self.hasOption("Ponder"):
                self.setOption('Ponder', False)
        
            if self.hasOption("MultiPV") and self.multipvSetting > 1:
                self.setOption('MultiPV', self.multipvSetting)
            
        for option, value in self.optionsToBeSent.items():
            if isinstance(value, bool):
                value = str(value).lower()
            print("setoption name %s value %s" % (option, str(value)), file=self.engine)
        
        print("isready", file=self.engine)
    
    def __onReadyForMoves (self, self_):
        self.returnQueue.put("ready")
        self.readyMoves = True
        self._newGame()
        
        # If we are an analyzer, this signal was already called in a different
        # thread, so we can safely block it.
        if self.mode in (ANALYZING, INVERSE_ANALYZING):
            self._searchNow()
    
    #===========================================================================
    #    Ending the game
    #===========================================================================
    
#.........这里部分代码省略.........
开发者ID:fowode,项目名称:pychess,代码行数:101,代码来源:UCIEngine.py


示例17: random_start

    def random_start(self):        
        tmp = random.sample(('r', 'n', 'b', 'q')*16, 7)
        tmp.append('k')
        random.shuffle(tmp)
        tmp = ''.join(tmp)
        tmp = tmp + '/pppppppp/8/8/8/8/PPPPPPPP/' + tmp.upper() + ' w - - 0 1'
        
        return tmp


class RandomChess:
    __desc__ = _("FICS wild/3: http://www.freechess.org/Help/HelpFiles/wild.html\n" +
                 "* Randomly chosen pieces (two queens or three rooks possible)\n" +
                 "* Exactly one king of each color\n" +
                 "* Pieces placed randomly behind the pawns\n" +
                 "* No castling\n" +
                 "* Black's arrangement mirrors white's")
    name = _("Random")
    cecp_name = "unknown"
    board = RandomBoard
    need_initial_board = True
    standard_rules = True
    variant_group = VARIANTS_SHUFFLE


if __name__ == '__main__':
    Board = RandomBoard(True)
    for i in range(10):
        print Board.random_start()
开发者ID:btrent,项目名称:knave,代码行数:29,代码来源:randomchess.py


示例18: __init__

 def __init__ (self, setup=False, lboard=None):
     if setup is True:
         Board.__init__(self, setup=KNIGHTODDSSTART, lboard=lboard)
     else:
         Board.__init__(self, setup=setup, lboard=lboard)
开发者ID:btrent,项目名称:knave,代码行数:5,代码来源:knightodds.py


示例19: __init__

 def __init__ (self, setup=False):
     if setup is True:
         Board.__init__(self, setup=PAWNSPASSEDSTART)
     else:
         Board.__init__(self, setup=setup)
开发者ID:jskurka,项目名称:PyChess-Learning-Module,代码行数:5,代码来源:pawnspassed.py


示例20: and

                        blackdarkbishops += 1
                        blacklightbishops = blacklightbishops > 0 and (blacklightbishops-1) or 0
                        break
                    
        tmp = ''.join(black) + '/pppppppp/8/8/8/8/PPPPPPPP/' + \
              ''.join(white).upper() + ' w - - 0 1'
        
        return tmp


class AsymmetricRandomChess:
    __desc__ = \
        _("FICS wild/4: http://www.freechess.org/Help/HelpFiles/wild.html\n" +
          "* Randomly chosen pieces (two queens or three rooks possible)\n" +
          "* Exactly one king of each color\n" +
          "* Pieces placed randomly behind the pawns, SUBJECT TO THE CONSTRAINT THAT THE BISHOPS ARE BALANCED\n" +
          "* No castling\n" +
          "* Black's arrangement DOES NOT mirrors white's")
    name = _("Asymmetric Random")
    cecp_name = "unknown"
    board = AsymmetricRandomBoard
    need_initial_board = True
    standard_rules = True
    variant_group = VARIANTS_SHUFFLE


if __name__ == '__main__':
    Board = AsymmetricRandomBoard(True)
    for i in range(10):
        print Board.asymmetricrandom_start()
开发者ID:jskurka,项目名称:PyChess-Learning-Module,代码行数:30,代码来源:asymmetricrandom.py



注:本文中的pychess.Utils.Board.Board类示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Python GameModel.GameModel类代码示例发布时间:2022-05-25
下一篇:
Python uistuff.keepWindowSize函数代码示例发布时间:2022-05-25
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap