def is_valid_move(self, start, end, player_index):
start_label = self.label_map.flat[start]
if end < len(self.label_map.flat) and end >= 0:
end_label = self.label_map.flat[end]
else:
return False
index = start_label - 1
if player_index != None and (player_index != index):
return False
if self.army_map.flat[start] == 0:
return False
start_x, start_y = np.unravel_index(start, (self.map_height, self.map_width))
end_x, end_y = np.unravel_index(end, (self.map_height, self.map_width))
if abs(start_x - end_x) + abs(start_y - end_y) != 1:
return False
return True
评论列表
文章目录