我正在尝试编写一个简单地读取多维数组(使用'for'循环)的程序,如果它遇到某个字母(如'A'),它将绘制一个矩形(我使用画布库和函数来绘制形状)。
我正在尝试使用画布实际绘制迷宫般的地图。但出于某种奇怪的原因,它的结果并不正确。我假设这是读取数组的问题,我不知道为什么。
多维数组从如下所示的文本文件中读取输入(示例): 这是我尝试使用画布创建的迷宫地图的布局。
AAAAAAAAAAAAAAAAAAAAA
A.........A.........A
A.........A.........A
A...............AAAAA
AAAAA...............A
AAAAAAAAAAAAAAAAAAAAA
当然,“A”将被替换为填充矩形以表示墙壁
这 '。' 代表路径。
这是我的代码:
void MazeGame::DrawMap(Canvas &canvas, char (&map)[20][26])
{
double drawx = 200;
double drawy = 200;
for(int i = 0; i < 20; i++)
{
for(int j = 0; j < 26; j++)
{
if(map[i][j] == 'A')
{
canvas.DrawFillRect(drawx+10, drawy, 10, 10);
}
if(map[i][j] == '.')
{
map[i][j] = ' ';
}
}
}
}
我在课堂上写了这个函数。
我将两个“双”变量drawx和drawy初始化为200。这被认为是绘制形状的x和y原点坐标。当然,在读取字符数组时,x & y 坐标必须根据迷宫布局在文本文件中的显示方式进行移动,否则,在绘制形状时,它会简单地覆盖或覆盖先前绘制的形状。我不想要那个
我觉得这很简单,但输出真的让我很困惑。有什么建议么?