Кодирование графика с кардинальным направлением движения? - PullRequest
0 голосов
/ 11 февраля 2019

Изучая структуры данных, я наткнулся на структуру данных графа и чувствую, что она соответствует моей потребности выразить следующее изображение в коде: Labyrinth


По существуЯ намереваюсь создать перемещаемую карту, каждое «Местоположение» является узлом структуры графа, а выданные команды [Север, Восток, Запад, Юг] позволяют игроку перемещаться через каждый узел.Красный узел представляет стартовую позицию игроков.Моя проблема заключается в самом графе, потому что:

Я не знаю, как ввести понятие основных направлений, например, в список смежности, который просто содержит узлы без какой-либо идеи его кардинального размещения, дляНапример, узел [0] может быть подключен к [0] -> [4] -> [8] -> [3], но я не смогу узнать, является ли [4] желаемым результатом при выдачеКоманда север.

Простой способ решения этой проблемы будет через следующий связанный список:

struct Area {
        int code;
        string title;
        Area *north;
        Area *east;
        Area *south;
        Area *west;
    };
    Area *Lookup;

Однако каждый узел имеет свои смежные узлы, определенные вручную, так как это длякласс структур данных (hashmap / map / vectors непригодны для использования), я хотел бы реализовать его с помощью метода adjacencylist (если это возможно).Возможно ли это, если да, как это будет реализовано?

Будет ли матрица смежности лучшей альтернативой?

...