open Global let get_area posx posy = posx / area_size_x, posy / area_size_y let get_areas posx posy = let neighbor_areas = ref [] in let center_i = posx / area_size_x in let center_j = posy / area_size_y in let left = (posx - coverage_range) / area_size_x in let right = (posx + coverage_range) / area_size_x in let up = (posy + coverage_range) / area_size_y in let down = (posy - coverage_range) / area_size_y in for i = left to right do if 0 <= i && i < nb_area_x then for j = down to up do if 0 <= j && j < nb_area_y then if not (i = center_i && j = center_j) then neighbor_areas := (i,j) :: !neighbor_areas done done; (center_i, center_j), !neighbor_areas let make_areas = for i = 0 to nb_area_x-1 do for j = 0 to nb_area_y-1 do signal msg_hello in hello_array.(i).(j) <- msg_hello done done