алгоритм построение карты

Алгоритмы: от сортировки пузырьком до численных методов

Модераторы: C_O_D_E, DeeJayC

Ответить
maxsim
Сообщения: 2
Зарегистрирован: 11 мар 2010, 22:15

11 мар 2010, 22:38

пишу курсовую создание игры dice
http://www.gamedesign.jp/flash/dice/dice.html
,встала задача ,генирация карты понимаю чето тут с графами ,но как это сгенирировать ,
неважно какой язык просто мне интересен сам алгоритм,ну или интересная литература
спасибо если кто откликниться
Хыиуду
Сообщения: 2388
Зарегистрирован: 06 мар 2005, 21:03
Откуда: Москва
Контактная информация:

12 мар 2010, 09:31

Имеем матрицу нулей.
В случайные места распихиваем числа 1, 2, 3 и т.д - по количеству территорий на карте.
Далее, пробегаем по всей матрице - находим все элементы, рядом с которыми есть хотя бы один ноль (обратите внимание на "рядом" - с прямоугольной картой было бы проще, с гексагональной придется извращаться). Сваливаем в отдельный массив
Далее по циклу: i=1, выбираем все единицы, рядом с которым есть нулевые элементы, на рандом выбираем одну из них, на рандом выбираем свободный ноль рядом с ней, записываем в него единицу. Переходим к следующему i
И так пока вся карта не будет заполнена. Правда, возможны варианты, типа какая-то территория закрыла другой территории пути к развитию. Ну, значит судьба у нее такая.
Искусство программирования - заставить компьютер делать все то, что вам делать лень.
Для "спасибо" есть кнопка "Спасибо" в виде звездочки внизу под ником автора поста.
maxsim
Сообщения: 2
Зарегистрирован: 11 мар 2010, 22:15

16 мар 2010, 17:25

Хыиуду писал(а):Имеем матрицу нулей.
В случайные места распихиваем числа 1, 2, 3 и т.д - по количеству территорий на карте.
Далее, пробегаем по всей матрице - находим все элементы, рядом с которыми есть хотя бы один ноль (обратите внимание на "рядом" - с прямоугольной картой было бы проще, с гексагональной придется извращаться). Сваливаем в отдельный массив
Далее по циклу: i=1, выбираем все единицы, рядом с которым есть нулевые элементы, на рандом выбираем одну из них, на рандом выбираем свободный ноль рядом с ней, записываем в него единицу. Переходим к следующему i
И так пока вся карта не будет заполнена. Правда, возможны варианты, типа какая-то территория закрыла другой территории пути к развитию. Ну, значит судьба у нее такая.

спасибо большое...
Ответить