Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Программирование и базы данных (http://forum.oszone.net/forumdisplay.php?f=21)
-   -   Цикл?( (http://forum.oszone.net/showthread.php?t=248587)

SAU-trade 07-12-2012 01:29 2040370

Цикл?(
 
Здравствуйте! Такой вопрос как реализовать цикл который бы делал так:

есть массив. генерируеться положение числа 2.

00000
00000
00200
00000
00000

Чтобы цикл обрисовал двойку 1

00000
01110
01210
01110
00000

Drongo 07-12-2012 03:00 2040402

Определить индекс массива где находится двойка и запомнить его, пусть это будет [2][2] (цикл обхода массива и условие если, равно 2 мы нашли индексы местоположения двойки)
Дальше "шагаем" на единицу
вверх [2-1][2]
вниз [2+1][2]
в право [2][2+1]
влево [2][2-1]
вверх влево [2-1][2-1]
вниз влево [2+1][2-1]
вверх в право [2-1][2+1]
вниз в право [2+1][2+1]
заполняем эти индексы единичкой.
Естественно не забываем проверять выход за диапазоны массива если двойка будет в углу или с краю.

SAU-trade 07-12-2012 10:52 2040515

Я это понимаю... Я могу по отдельности вводить условие установки/проверки выхода за массив) 1.. Я не могу вкурить как циклом организовать.

Drongo 07-12-2012 14:15 2040643

SAU-trade, цикл вам нужен только для определения индексов двоечки. :)

Код:

...
  const int row = 10;
  const int column = 10;

  int array[row][column] = {0}; // Здесь весь массив забит нулями, вы введёте свои данные

  // Заполнение массива

  for(int i = 0; i < row; i++){
      for(int j = 0; j < column; j++){
        if(array[i][j] == 2 ){ // Если равно двойке, мы нашли индексы и цикл нам больше не нужен.
            // Шагаем обводкой и проверкой
            // условия проверки выхода за диапазон и присваивание единички если всё гуд
            if(j-1 < column)  // вверх
              array[i][j-1] = 0;
          // вниз
          ...
          }
      }
    } 
...


lxa85 07-12-2012 19:57 2040870

В качестве оффтопа.
SAU-trade, а этот вопрос с темой про морской бой никак не связан?


Время: 22:33.

Время: 22:33.
© OSzone.net 2001-