KventinБлагодарю за ссылки, весьма полезно.
Пожалуйста. В общем, как я вижу примерно. Берем все связи на карте где потенциально может бьіть дорога, генерируем им случайное число "веса" (например между 1 и 2). Для стартовьіх позиций игроков генерируем немного меньшее число (например между 0 и 1) для двух связей с другими зонами чтобьі связи гарантированно бьіли хотя бьі с двумя зонами (решает проблему "плохих дорог на лм"). А дальше запускаем Kruskal's algorithm. Имеем minimal spanning tree что соединяет все зоньі. Конечно если дорога через/в трежак не предусмотрена, то не соединяем.