Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Как можно проверить ячейки вокруг новой ячейки? (http://www.flasher.ru/forum/showthread.php?t=206491)

Dip52 07.02.2014 00:31

Как можно проверить ячейки вокруг новой ячейки?
 
Здравствуйте.

Имеется поле, где добавлено определённое количество ячеек A по высоте и ширине.
На это поле я добавляю новые ячейки B. Они добавляются в самые разные стороны НО от предыдущей ячейки (то есть, они связаны с предыдущей ячейкой 100%).
Как можно сделать так, чтобы происходила проверка на занятость ячеек вокруг новой ячейки, чтобы избавиться от эффекта нагромождения ячеек друг на друга?

Akopalipsis 07.02.2014 00:33

Вот и настало оно:D Это нужно алгоритм поиска путей, но какой, это Вы и я будем ждать ответа уже ГУРУ.

Dip52 07.02.2014 00:42

Вложений: 1
Вложение 30462

Красным обведены ячейки, которые нагромождены друг на друга.
Синим обведены ячейки, которые НЕ нагромождены друг на друга.

Вы меня правильно поняли?

GBee 07.02.2014 00:49

Я почти понял, что правильные ячейки имеют меньше трех соседей, но 45 и 44 меня запутали. Да и 70 и 69 тоже.

Dip52 07.02.2014 00:53

Да, я ошибся. 33, 42, 43, 63 до 67 и 72 это правильные.

Wolsh 07.02.2014 01:38

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

Dip52 07.02.2014 02:01

Глобальная проблема, так это в том, что ячейки могут добавиться так, что вокруг будет уже занято, как квадрат.

Думаю, что для решения этой проблемы, потребуется знание количества добавляемых ячеек, которые и создают "случайную дорогу", потом какое-нибудь ограничение, например, 10, если есть свободных 10 ячеек, то добавляем в случайную сторону продолжение дороги, а если с какой-то стороны не будет, то в определённую сторону.

alexcon314 07.02.2014 02:09

Так а цель то конечая какова? Почему так страшны нагромождения?

Dip52 07.02.2014 02:17

Я хочу сделать так, чтобы создавалась дорога, а нагромождения будут создавать, как бы, "обходные пути".

Wolsh 07.02.2014 02:19

Цитата:

Глобальная проблема, так это в том, что ячейки могут добавиться так, что вокруг будет уже занято, как квадрат.
Я же описал алгоритм, как этого избежать.


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

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.