![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() |
ALexusB |
![]()
Сообщение
#1
|
Разработчик ВМЛ-КВЛ ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Admin Сообщений: 16,554 Регистрация: 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 |
![]()
Сообщение
#2
|
ou Le Fantome du Louvre ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: форумчанин Сообщений: 1,232 Регистрация: 4-September 07 Пользователь №: 11,932 ![]() |
Цитата А остаток заполняется по тому же условию 1 От оси вправо, например. И это будут не клетки на кругах, а клетки в рядах (математика, по крайней мере, так их будет трактовать). Нифига не понимаю. ![]() ![]() 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) с замкнутой кривой периметра. Ну так, вроде так и спрашивалось... ![]() Цитата Снизу - сложнее. Во-первых нужно задать критический периметр из множества точек. Во-вторых количество этих рандомных точек должно быть достаточно большим с определёнными взаимовлияющими значениями. Это трудоёмко для случайной генерации. Ну квадратную систему я предложил. Периметр получается рандомный. ![]() Вот только квадратность. ![]() |
Serginio |
![]()
Сообщение
#3
|
инопланетянец ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: форумчанин Сообщений: 2,018 Регистрация: 7-August 07 Из: Днепропетровск Пользователь №: 11,632 ![]() |
Нифига не понимаю. ![]() ![]() и заполняем верхний ряд по правилу: пустая клетка равна или меньше на единицу клетки слева от нее 3 3 2 1 3 2 _ 2 1 2 _ 2 2 1 1 2 _ 2 2 2 _ 2 _ 3 _ 2 Получается так. К примеру. А это две ошибки. Или я все-таки неправильно тебя понял? Не бейте сильно, если что... Уважаемые Belphegor и ALexusB. Простите, я оговорился, ![]() ![]() Не случайно в твоём втором примере справа от центральной верхней двойки появилась 1. Значение должно быть или 2 или 3 другого быть не может... Тогда всё работает. Просто понижение уровня грунта в мели я подменил формулировкой "понижение значения цмфры", это логический казус, приведший к неправильному написанию (прочтению) условия. Ещё раз извините... Короче, вокруг точки со значением 1 могут находиться точки со значениями 1 или 2. Вокруг точки со значением 2 могут находиться точки со значениями 1,2 или 3. вокруг точки со значением 3 могут находиться точки со значениями 2,3 или 4 и т.д. Частично такая схема используется в игре "Сапёр"... Если использовать такое условие в чистом виде, то мель будет формироваться вокруг пика и иметь хаотично-бугристый вид. Вид бессистемно разбросанных по болоту кочек, и на всей площади поля может не быть ни одного значения 7... Кстати, при соблюдении условия 1, такое тоже возможно ![]() |
![]() ![]() |
Текстовая версия | Сейчас: 30th April 2025 - 02:08 |