在2d array c ++中的某个位置打印一个字符

时间:2014-04-07 23:48:55

标签: c++ arrays multidimensional-array

我需要在我的2D阵列的宝藏位置打印'T'。我遇到了麻烦。我有一个全局常量,其中TREASURE ='T'...当我打印我的地图时,它会在地图之后而不是在实际位置打印宝藏位置。我必须为我的Start位置做同样的事情。代码:

void PrintMap(const char Map[][COLS], const bool showTreasure)
{
    int TreasureR, TreasureC;
    int StartR, StartC;

    for (int row = 0; row < ROWS; row++)
    {
       for (int col = 0; col < COLS; col++)
       {
           if ((row == TreasureR && col == TreasureC) && showTreasure == true)
               cout << Map[row][col];
           else if ((row == StartR && col == StartC) && showTreasure == true)
               cout << START;
           else
               cout << EMPTY;

       }
    cout << endl;
    }


}

1 个答案:

答案 0 :(得分:0)

您可以添加条件逻辑,了解如何处理地图位置的项目。

这是一个简单的例子:

for (unsigned int col = 0; col < maximum_columns; ++col)
{
  for (unsigned int row = 0; row < maximum_rows; ++row)
  {
    char c = Map[row][col];
    // Process any special printing
    switch (c)
    {
       case 'T':
         if (!showTreasure)
         {
            c = ' ';
         }
         break;
       case 'M':
         if (!showMonster)
         {
            c = ' ';
         }
         break;
    }
    cout << c;
  }
  cout << '\n';
}