因此,我正在制作一个数独求解器,以便对自己进行测试,而且我似乎已经碰壁了。
我试图让用户将值输入到网格中,并且它会每隔几秒自动更新一次,以查看它们放入网格中的下一个值。
我不知道如何将用户输入到网格本身。
这是我的网格代码。
void draw()
{
int given;
cout << endl;
for (int i = 0; i < 13; i++)
{
for (int j = 0; j <= 9; j++)
{
if (j == 0)
{
cout << "|";
}
if (j == 3 || j == 6 || j == 9 )
{
cout << "|";
}
if (i == 0 || i == 4 || i == 8 || i == 12)
{
cout << "#";
}
else
{
cout << " ";
}
}
cout << endl;
}
}
为了让这个更新,我有这个循环。
while (gameOver != TRUE)
{
system("cls");
draw();
cout << "\nEnter the next given number, or 0 for a blank space: ";
Sleep(600);
}
所以我需要帮助获取用户输入值
在网格上显示
以任何方式保存(我认为数组可能效果最好?)
感谢。
答案 0 :(得分:0)
我个人认为,可视化(和存储)值的最简单方法是使用二维数组。
您可以像这样声明和n * m数组:
babel-plugin-transform-class-properties
然后在for循环中访问这样的元素(i,j)以显示它:
int x[n][m];
答案 1 :(得分:0)
通过这一行,我猜你是在Windows上编程:
system("cls");
所以我的答案将基于此并使用大量的WinAPI。
通常,您可以坚持cin
并在用户按Enter后更新网格。但是,由于您需要实时显示刷新,这似乎不是最佳选择。你在Windows上有conio.h
所以去吧:
#include <conio.h>
...
char ch;
while (true) {
while (!kbhit()); // Wait for user input
ch = getch();
switch (ch) {
// Process input here.
}
}