Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   forum.boolean.name > Программирование в широком смысле слова > Алгоритмика

Алгоритмика Об алгоритмах вообще; методы, обсуждения способов решения

Ответ
 
Опции темы
Старый 11.05.2012, 21:49   #1
den
Дэвелопер
 
Аватар для den
 
Регистрация: 13.02.2010
Сообщений: 1,645
Написано 620 полезных сообщений
(для 2,419 пользователей)
Сообщение Генератор островов

Придумал сегодня очень простой алгоритм генерации островов для своей будущей игры
Может кому нибудь и пригодиться
JavaScript демка (обновляем страничку для генерации)

А теперь для заинтересовавшихся рассказываю суть:
0) Имеется карта. Заполняем её водой.
1) В точке (x0, y0), радиусом r рисуем круг суши.
2) Задаем рандомное число n (у меня оно лежит в пределах [5 ; 10])
3) Теперь повторяем n раз следующее действие: рисуем круг суши, в рандомных координатах, где x принадлежит [x0-r ; x0+r], а y соответственно [y0-r ; y0+r]. И рандомным радиусом, в пределах [0.2r ; 0.5r].
4-5) Делаем тоже самое, что и в пунктах 2-3, но заполняем круги водой.

Пол дела сделано. Осталось сгладить карту. Я делал так:

6) Перебирал все квадраты 2*2 ячеек, усреднял значение высот, и задавал каждой ячейке этого квадрата, это усредненное значение. Если не ошибаюсь, данный метод называется сглаживание по квадрату.



ps:Да я знаю что есть много других, более реалистичных алгоритмов.

Последний раз редактировалось den, 13.05.2012 в 15:28.
(Offline)
 
Ответить с цитированием
Эти 4 пользователя(ей) сказали Спасибо den за это полезное сообщение:
FireOwl (12.05.2012), Hulk-DS (13.05.2012), moka (13.05.2012), YellowAfterlife (14.05.2012)
Старый 13.05.2012, 15:29   #2
den
Дэвелопер
 
Аватар для den
 
Регистрация: 13.02.2010
Сообщений: 1,645
Написано 620 полезных сообщений
(для 2,419 пользователей)
Ответ: Генератор островов

Обновил демку. Теперь на берегах песок.
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
YellowAfterlife (14.05.2012)
Старый 13.05.2012, 22:36   #3
moka
.
 
Регистрация: 05.08.2006
Сообщений: 10,429
Написано 3,454 полезных сообщений
(для 6,863 пользователей)
Ответ: Генератор островов

Тоже юзал canvas для генерации текстурок, очень удобно однако
(Offline)
 
Ответить с цитированием
Старый 14.05.2012, 11:14   #4
YellowAfterlife
ПроЭктировщик
 
Аватар для YellowAfterlife
 
Регистрация: 19.02.2011
Сообщений: 134
Написано 81 полезных сообщений
(для 219 пользователей)
Ответ: Генератор островов

Занимательная штука, должен сказать.
Напомнило о подобном алгоритме который я начал реализовывать во время написания CloudNexus, но не успел из-за временных рамок конкурса.

Попробывал уменьшить размер карты, островки выглядят весьма прилично (в плане распределения) для 32х32:

Код "форка", с бонусным форматированием и комментариями: http://pastebin.com/F40GiwzN

Возможно позже сделаю фрагмент упомянутой игры на JS, чтобы по островкам можно было побегать на ПК и мобильных устройствах.
__________________

Мой сайт-блог. Игры, обновления, примеры для Haxe, JavaScript(+HTML5), GameMaker, Love2d...
(Offline)
 
Ответить с цитированием
Эти 2 пользователя(ей) сказали Спасибо YellowAfterlife за это полезное сообщение:
den (14.05.2012), Igor (14.05.2012)
Ответ


Опции темы

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


Часовой пояс GMT +4, время: 07:29.


vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com