![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
Регистрация: Aug 2012
Сообщений: 297
|
Здравствуйте.
![]() Такой алгоритм на данный момент. Есть поле с девятью объектами. Все они стоят по три в три ряда. Как можно сделать так, чтобы когда я нажимал на объект, который находится по середине, выводилось значение (название или номера) тех объектов, которые находятся вокруг этого объекта? Я попробовал реализовать такую идею: проверять координаты вокруг объекта (x + ширина и высота объекта). Получилось, но не полностью: в некоторых местах (если уже используется не 9 объектов, а около ста) прибавляются те объекты, которые уж очень далеко от объекта (то есть вокруг объекта A 8 объектов, но условие считает, что и объекты, которые уже и выше этой восьмёрки, тоже находятся в "области" объекта). |
|
|||||
|
Регистрация: Aug 2012
Сообщений: 297
|
Реализация такова. Можете подтолкнуть меня, куда нужно нужно двигаться?
|
|
|||||
|
Что для Вас значит "вокруг"? Пересекают объект? Центры объектов ближе определённого расстояния? Зазор между объектами меньше заданного?
Или характеристика "вокруг" появляется только когда объектов больше 2-х и характеризует не положение объекта относительно другого, а характеризует конфигурацию группы объектов? |
|
|||||
|
Регистрация: Aug 2012
Сообщений: 297
|
Цитата:
|
|
|||||
|
Регистрация: Jul 2008
Сообщений: 912
|
Поищите как реализуется игра под названием "жизнь" это вот такая штука http://www.youtube.com/watch?v=Bt5MO9Tp2d8, она на данном алгоритме построена, я однажды писал, но код найти не могу и не помню как это делал, давно это было. Но в нете есть полюбому.
|
|
|||||
|
Регистрация: May 2012
Сообщений: 38
|
Как я понял, объекты находятся в сетке некоторой размерностью X*Y элементов, в данном случае 3*3. Следовательно, он имеет координату в этой сетке P(col,row).
Соседями считаются : P1(col-1,row) -левый, P2(col+1,row) - правый, P3(col,row-1) -верхний, P4(col,row+1)-нижний.....ну и диагональные соседи аналогично. Достаточно проверить, входит ли "сосед" в пределы сетки, т.е. координаты "соседа" P2(col2,row2) удовлетворяют условиям: 1) X>=col2>0, 2) Y>=row2>0 |
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
Цитата:
|
|
|||||
|
Регистрация: Aug 2012
Сообщений: 297
|
Цитата:
0 1 0 0 0 0 Если я не буду прибавлять или отнимать "ширину" и "высоту" квадрата, то он будет проверять только один квадрат (1). |
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
Нет, вы не поняли вопроса. Зачем в исходном коде вы повторяете доступ к i-ому элементу массива целых 8 раз?
|
![]() |
![]() |
Часовой пояс GMT +4, время: 22:21. |
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | |
| Опции просмотра | |
|
|