|
#1
|
||||
|
||||
panel
всем доброго времени суток...
у меня такой вопрос (на форме имеется много объектов типа :TPanel, стоящие рядом друг с другом как в крестиках ноликах (штук 30 допустим), и всем присвоено своество Color одим из 3-х случайных цветов... например (clRed, clBlue, clGreen) как можно узнать есть ли на форме 3 или более панели стоящие рядом друг с другом (не по диогонали) одного цвета? любые варианты (буквой Г, по горизонтали, по вертикали) ну главное что бы они были стояли друг с другом вплотную как можно осуществить такую проверку? (есть ли такие панели, и если есть то покрасить в допустим цвет clGrey) дайти хоть наводку ... сам я вообще незнаю даже с чего начать и чем вообще пользоваться... я так думаю записать всё в многомерный массив (каждый цет например имеет свой id) например: clBlue = 1, clRed = 2, clGreen = 3... поле допустим размером 15x7... тоесть массив будет выглядить так... 132221233213122 322122122121211 311321331213322 223212213212211 112331123121133 321123312232321 213312213313213 красным отмечено то что нужно отследить... а как незнаю Последний раз редактировалось eXplorer, 26.03.2011 в 09:21. |
#2
|
||||
|
||||
помогите хоть чем-нибудь, люди добрые...
|
#3
|
|||
|
|||
Использовать панели для данной задачи глупо, лучше взять один TPaintBox и вручную отрисовывать содержимое массива, это поможет избежать сотню проблем и приблизит к нормальному коду.
Ниже написал код, который используя рекурсию, ищет на поле все возможные соединения рядом стоящих элементов. Думаю код прозрачный, все должно быть ясно, вариантов решения данной задачи, можно написать много, я по крайней мере о трех думал, но выбрал именно этот. Последний раз редактировалось Asinkrit, 02.04.2011 в 20:23. |
#4
|
||||
|
||||
спасибо большое попробую
|
#5
|
|||
|
|||
Цитата:
|