В настоящее время я пытаюсь создать небольшой текстовый искатель подземелий в C, где карта должна быть случайным образом сгенерирована. Я пытаюсь выполнить это, используя список с четырьмя ссылками, где каждый узел (комната) может иметь до четырех подключений к соседним комнатам.Я ищу конкретный алгоритм поиска
typedef struct Room {
int x; //each room got its own number to be identified.
struct Room *north;
struct Room *east;
struct Room *south;
struct Room *west; } room;
Оно также должно быть возможно для некоторых номеров, чтобы иметь только один или два или три соединения, а неиспользованные указатели на следующие узлы остаются NULL. По причинам varius мне нужен алгоритм поиска, который выполняет итерации через комнаты, чтобы найти конкретный. Я понятия не имею, как реализовать что-то подобное. Есть идеи?
Вы ищете комнаты, основанные на поле 'x'? Затем вы можете просто инициализировать значения каждой комнаты поочередно (строка мудрая), и поиск становится тривиальным. –
Добавьте «уже искали» bool и рекурсивно охотитесь вокруг? Вам может быть лучше с двумя bools и чередовать их в каждом поиске, чтобы вы могли сбросить один набор во время поиска другого. –
@Akash Pradhan: Я не думаю, что это сработает. Если я хочу, чтобы программа «находила комнату № 47», она должна не только найти индекс, но и найти местоположение. Чтобы сделать это, он должен перебирать по четыре направления по каждой комнате один за другим. – Markus