예제 #1
0
    def test_regions(self, map_data: MapData) -> None:
        for region in map_data.regions.values():
            for p in region.points:
                assert (region in map_data.where_all(p)), f"expected {region}, got {map_data.where_all(p)}, point {p}"
            assert (region == map_data.where(region.center))

            # coverage
            region.plot(testing=True)
예제 #2
0
        map_file = mf
        break

with lzma.open(map_file, "rb") as f:
    raw_game_data, raw_game_info, raw_observation = pickle.load(f)

bot = import_bot_instance(raw_game_data, raw_game_info, raw_observation)
map_data = MapData(bot, loglevel="DEBUG")

map_data.plot_map()
map_data.show()
# map_data.save('fname')

# TEST ILLEGAL VALUES ISOLATED
base = map_data.bot.townhalls[0]
reg_start = map_data.where(base.position_tuple)
reg_end = map_data.where(map_data.bot.enemy_start_locations[0].position)
p0 = reg_start.center
p1 = reg_end.center
pts = []
r = 10
for i in range(50):
    pts.append(get_random_point(-500, -250, -500, -250))

arr = map_data.get_pyastar_grid()
for p in pts:
    arr = map_data.add_cost(p, r, arr)
path = map_data.pathfind(p0, p1, grid=arr)
map_data.plot_influenced_path(start=p0, goal=p1, weight_array=arr)
map_data.show()
assert (path is not None), f"path = {path}"