【发布时间】:2020-04-17 01:43:52
【问题描述】:
我有一个任务,简而言之,我必须制作一个简单的海战游戏。我以为这很容易,但我被困住了。但现在我被困住了。 我有一个问题,我无法正确显示我的阵列,它没有很好地对齐。如果你能帮助我就太好了
void show(char BATTLEFIELD[columns][rows])
{
std::string alfa[rows + 1] = { "A|", "B|", "C|", "D|", "E|", "F|", "G|", "H|", "I|", "J|" };
char num[11] = { ' ', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9' };
for (int i = 0; i < 11; i++)
{
std::cout << std::setw(width) << num[i];
}
std::cout << std::endl;
for (int z = 0; z < (columns*width); z++)
{
std::cout << "-";
}
std::cout << std::endl;
for (int i = 0; i < columns; i++)
{
for (int z = 0; z < rows; z++)
{
if (z == 0)
{
std::cout << alfa[i];
}
std::cout << std::setw(width) << veld[i][z];
}
std::cout << std::endl;
}
std::cout << std::endl;
}
我会放两张预期和意外结果的图片。
预期结果:
意外的结果:
【问题讨论】:
-
嗨。您希望看到什么以及实际展示了什么?
-
嘿,谢谢你的提示,我已经放了两张(未)预期结果的图片。
-
换句话说,你的问题是对齐列号和它下面的破折号线?在生成行之前只需计算一两个额外的空间? (游戏通常称为Battleships。)您还可以生成列标题和行标题:您不需要将它们存储为字符串。
-
您是否要在列底部打印“Waag uw kans:”?如果是这样,创建一个 char 数组并将每个字符分配给最后一列的每一行。
标签: c++ multidimensional-array setw