使用if语句c ++的2d数组映射

时间:2014-04-06 01:38:11

标签: c++ arrays map 2d

我正在制作一个制作地图的程序。在我的打印映射函数中,我将布尔值作为参数。因此,如果showTreasure为true,则宝贝将打印出来,反之亦然。我必须在地图上打印字符。 T为最终的宝藏,S为整个程序的开始,X为玩家访问过的地方,P为玩家当前所在的地方。如果这些都不适用,它会打印一颗星。我想出了如何做宝贝和明星,但我似乎无法让其他三个人工作。这就是我所拥有的:

// Cell types - The Map can have any of these
// characters at a location on a Map.
const char START = 'S';
const char PLAYER = 'P';
const char TREASURE = 'T';
const char EMPTY = '*';
const char VISITED = 'X';

打印地图功能:

// Name: PrintMap
// Description: Prints the Map as shown in example
//      program output on assignment page.
// Return: Nothing
// ---------------------------------------------------
void PrintMap(const char Map[][COLS], const bool showTreasure, int &TreasureR, int      &TreasureC,
          int &StartR, int &StartC, int &Row, int &Col)
{

    for (int row = 0; row < ROWS; row++)
    {
       for (int col = 0; col < COLS; col++)
       {

           if ((row == TreasureR && col == TreasureC) && showTreasure == true)
               cout << TREASURE;
           else if ((row == StartR && col == StartC) && showTreasure == true)
               cout << START;
           else
               cout << EMPTY;
       }
     cout <<  endl;
    }


}

1 个答案:

答案 0 :(得分:0)

莫因,

只是想知道为什么你通过const char Map[][COLS]但没有使用它。 只需在Map[row][col]为真的条件下打印showTreasure的值即可。 那么您将不需要额外的int&参数。

Greez Alnjeno