Математическая генерация дна моря (глубины), Задача на мат.логику и/или программиование (не Стром-2.х) |
Здравствуйте, гость ( Вход | Регистрация )
Математическая генерация дна моря (глубины), Задача на мат.логику и/или программиование (не Стром-2.х) |
ALexusB |
Nov 13 2008, 14:32
Сообщение
#41
|
Разработчик ВМЛ-КВЛ Группа: Admin Сообщений: 16,318 Регистрация: 2-November 04 Пользователь №: 3 |
Народ, нужна помощь в одной интересной задаче для нужд игры про "кораблики" не на стром-2.х
Уперся в генерацию (роботом) дна (мелей) Дано: Есть матрица, например, 64х64 или 100х100, не важно, хоть 100х60 клеток. Значение клеток - это глубина в метрах. Для простоты считаем до 7 метров, далее для корабля не важно - "нет дна". То есть 1 2 3 4 5 6 7 видов значений. переходы глубин плавные, то есть 1-2 2-3 и тп, 1-7 или 1-3 быть не может. Рандомно задаются: - место мели в матрице - размер и форма мели - ширина полоски перехода на каждую глубину (то есть ширина 1-2, 2-3... можно одну на всех - это частный случай) - число мелей (они могут быть в нескольких местах или накладываться, тогда переходы будут 1-2-3-4-3-2-1 или 1-2-1, зависимо от расстояния) Требуется Алгоритм генерации мелей амебообразной формы (из значений 1) с плавным переходом в 7 Решение ??? Какие есть идеи? Понятно, что вариант наколбасить все ручками рабочий - редактор такой сделать не вопрос, он у мя уже почти готов. Но хочется, чтоб само делало, каждый раз разное |
Belphegor |
Nov 14 2008, 15:42
Сообщение
#42
|
ou Le Fantome du Louvre Группа: форумчанин Сообщений: 1,232 Регистрация: 4-September 07 Пользователь №: 11,932 |
Ну погоди, по 8 направлениям... А промежуточные клетки на кругах, больших второго?
3 _ 2 _ 3 _ 2 1 2 _ 2 2 1 1 2 _ 2 2 2 _ 2 _ 3 _ 2 вот так будет после второго заполнения, если я правильно понял. А как заполнить остаток? Я все-таки думаю, что "сверху" заполнять слишком много условий нужно. Нужно "снизу" - с подножия пирамидки. |
Serginio |
Nov 14 2008, 16:18
Сообщение
#43
|
инопланетянец Группа: форумчанин Сообщений: 2,018 Регистрация: 7-August 07 Из: Днепропетровск Пользователь №: 11,632 |
Ну погоди, по 8 направлениям... А промежуточные клетки на кругах, больших второго? ...А как заполнить остаток? Я все-таки думаю, что "сверху" заполнять слишком много условий нужно. Нужно "снизу" - с подножия пирамидки. Снизу - сложнее. Во-первых нужно задать критический периметр из множества точек. Во-вторых количество этих рандомных точек должно быть достаточно большим с определёнными взаимовлияющими значениями. Это трудоёмко для случайной генерации. А остаток заполняется по тому же условию 1 От оси вправо, например. И это будут не клетки на кругах, а клетки в рядах (математика, по крайней мере, так их будет трактовать). Кроме того, ты рассматриваешь мель, как неправильный эллипс внутри поля (пусть 64*64) с замкнутой кривой периметра. Тогда мы будем иметь только песчаные банки. А если использовать случайный выбор координат пика, то вероятна возможность его размещения слишком близко к краю такого поля, тогда мы будем иметь мель с одним склоном пологим, а другим обрывающимся, условно назовём таку мель риф. Такие образования в геологии отнюдь не редки и называются "сброс" или "взброс" в зависимости от морфологии образования (поверь горному инженеру). А если не нравится риф, то задаём условие генерации координат пика - не ближе 7-10 пунктов от края поля... |
Текстовая версия | Сейчас: 3rd June 2024 - 04:25 |