Какую структуру использовать для хранения карты игровых полей со сложными границами?
Cell: struct {
 x,y, height, width: float/double/int/bool (про bool пошутил)
 neighbors: list of cell;
 isLeftRed, isRightRed, itTopRed, isBottomRed: bool;
}

Каждая ячейка хранит инфу о своем положении, ссылки на соседей и набор параметров указывающих на допустимость пересечения конкретной границы (на примере не нарисовано, и я надеюсь, что нет случаев когда для какой-то ячейки одна из границ может быть пересекаемой только в конкретном положении).
По такой структуре можно легко и быстро определять куда можно ходить, куда нельзя. Не сложно оптимизировать структуру для меншего потребления ОП сжав все параметры в некий набор байт. 
И тогда может очень большая карта влезет в 10 мб, что, я верю, достаточный результат.
Может хранить только красные границы? Те, через которые запрещено ходить.