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之后添加它并且不会制作一个&#34;竞技场&#34;这是顺便说一句蛇游戏
答案 0 :(得分:2)
您输出到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;
}
答案 1 :(得分:1)
尝试添加以下内容以查看您的竞技场:
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;
}
答案 2 :(得分:0)
用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;
}
希望我能帮忙!