да, это немного сложная часть)
я смотрю окрестность вокруг потенциальной постройки и запускаю 2 bfs от рабочего, который строит дом: если дома еще нет, и если дом уже построен в данной точке. Считаю количество достижимых клеток в 2 случаях и смотрю на разницу. Если она сильно большая, значит блокирует)
Можно проверить бфсом достижимость всех граничных открытых клеток будущей стройки?!