コード例 #1
0
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
コード例 #2
0
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