def activeDefenseForKings(board, color): opponentColor = gamePlay.getOpponentColor(color) val1 = 0 val2 = 0 forwardRight = (1, -1) forwardLeft = (1, 1) backwardRight = (-1, -1) backwardLeft = (-1, 1) postNeighbors = list() postNeighbors = [backwardRight, backwardLeft] for i in range(1,33): xy = gamePlay.serialToGrid(i) x = xy[0] y = xy[1] if board[x][y] == color: #for post neighbors of kings, see if there are same colored pawns to rate defensiveness for item in postNeighbors: coord = tuple(sum(x) for x in zip(xy, item)) prev_xy = gridToSerial(coord[0], coord[1]) if prev_xy in range (1, 33): new_coord = gamePlay.serialToGrid(prev_xy) newx = new_coord[0] newy = new_coord[1] if board[newx][newy] == color: val1 += 1 elif board[x][y] == opponentColor.upper(): val2 += 1 return val1*val2
def activeDefenseForPawns(board, color): opponentColor = gamePlay.getOpponentColor(color) value = 0 forwardRight = (1, -1) forwardLeft = (1, 1) backwardRight = (-1, -1) backwardLeft = (-1, 1) prevNeighbors = list() if color == 'r': prevNeighbors = [forwardRight, forwardLeft] else: prevNeighbors = [backwardRight, backwardLeft] for i in range(1,33): xy = gamePlay.serialToGrid(i) x = xy[0] y = xy[1] if board[x][y] == color: #for post neighbors of pawns, see if there are same colored pawns to rate defensiveness for item in prevNeighbors: coord = tuple(sum(x) for x in zip(xy, item)) prev_xy = gridToSerial(coord[0], coord[1]) if prev_xy in range (1, 33): new_coord = gamePlay.serialToGrid(prev_xy) newx = new_coord[0] newy = new_coord[1] if board[newx][newy] == color: value += 1 #subtract for opponent elif board[x][y] == opponentColor: for item in prevNeighbors: coord = tuple(sum(x) for x in zip(xy, item)) prev_xy = gridToSerial(coord[0], coord[1]) if prev_xy in range (1, 33): new_coord = gamePlay.serialToGrid(prev_xy) newx = new_coord[0] newy = new_coord[1] if board[newx][newy] == opponentColor: value -= 1 return value