Модераторы: gambit, Partizan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Проблема в алгоритме с гридом, попытка заставить грид отработать 
:(
    Опции темы
Сарт
Дата 21.9.2007, 12:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 159
Регистрация: 29.4.2006

Репутация: нет
Всего: 0



в гриде храняться 0 и 1. (1 закрашенный пиксель, 0 -пустой)
примерно такого вида(пользователь сам выбирает куда ставить 1)

0 0 0 0 0 0 0 0 0 0 0 
0 0 0 0 1 1 1 1 0 0 0
0 0 0 0 1 1 1 1 0 0 0 
0 0 0 0 1 1 1 1 0 0 0
0 0 0 0 0 0 0 0 0 0 0  


нужно получить такого вида


-4   -3   -2   -1   -1   -1   -1   -1   -1   -2    -3 
-4   -3   -2   -1    1    1     1     1   -1   -2   -3
-4   -3   -2   -1    1    2     2      1    -1   -2  -3 
-4   -3    -2  -1    1    1     1      1    -1   -2 -3
-4   -3    -2  -1   -1   -1    -1    -1    -1   -2 -3


т.е. по контуру 1 ставяться -1, по контуру -1 ставяться -2 и т.д. если ячейка граничит только с 1 то ее значение =2, если тока с 2-ками =3  и т.д.


пытался сделать так

Код

 /* for (int x = 0; x < 11; x++)
            {
                for (int y = 0; y < 32; y++)
                {
                    if (gridNach[x, y] == 1)
                    {
                        for (int k = -1; k <= 1; k++)
                        {
                            for (int m = -1; m <= 1; m++)
                            {
                                if (k == 0 && m == 0)
                                {
                                }
                                else
                                {

                                    try
                                    {
                                        if (Convert.ToDouble(GridMono[y + m, x + k].Value) == 0)
                                        {
                                            GridMono.Rows[x + k].Cells[y + m].Value = Convert.ToDouble(GridMono[y + m, x + k].Value) - 1;
                                        }
                                        if ((Convert.ToDouble(GridMono[y + m, x + k].Value) > 0) && (Convert.ToDouble(GridMono[y + m, x + k].Value) != 1))
                                        {
                                            GridMono.Rows[x + k].Cells[y + m].Value = Convert.ToDouble(GridMono[y + m, x + k].Value) + 1;
                                        }
                                    }
                                    catch { }
                                }
                            }
                        }

                    }
                }



            }
            for (int x = 0; x < 11; x++)
            {
                for (int y = 0; y < 32; y++)
                {
                    if (Convert.ToInt32(GridMono[y, x].Value) > 0)
                    {
                        for (int k = -1; k <= 1; k++)
                        {
                            for (int m = -1; m <= 1; m++)
                            {
                                if (k == 0 && m == 0)
                                {
                                }
                                else
                                { 
                                    try
                                    {  
                                        if(GridMono[y,x].Value==GridMono[y+k,y+m].Value)
                                        {
                                            GridMono[y, x].Value = Convert.ToInt32(GridMono[y, x].Value) + 1;
                                        }
                                    }
                                    catch { }
                                }
                            }
                        }
                    }
                }
            }*/

 

прекрасно работает только для 1, окруженной нулями.....может кто пожскажет как делать. а?
 
--------------------
[color=purple][/color]Died.Of course, System.StackOverflow 
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Разработка Windows Forms | Следующая тема »


 




[ Время генерации скрипта: 0.0550 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.