我正在尝试制作地牢爬行式游戏,并且我有这段代码来创建游戏板。我使用的是“ F”作为结束点,使用的是“ P”作为播放器。
void Gameboard::CreateGameboard()
{
for (int i = 0; i < 10; i++)
{
for (int j = 0; j < 10; j++)
{
GameGrid[i][j] = 'x';
}
}
cout << " 0 1 2 3 4 5 6 7 8 9 10" << endl;
cout << " +---------------------+" << endl;
for (int i = 0; i < 10; i++)
{
cout << " " << "|" << GameGrid[i][0];
for (int j = 0; j < 10; j++)
{
if (i == Spawn[0] && j == Spawn[0])
{
GameGrid[0][0] = 'P';
}
cout << " " << GameGrid[i][j];
}
cout << "|" << endl;
}
cout << " +---------------------+" << endl;
}
我面临的问题是。 “ P”被放置在电路板的前两个插槽中,不确定原因。以及我将如何随着玩家的移动来更新董事会?我有一个带有x,y位置变量的Player类,我的想法是根据它们的去向递增/递减。每次移动后是否需要重新打印整个电路板?
答案 0 :(得分:0)
绘制您的木板。
for (int i = 0; i < 10; i++)
{
cout << " " << "|" << ***GameGrid[i][0]***;
for (int j = 0; j < 10; j++)
{
cout << " " << GameGrid[i][j];
}
cout << "|" << endl;
}
您先打印出该行的第一项,然后再打印整行,包括第一项。因此每一行都将第一项加倍。
关于第二个问题,清除屏幕正是您要做的。如果您使用的是Windows,则可以使用system(“ cls”);。以“清除”控制台,然后重新绘制。我建议将电路板图纸和电路板创建置于不同的功能中。