【发布时间】:2014-05-20 10:44:12
【问题描述】:
所以我有一个二维数组用作网格图,其中每个数组块都是地图上的一个空间。
所以在我的 main() 中,我用
初始化了数组“地图”char Map[ROWS][COLS]={'x'};
ROWS = 10 和 COLS = 20
后来我用函数 PrintMap 调用
void PrintMap(const char Map[ROWS][COLS], const bool showTreasure)
{
for (int countr=0; countr<ROWS;countr++){
for (int countc=0; countc<COLS;countc++){ //print map
if (!showTreasure){
if (Map[countr][countc]!='T')
cout << Map[countr][countc];
else
cout << '*';
} else {
cout << Map[countr][countc];
}
}
cout << endl;
}
}
网格上的一个空间是游戏中的宝藏或目标所在的位置。在 PrintMap 的参数中是 bool showTreasure,即您是否希望在地图上显示“T”或是否要隐藏它。
因此,数组中的一个空格将是“T”,而所有其他空格将是“*”、“X”或“P”。
* 表示什么都没有。
所以 if 语句应该说:如果 showTreasure 为假(意味着您想隐藏“T”):如果不是“T”,则打印数组中的内容,如果不是,则打印“*”是一个T。
现在我的问题是,即使我已经用 200 *s 初始化了数组,当我运行程序时它只打印出 1 *。
【问题讨论】:
-
好吧,如果您显示您所说的初始化代码会有所帮助。