Seaward.ru

Здравствуйте, гость ( Вход | Регистрация )

> Математическая генерация дна моря (глубины), Задача на мат.логику и/или программиование (не Стром-2.х)
ALexusB
сообщение Nov 13 2008, 14:32
Сообщение #1


Разработчик ВМЛ-КВЛ
*******

Seaward TeamЖелезный Профессор
Группа: Admin
Сообщений: 16,309
Регистрация: 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

Решение

???

Какие есть идеи?

Понятно, что вариант наколбасить все ручками рабочий - редактор такой сделать не вопрос, он у мя уже почти готов.
Но хочется, чтоб само делало, каждый раз разное
User is online!Profile CardPM
Go to the top of the page
+Quote Post
 
Reply to this topicStart new topic
Ответов
Belphegor
сообщение Nov 14 2008, 17:40
Сообщение #2


ou Le Fantome du Louvre
*******

Заслуженный Корсар
Группа: форумчанин
Сообщений: 1,232
Регистрация: 4-September 07
Пользователь №: 11,932



Цитата
А остаток заполняется по тому же условию 1 От оси вправо, например. И это будут не клетки на кругах, а клетки в рядах (математика, по крайней мере, так их будет трактовать).

Нифига не понимаю. huh.gif Главное, чтоб Алексус понял. 1.gif

3 _ 2 _ 3
_ 2 1 2 _
2 2 1 1 2
_ 2 2 2 _
2 _ 3 _ 2


Ну вот берем

и заполняем верхний ряд по правилу: пустая клетка равна или меньше на единицу клетки слева от нее

3 3 2 1 3 2
_ 2 1 2 _
2 2 1 1 2
_ 2 2 2 _
2 _ 3 _ 2


Получается так. К примеру. А это две ошибки.
Или я все-таки неправильно тебя понял? Не бейте сильно, если что...
Цитата

Кроме того, ты рассматриваешь мель, как неправильный эллипс внутри поля (пусть 64*64) с замкнутой кривой периметра.

Ну так, вроде так и спрашивалось... huh.gif
Цитата
Снизу - сложнее. Во-первых нужно задать критический периметр из множества точек. Во-вторых количество этих рандомных точек должно быть достаточно большим с определёнными взаимовлияющими значениями. Это трудоёмко для случайной генерации.

Ну квадратную систему я предложил. Периметр получается рандомный. 1.gif
Вот только квадратность. dry.gif
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
Serginio
сообщение Nov 14 2008, 18:44
Сообщение #3


инопланетянец
*******

Заслуженный КорсарСоздатель Модов к ГПК
Группа: форумчанин
Сообщений: 2,018
Регистрация: 7-August 07
Из: Днепропетровск
Пользователь №: 11,632



Цитата(Belphegor @ Nov 14 2008, 18:40) *

Нифига не понимаю. huh.gif Главное, чтоб Алексус понял. 1.gif

и заполняем верхний ряд по правилу: пустая клетка равна или меньше на единицу клетки слева от нее

3 3 2 1 3 2
_ 2 1 2 _
2 2 1 1 2
_ 2 2 2 _
2 _ 3 _ 2
Получается так. К примеру. А это две ошибки.
Или я все-таки неправильно тебя понял? Не бейте сильно, если что...

Уважаемые Belphegor и ALexusB. Простите, я оговорился, wallbash.gif условие 1 должно звучать так: каждое следующее соседнее значение точки должно быть равным или на единицу большим. 3.gif
Не случайно в твоём втором примере справа от центральной верхней двойки появилась 1. Значение должно быть или 2 или 3 другого быть не может... Тогда всё работает. Просто понижение уровня грунта в мели я подменил формулировкой "понижение значения цмфры", это логический казус, приведший к неправильному написанию (прочтению) условия.
Ещё раз извините...
Короче, вокруг точки со значением 1 могут находиться точки со значениями 1 или 2. Вокруг точки со значением 2 могут находиться точки со значениями 1,2 или 3. вокруг точки со значением 3 могут находиться точки со значениями 2,3 или 4 и т.д. Частично такая схема используется в игре "Сапёр"...
Если использовать такое условие в чистом виде, то мель будет формироваться вокруг пика и иметь хаотично-бугристый вид. Вид бессистемно разбросанных по болоту кочек, и на всей площади поля может не быть ни одного значения 7... Кстати, при соблюдении условия 1, такое тоже возможно unsure.gif Но это не сложно поправить...
User is offlineProfile CardPM
Go to the top of the page
+Quote Post

