如何更新游戏板? C++
Posted
技术标签:
【中文标题】如何更新游戏板? C++【英文标题】:How to update a game board? c++ 【发布时间】:2018-12-18 17:47:06 【问题描述】:我正在尝试制作一个地牢爬行类游戏,并且我有这个代码来创建一个游戏板。我使用“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 类,我的想法是根据它们的去向来向下/向上递增。每次移动后是否需要重新打印整个板子?
【问题讨论】:
你输出了两次GameGrid[0][0]
,并且设置为'P'
explicitly。
【参考方案1】:
用你画的白板。
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"); '清除'控制台然后重绘。我建议将电路板绘图和电路板创建放入不同的功能中。
【讨论】:
我用我更改的内容编辑了原始帖子。我现在遇到了将“P”放在第二个位置的问题。 Spawn 在头文件中为 int Spawn[2] = 0,0 ;。可能我完全错过了一些东西..:/ 尝试单步执行您的程序,观察它的流程并查看输出是否符合预期。 docs.microsoft.com/en-us/visualstudio/debugger/…以上是关于如何更新游戏板? C++的主要内容,如果未能解决你的问题,请参考以下文章