Есть стены. Надо проверить, что бы точки пути не пересекали стены.
У тебя есть путь - это ломаная, которая состоит из отрезков, которые состоят из точек.
У тебя есть стена - это ломаная, которая состоит из отрезков, которые состоят из точек.
(0, 1) - это одна точка
{(0, 1), (2, 3)} - это один отрезок
{{(0, 1), (2, 3)}, {(2, 3), (4, 5)}, {(4, 5), (6, 7)}} - это одна ломаная
Вот так и храни: это нужно делать класс точки, класс отрезка и класс ломаной.
Чтобы определить пересекает ли путь стену, нужно определить пересекаются ли отрезки пути с отрезками стены.
В классе ломаной должен быть метод, который проверяет пересечение ломаной с другой ломаной.
В классе отрезка должен быть метод, который проверяет пересечение отрезка с другим отрезком.