示例#1
0
文件: strateval.py 项目: btrent/knave
def state_trappedBishops (model, ply, phase):
    """ Check for bishops trapped at A2/H2/A7/H7 """

    board = model.getBoardAtPly(ply).board
    oldboard = model.getBoardAtPly(ply-1).board

    opcolor = board.color
    color = 1-opcolor

    move = model.getMoveAtPly(ply-1).move
    tcord = TCORD(move)

    # Only a pawn is able to trap a bishop
    if board.arBoard[tcord] != PAWN:
        return

    if tcord == B3:
        cord = A2
    elif tcord == G3:
        cord = H2
    elif tcord == B6:
        cord = A7
    elif tcord == G6:
        cord = H7
    else:
        return

    s = leval.evalTrappedBishops (board, opcolor)
    olds = leval.evalTrappedBishops (oldboard, opcolor)

    # We have got more points -> We have trapped a bishop
    if s > olds:
        yield 300/phase, _("%(opcolor)s has a new trapped bishop on %(cord)s") % {
                            'opcolor': reprColor[opcolor], 'cord': reprCord[cord]}
示例#2
0
def state_trappedBishops(model, ply, phase):
    """ Check for bishops trapped at A2/H2/A7/H7 """

    board = model.getBoardAtPly(ply).board
    oldboard = model.getBoardAtPly(ply - 1).board

    opcolor = board.color
    color = 1 - opcolor

    move = model.getMoveAtPly(ply - 1).move
    tcord = TCORD(move)

    # Only a pawn is able to trap a bishop
    if board.arBoard[tcord] != PAWN:
        return

    if tcord == B3:
        cord = A2
    elif tcord == G3:
        cord = H2
    elif tcord == B6:
        cord = A7
    elif tcord == G6:
        cord = H7
    else:
        return

    s = leval.evalTrappedBishops(board, opcolor, phase)
    olds = leval.evalTrappedBishops(oldboard, opcolor, phase)

    # We have got more points -> We have trapped a bishop
    if s > olds:
        yield 300 / phase, _(
            "%(opcolor)s has a new trapped bishop on %(cord)s") % {
                'opcolor': reprColor[opcolor],
                'cord': reprCord[cord]
            }
示例#3
0
def state_trappedBishops (model, phase):
    """ Check for bishops trapped at A2/H2/A7/H7 """
    
    board = model.boards[-1].board
    oldboard = model.boards[-2].board
    
    opcolor = board.color
    color = 1-opcolor
    
    move = model.moves[-1].move
    tcord = TCORD(move)
    
    # Only a pawn is able to trap a bishop
    if board.arBoard[tcord] != PAWN:
        return
    
    if tcord == B3:
        cord = A2
    elif tcord == G3:
        cord = H2
    elif tcord == B6:
        cord = A7
    elif tcord == G6:
        cord = H7
    else:
        return
    
    s = leval.evalTrappedBishops (board)
    oldboard.setColor(1-oldboard.color)
    olds = leval.evalTrappedBishops (oldboard)
    oldboard.setColor(1-oldboard.color)
    
    # We have got more points -> We have trapped a bishop
    if s > olds:
        yield 300/phase, _("%s has a new trapped bishop on %s") % \
                            (reprColor[opcolor], reprCord[cord])