![]() |
Найти 3x3 и 4х4 соседей в массиве
Добрый вечер.
Подскажите как сделать поиск по квадрату 2d массиву 4x4 соседей делаю в игре механизм бомбы + ударная волна. В игре у меня 2 типа волны круговая это 3х3 и а 4х4 клетки это двойная волна от точки бомбы Пример 4х4 волны... Код:
0 0 0 Код AS3:
Буду рад вашей помощи, заранее спасибо! |
у каждой клетки должен быть свой уникальный ID что логично. Далее создаете карту волны, массив одномерный
[1 , 0 , 0 , 0 , 1 0 0 0 0 0 ... И т.д. Далее пишем алгоритм расчета волны от ID клетки. Все. То что у вас написано это конечно ерунда, делается это не то, чтобы короче, просто нужен алгоритм и реализация, а не просто набросок-превью |
У меня была похожая зачада только с другим типом поля. Формулируется так:
Написать функцию, которая принимала бы размеры поля, координаты одной ячейки, два радиуса (внутренний и внешний), ссылку на массив ячеек и подсвечивала бы все ячейки находящиеся на заданном расстоянии от заданной ячейки. При этом, если внутренний радиус больше нуля, то ячейки, находящиеся в этом радиусе от заданной, не должны подсвечиваться. Функция также принимает дополнительный булевый параметр, который указывает на то, следует ли подсветить центральную ячейку. Сигнатура: void glowRadius(Cell ** cells, int width, int height, int centerX, int centerY, int r1, int r2, bool glowCenter); r1 - внутренний радиус, r2 - внешний радиус. Подсветить ячейку можно, скажем, так: cells[y][x].glow(); В случае некорректных входных данных функция просто завершает работу. Внутренний радиус должен быть строго меньше внешнего. На первом рисунку - собственно поле, на втором рисунке приведен результат следующих двух вызовов функции: glowRadius(cells, 8, 8, 2, 3, 1, 2, true); glowRadius(cells, 8, 8, 7, 6, 0, 2, false); На третьем рисунке представлен результат вызова функции glowRadius(cells, 8, 8, 2, 3, 2, 3, true); Рис. 1 http://cs407023.vk.me/v407023573/ee2/A-JKaXVgaKw.jpg Рис. 2 http://cs407023.vk.me/v407023573/eef/yWCTPeXef-s.jpg Рис. 3 http://cs407023.vk.me/v407023573/ef8/i5VsUNxBQBI.jpg А вот и сама функция, полагаю, это вам поможет. Код AS3:
|
Что-нибудь такое?
Код AS3:
|
bav я ваш пример обязательно использую прикольно получается как только под него эффект придумаю.
Пока остановился на варианте Rzer Спасибо всем |
| Часовой пояс GMT +4, время: 14:03. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.