Сообщений в этой теме
ALexusB   Математическая генерация дна моря (глубины)   Nov 13 2008, 14:32
os_   Если я правильно понял, то координаты точек по пер...   Nov 13 2008, 20:35
Belphegor   Попробовал смоделировать в эксельке. Не до 7, до 5...   Nov 13 2008, 21:55
ALexusB   2Belphegor Спасибо! Похоже, что нужно - дейст...   Nov 13 2008, 22:40
Destynar   Можно попробовать сделать аналог топографической к...   Nov 13 2008, 22:45
ALexusB   2Destynar Это и нужно - другое дело алгоритм всего...   Nov 13 2008, 23:07
Destynar   Ну например: Есть клетка матрицы (100x100), с коор...   Nov 13 2008, 23:30
Belphegor   А как? там же во втором круге уже 16 точек, потом...   Nov 13 2008, 23:43
Destynar   g (глубина) - тут выбирается на повышение идет гру...   Nov 13 2008, 23:54
ALexusB   Поправка - в идеале это должно генерится за разумн...   Nov 14 2008, 00:07
Belphegor   А нельзя сетку использовать не квадратную, а шести...   Nov 14 2008, 00:40
ALexusB   Теоретически можно, но не в моем случае Упраылять...   Nov 14 2008, 09:45
Serginio   Искомый (генерируемый) объект имеет критическую кр...   Nov 14 2008, 15:21
Belphegor   Ну погоди, по 8 направлениям... А промежуточные кл...   Nov 14 2008, 15:42
Serginio   Ну погоди, по 8 направлениям... А промежуточные к...   Nov 14 2008, 16:18
Belphegor   Нифига не понимаю. :huh: Главное, чтоб Алексус ...   Nov 14 2008, 17:40
Serginio   Нифига не понимаю. :huh: Главное, чтоб Алексус ...   Nov 14 2008, 18:44
Belphegor   Это я ступил. Сперва понял правильно (прибавлял), ...   Nov 14 2008, 19:02
Serginio   2 3 2 _ [i]вокруг точки со значением 3 могут нахо...   Nov 14 2008, 19:35
ALexusB   Я тоже не догнал Точнее, подход от высоты (1) в ...   Nov 14 2008, 19:28
Belphegor   Сделал копию своей модели в Фотошопе. Все еще квад...   Nov 14 2008, 20:41
ALexusB   Сделал квадратами от 7 к 1 http://online.seaward.r...   Nov 14 2008, 22:12
Tymofei   Пирамиды получаются, потому что весь расчет работа...   Nov 15 2008, 00:30
ALexusB   Не годится :( нужны фарватеры - это же все для ко...   Nov 15 2008, 02:01
ALexusB   Начал понимать подход с реперными точками - да, мо...   Nov 15 2008, 12:36
ALexusB   Дело сдвинулось. Метод с реперными точками и решет...   Nov 19 2008, 22:25
Serginio   Дело сдвинулось. Метод с реперными точками и реше...   Nov 20 2008, 13:03
ALexusB   Все верно- плоскость и есть. матрица двумерная. Зн...   Nov 20 2008, 13:27
Serginio   ... Значение и есть глубина. ...Если отойти от м...   Nov 20 2008, 13:41
os_   2 варианта генерации поверхности дна.   Dec 11 2008, 15:37
Serginio   2 варианта генерации поверхности дна. Конкретная...   Dec 11 2008, 18:03
ALexusB   Наглядно, спасибо. А если от середины плясать а н...   Dec 11 2008, 17:16
os_   Можно и от середины плясать. Но для меня не совсем...   Dec 11 2008, 19:55
ALexusB   PHP - это http://ru.wikipedia.org/wiki/Php язык п...   Dec 11 2008, 20:15
os_   ИМХО оптимальный вариант: Создать несколько базовы...   Dec 15 2008, 14:48
m-traxx   ИМХО оптимальный вариант: Надо ещё учесть, что ос...   Dec 15 2008, 16:35
Scatimon   ИМХО оптимальный вариант: Ну и будут опять одни ...   Dec 16 2008, 09:27
os_   Спрайты могут применяться для оптимизации графичес...   Dec 16 2008, 15:29
Serginio   Спрайты могут применяться для оптимизации графиче...   Dec 16 2008, 17:57
ALexusB   Оно (дно) и сейчас в моей двиге не плохо смотрится...   Dec 21 2008, 16:42
TAHAT   Человек на твоей задаче магистерскую работу защити...   Dec 21 2008, 22:41
ALexusB   Спасибо за статью!!! накидаю несколько...   Dec 22 2008, 16:22
ALexusB   Получилось http://dev.seaward.ru/File/MapEdit_1.sw...   Dec 22 2008, 22:44
N.tony   Если я не сильно поздно, я бы тоже предложил :) Е...   Jun 6 2009, 13:41
Tymofei   Если я не сильно поздно, я бы тоже предложил :)Мул...   Jun 6 2009, 14:02
N.tony   Мулька в том, чтобы визуально отображались матема...   Jun 6 2009, 14:11
ALexusB   Сохранать нагенеренное == рисовать руками (с испол...   Jun 6 2009, 21:36
N.tony   Сохранать нагенеренное == рисовать руками (с испо...   Jun 6 2009, 23:08
N.tony   Как я и предполагал, если коэффициенты смещения по...   Jun 9 2009, 00:40
ALexusB   Результат впечатляет, особенно анимированное масшт...   Jul 4 2009, 19:12
Serginio   Мелей в сумме должна быть не более 20% карты и дол...   Jul 4 2009, 20:08
N.tony   Мелей в сумме должна быть не более 20% карты и до...   Jul 4 2009, 23:00
Serginio   Если под мелями тут имеется в виду любая точка с в...   Jul 4 2009, 23:22
ALexusB   Тоже делал, делал по 20-30 высот и обрезал по 7, т...   Jul 4 2009, 21:31
Serginio   Тоже делал, делал по 20-30 высот и обрезал по 7, т...   Jul 4 2009, 21:47
ALexusB   Анимация воды на флаше. Линки давал когда-то, раз ...   Jan 2 2011, 23:21


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



Текстовая версия Сейчас: 27th May 2024 - 00:29

Блок рекламы
Яндекс цитирования Rambler's Top100
Rambler's Top100