Математическая генерация дна моря (глубины), Задача на мат.логику и/или программиование (не Стром-2.х) |
Здравствуйте, гость ( Вход | Регистрация )
Математическая генерация дна моря (глубины), Задача на мат.логику и/или программиование (не Стром-2.х) |
ALexusB |
Nov 13 2008, 14:32
Сообщение
#1
|
Разработчик ВМЛ-КВЛ Группа: Admin Сообщений: 16,347 Регистрация: 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 Решение ??? Какие есть идеи? Понятно, что вариант наколбасить все ручками рабочий - редактор такой сделать не вопрос, он у мя уже почти готов. Но хочется, чтоб само делало, каждый раз разное |
os_ |
Nov 13 2008, 20:35
Сообщение
#2
|
юнга Группа: форумчанин Сообщений: 32 Регистрация: 2-November 07 Из: г.Пушкино МО Пользователь №: 12,434 |
Если я правильно понял, то координаты точек по периметру «амебы» известны (заданы), тогда предлагаемый расчет выполняется для каждой точки координаты слева направо сверху вниз по каждому ряду матрицы (как сканер). Рандом +1 или -1 к предыдущей точке ряда. Если =7, то только -1. Необходимо учитывать кол-во координатных точек в каждом ряду, т.е. если до конца ряда осталось 7 точек и глубина=7, то каждая следующая до конца точка – минус 1. (чтобы выйти обратно на =1). Наверное так.
|
Текстовая версия | Сейчас: 23rd June 2024 - 23:48 |