¿Cómo puedo encontrar un muro procesal que separe dos o más puntos en un mapa basado en cuadrícula?

Estoy tratando de generar muros que corten un punto dado de otros puntos dados. La imagen adjunta muestra el tipo de cosas que busco: Azul separado del rojo. Azul separado del rojo y amarillo. Azul separado del rojo con obstrucciones de azulejos. Múltiple Azul separado de Múltiple...