0

我正在尝试将“房间”对象的二维数组的内容作为数组中内容的一种打印/显示返回。

Room* m_map[10][10];

像这样生成房间的分散:

//Initialise array to NULL
for(int x=0;x<10;x++)
{
    for(int y=0;y<10;y++)
        m_map[x][y] = NULL;
}

for(int n=0; n<10; n++)
{       
    for(int ran=0; ran<3; ran++)
    {
        int r_n = rand() % 10 ;

        Room* r = new Room(n, "Normal", true, false, false, true);
        m_map[r_n][n] = r;
    }       

}

然后,我想参考 NULL 为用户显示/打印这些房间所在的位置。

所以我可以例如如果NULL显示'#',如果它是一个房间离开一个''。

我不确定我应该在方法声明中返回的位?

任何帮助或指出正确的方向将不胜感激

4

2 回答 2

1

添加一个将数组打印到您的类的方法:

void print() const 
{
  for(int n=0; n<10; ++n)
  {       
    for(int m=0; m<10; ++m)
    {
      std::cout << m_map[n][m] ? : "# " : ". ";
    }
    std::cout << "\n";
  }
}
于 2013-03-01T19:18:20.063 回答
1

循环通过两个维度。每次循环通过 x 显示一列中的所有房间并在之后附加一个逗号。

当到达一行的末尾并移动到下一行时,只需附加一个换行符即可在新行上打印下一列。

void MyClass::printMap(unsigned int numOfRows, unsigned int numOfCols)
{
  using std;
  for(unsigned int y = 0; y < numOfRows ; y++)
  {
    for(unsigned int x = 0; x < numOfCols ; x++)
    {
       if(m_map[y][x] == NULL)
          cout << # << ",";
       else
          cout << m_map[y][x].roomName() << ",";   
    }

    cout << endl;
  }
}
于 2013-03-01T19:21:17.843 回答