Здравствуйте, гость ( Вход | Регистрация )
| ALexusB |
Nov 13 2008, 14:32
Сообщение
#1
|
|
Разработчик ВМЛ-КВЛ ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Admin Сообщений: 16,628 Регистрация: 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 Решение ??? Какие есть идеи? Понятно, что вариант наколбасить все ручками рабочий - редактор такой сделать не вопрос, он у мя уже почти готов. Но хочется, чтоб само делало, каждый раз разное |
![]() ![]() |
| ALexusB |
Nov 19 2008, 22:25
Сообщение
#2
|
|
Разработчик ВМЛ-КВЛ ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Admin Сообщений: 16,628 Регистрация: 2-November 04 Пользователь №: 3 |
Дело сдвинулось.
Метод с реперными точками и решеткой осознал, в ехеле ручками програн на нескольких сетках 7х7 и получил в итоге те же квадратики + неясность как роботом делать промежутки, что б не было 2-4 3-5 и 5-7 стыков. Как раз про принципу игры "сапер", как и говорилось Но пока это все делал вывел для себя замену реперам "пирамидками наоборот". Все просто - пирамидки нужны малеькие, разной высоты и не 1-2, а сотни. Тогда на выходе имеем мель произвольной формы, но вписанной в прямоугольник. Это пока не победил. Так же, что реперы, что пирамидки дают равномерное покрытие (1) - в игре вода такая смотрится хорошо, только по балансу лажа - потому продолжаю поиск метода, который сгенерит мель амебообразной формы и рандомный расход глубины от нее. |
| Serginio |
Nov 20 2008, 13:03
Сообщение
#3
|
|
инопланетянец ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: форумчанин Сообщений: 2,018 Регистрация: 7-August 07 Из: Днепропетровск Пользователь №: 11,632 |
Дело сдвинулось. Метод с реперными точками и решеткой осознал, в ехеле ручками програн на нескольких сетках 7х7 и получил в итоге те же квадратики + неясность как роботом делать промежутки, что б не было 2-4 3-5 и 5-7 стыков. Как раз про принципу игры "сапер", как и говорилось Чтоб не было таких стыков, генерирование цифр должно происходить линейно (например от определённой оси влево и вправо, одновременно для всех рядов поля). От другой оси генерирование идёт навстречу. Принцип один - одинаковых цифр в ряду должно быть не меньше 2 и не более 10 (чтоб склоны не были очень крутыми или очень пологими). При стыковке полей (когда заполнены уже все ячейки) идёт корректировка (проверка) в обратном направлении и изменение цифр только в сторону понижения их значения (уже без ограничени количества одинаковых цифр в ряду). Пример: 33445!55444 22334!66555 33445!66655 44566!76655 В данном примере 2 ошибки, корректировка простая: ВУо второй строке при проверке от оси ! вправо, на значение 6 будет влиять значение 4, которая слева от оси. 6 под этим влиянием изменится на 5. Следующая 6, такдже на 5. В четвёртой строке 6 изменится на 5 под влиянием верхней четвёрки... Бред, конечно... Но для модели, которая будет состоять из одной кривой плоскости (как простынь, разостланная на траве), больше ничего в голову не лезет. Цитата Но пока это все делал вывел для себя замену реперам "пирамидками наоборот". Все просто - пирамидки нужны малеькие, разной высоты и не 1-2, а сотни. Тогда на выходе имеем мель произвольной формы, но вписанной в прямоугольник. Это пока не победил. Так же, что реперы, что пирамидки дают равномерное покрытие (1) - в игре вода такая смотрится хорошо, только по балансу лажа - потому продолжаю поиск метода, который сгенерит мель амебообразной формы и рандомный расход глубины от нее. Хотел спросить. А как программа рассматривает, собственно "мель"? Как единую плоскость с координатами точек по трём осям? Или как набор плоскостей, каждая из которых имеет свой уровень (глубину)? Или там математикой (тригонометрией) и не пахнет, - а просто генерация объёмных объектов (пирамидок к примеру) в определённой последовательности (или по определённым принципам)? Дело в том, что на Ваших примерах прямоугольных мелей явно просматривается "слоистая" их структура. Я подумал, и пока не вижу особых препятствий для того, чтоб генерировать овальные (пока в форме правильных эллипсов) слои с чётким алгоритмом. Т.е. мель будет выглядеть точно, как у Вас, только не из прямоугольников, а из эллипсов. Стыковку их можно придумать (при соблюдении некоторого условия, вообще проблем нет). Только для этого нужно, чтоб дно (плоскость со значением 7) программой рассматривалось, как плоскость координат. Если это возможно, то готов завтра к вечеру математически описАть алгоритм построения. |
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 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![]() ![]() |
| Текстовая версия | Сейчас: 30th October 2025 - 07:54 |