我如何将特定字符设置为多维数组中的不同颜色

How do I Set Specific Characters as Different Colors in Multidimensional Arrays

本文关键字:数组 颜色 设置 字符      更新时间:2023-10-16

因此,在我的编程类中,我们应该制作一个多维数组,将所有值设置为1个函数中的0,然后随机对其进行随机化,以便某些零被" x" 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);
               }
           }
       }
   }

一个建议是使用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";
}