2016-12-12 2 views
0

Итак, в моем классе программирования мы должны создать многомерный массив, который устанавливает все значения в 0 в 1, а затем рандомизирует его, чтобы заменить некоторые из нулей через «X» в другой функции, которая показана ниже. Я хотел бы знать, как иметь эти случайные значения в другом цвете.Как установить конкретные символы как разные цвета в многомерных массивах

void specialInit(char grid[ROW][COLUMN]) 
    { 
     for(int j = 0; j < ROW; j++) 
     { 
      for(int i = 0; i < COLUMN; i++) 
      { 
       int dig = ((rand() + time(0)) % 9)+1; 
       if (dig < 3) 
       { 
        grid[j][i] = 'X', SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_GREEN | BACKGROUND_BLUE); 
       } 
      } 
     } 
    } 
+0

Что запятая для как в 'x',' SetConsoleTextAttribute'? –

ответ

0

Одно из предложений заключается в использовании матрицы struct вместо символов:

struct Char_Property 
{ 
    char c; 
    unsigned int color; 
}; 
//... 
Char_Property grid[ROW][COLUMN]; 

Другой метод, чтобы иметь параллельную матрицу с цветами:

unsigned int grid_color[ROW][COLUMN]; 

Перед тем, как вывести grid, задайте свойство атрибута, извлеченное из структуры или grid_color, затем выведите grid персонаж.

Третий вариант заключается в применении цветовых атрибутов, как ваш печати:

for (unsigned int r = 0; r < ROW; ++r) 
{ 
    for (unsigned int c = 0; c < COLUMN; c++) 
    { 
    SetConsoleTextAttribute(/*...*/); 
    cout << grid[r][c]; 
    } 
    cout << "\n"; 
} 
Смежные вопросы