Yoko

All sides of Injection
It is currently 2025-12-23 23:28:16

All times are UTC+02:00




Post new topic  Reply to topic  [ 4 posts ] 
Author Message
PostPosted: 2005-10-04 13:14:25 
Offline
Junior Expert
User avatar

Joined: 2004-06-24 22:08:56
Posts: 3220
Собсно хочу написать универсальный мининг - разметка пещеры не рулит.

Есть начит массив координат тайлов пещеры, как бы разбить её на квадраты самым оптимальным образом?


Top
   
PostPosted: 2005-10-04 13:32:03 
Offline
Sphere expert
User avatar

Joined: 2004-10-01 08:27:38
Posts: 1143
Location: Уфа
Destruction wrote:
Собсно хочу написать универсальный мининг - разметка пещеры не рулит.

Есть начит массив координат тайлов пещеры, как бы разбить её на квадраты самым оптимальным образом?

Не понял.
А на кой тебе делить то ?
Ты как планируешь копать, с хождением или так по кругу (то бишь по квадрату) ?

_________________
Сделал дело - флуди смело !!!


Top
   
PostPosted: 2005-10-04 16:08:30 
Offline
Junior Expert
User avatar

Joined: 2004-06-24 22:08:56
Posts: 3220
Askaneli wrote:
Destruction wrote:
Собсно хочу написать универсальный мининг - разметка пещеры не рулит.

Есть начит массив координат тайлов пещеры, как бы разбить её на квадраты самым оптимальным образом?

Не понял.
А на кой тебе делить то ?
Ты как планируешь копать, с хождением или так по кругу (то бишь по квадрату) ?

Обкапываем квадрат - дуем к следущему.

Вот, расписал, даже нарисовал :-))
http://forum.woweb.ru/topic17332.html?st=0#entry140183


Top
   
 Post subject:
PostPosted: 2005-10-04 16:23:44 
Offline
Expert!
User avatar

Joined: 2005-04-23 10:19:43
Posts: 388
Все очень просто.
Расписываю алгоритм по пунктам:
1) Делаем функция подсчета количества красных точек на расстояни от выбранной точки.
2) Устанавливаем где-попало в зеленом секторе красную точку.
3) Запускаем от нее рекурсивную функцию:
for все точки на радиусе N
if у текущей точки на расстоянии (N-1) красных точек нет
ставим сюда красную точку
запускаем эту функцию относительно уже этой новой красной точки
endif
endfor

Теперь как будет работать этот скрипт:
1) Точка одна которая взята случайным образом.
2) найдена точка на расстоянии N, вокруг нее только 1 точка (начальная на расстоянии N (а проверка на расстояние N-1) тоесть сюда ставим красную тоже.
Повторяем 2 для новой точки, и так далее пока вдруг не зайдем в тупик. Зайдя в тупик, функция просто переберет все точки, и возвратиться на 1 "уровень" выше, тоесть на предыдущую красную точку. Она дойдет начатый цикл до конца, и возвратиться еще выше. В итоге по полю будут раскиданы красные точки с максимальным расстоянием 3. Решение НЕ САМОЕ ОПТИМАЛЬНОЕ. Но из всех возможных алгоритмов самое простое.


Top
   
Display posts from previous:  Sort by  
Post new topic  Reply to topic  [ 4 posts ] 

All times are UTC+02:00


Who is online

Users browsing this forum: No registered users and 11 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB® Forum Software © phpBB Limited