2013-03-25 2 views
0

Я собираюсь построить карточную игру, касающуюся виртуальной системы метро. Тем не менее, я не знаю, какое лучшее решение для начала.Построение карты на основе игры iOS

Здесь вы несколько деталей:

Так карта содержит различные станции по различным линиям, как любой глобальной сети метро. Как я могу интегрировать эту карту в базу данных? Или я не должен работать с базой данных? Мне нужна структура, которая говорит мне нравится:

Line X имеет эти станции на ней - A, B, C в указанном порядке линии Y имеет эти станции на нем - B, D, E в этом порядке

Тогда было бы неплохо иметь функцию, которая не требует создания графа как такового вручную, что позволило бы напрямую открывать маршруты с одной станции на другую. Таким образом, можно запросить маршрут от A до E и получить A-B, B-E.

Может ли кто-нибудь дать мне какой-либо намек на то, как начать работу с этим? Это будет высоко ценится.

+0

Является ли ваша карта так же, как в реальном мире один? Или это действительно виртуальная картография? –

+1

это не вопрос для SO, я думаю ... И вот о конкретных проблемах программирования не об общих советах. Это приведет только к разным мнениям о том, что лучше (если вообще):/ –

+0

Вы хотите знать только, какую структуру данных использовать для карты? В этом случае это не относится к iOS, отредактируйте теги. – Felix

ответ

0

Структура данных: вы хотите «график» (или «ориентированный граф», если вы хотите, чтобы некоторые маршруты, которые являются 1-полосная).

Алгоритмы: есть лоты известных алгоритмов для автоматического обнаружения маршрутов и «кратчайших маршрутов» с учетом «графика». Если вы используете Google для «кратчайших алгоритмов маршрута» или «Алгоритмы DAG», вы должны найти много примеров.

Простейшая реализация:

@interface GraphNode : NSObject 

@property NSMutableArray *adjacentNodes; // array of the links to adjacent nodes 

@end 

@interface GraphLink : NSObject 

@property GraphNode *start, *end; // joins a pair of nodes 

@end 

@interface GraphRoute : NSObject 

@property NSMutableArray *links; // array of GraphLink instances, connecting a string of nodes 

@end 
0

Для создания картографической игры вы должны попробовать Zwoptex и систему спрайтов.

Он хранит плитки карты в plist, а затем вы можете импортировать лист спрайта и взаимодействовать с вашими плитками.

Проверьте это здесь: zwoptexapp.com/

Смежные вопросы