为什么不用空格代替"X"

why doesn't this replace the 'Xs' with space's

本文关键字:空格 为什么不      更新时间:2023-10-16
    int mapSizeX = 30;
    int mapSizeY = 10;
    string map[10][30];
    char playerMovement;
    for (int i = 0; i < mapSizeY; i++)
    {
        for (int j = 0; j < mapSizeX; j++)
        {
            map[i][j]= "X";
            cout << map[i][j];
        }
        cout << endl;
    }
    for (int i = 1; i < mapSizeY - 1; i++)
    {
        for (int j = 1; j < mapSizeX - 1; j++)
        {
            map[i][j] = " ";
            cout << map[i][j];
        }
        cout << endl;
    }

由于某些原因没有将X替换为空格并将其添加到X之后并且没有创建"竞技场",顺便说一下,这是针对蛇的游戏

两次输出到cout。只有在编辑完字符串后,才从循环和输出中删除cout << map[i][j];:

 ... // Previous code without printing
 for (int i = 0; i < mapSizeY; i++)
    {
        for (int j = 0; j < mapSizeX; j++)
        {
            cout << map[i][j];
        }
        cout << endl;
    }

尝试添加以下内容来查看您的竞技场:

cout << endl << endl;
cout << "The arena: " << endl << endl;
for (int i = 0; i < mapSizeY; i++)
{
    for (int j = 0; j < mapSizeX; j++)
    {
        cout << map[i][j];
    }
    cout << endl;
}

在打印出带有X的整个竞技场后,您将打印出带有空白的整个竞技场,每边只缩短一个贴图。所以你要一个接一个地打印它们。你要做的是在同一个嵌套的for循环中打印它们,像这样:

for (int i = 0; i < mapSizeY; i++)
{
        for (int j = 0; j < mapSizeX; j++)
        {
            if (i == 0 || j == 0 || i == mapSizeY - 1 || j == mapSizeX - 1) {
                map[i][j] = "X";
                cout << map[i][j];
            }
            else {
                map[i][j] = " ";
                cout << map[i][j];
            }
        }
        cout << endl;
}

if-子句检查当前迭代是否是边(如果在X或Y轴上为0,或者在X或Y轴上是数组中的最后一个元素)并打印X,如果不是(它在字段中)则打印一个空格。


我想给你一个小提示:我会直接用字符初始化字段,而不打印它。

那么像这样初始化这个字段:

for (int i = 0; i < mapSizeY; i++)
{
        for (int j = 0; j < mapSizeX; j++)
        {
            if (i == 0 || j == 0 || i == mapSizeY - 1 || j == mapSizeX - 1) {
                map[i][j] = "X";
            }
            else {
                map[i][j] = " ";
            }
        }
}

然后在你完成了关于蛇,食物和其他东西的方程并将它们全部写入你的' map '变量之后,去打印整个地图,像这样:

for (int i = 0; i < mapSizeY; i++)
{
        for (int j = 0; j < mapSizeX; j++)
        {
                cout << map[i][j];
        }
        cout << endl;
}

希望我能帮上忙!