我刚开始使用C语言,但我对PHP有一些了解,所以我决定做一些“更复杂”的东西,对于初学者来说:)
我使用两个嵌套循环来打印50x50数组。它不是很慢,但我包含一个带箭头键的动作来移动一个符号,X(玩家)围绕阵列。每次移动时,都需要刷新整个数组,我这样做了:
system("cls");
for(x=0;x<50;x++)
{
for(y=0;y<50;y++)
{
printf("%c",table[x][y]);
}
printf("\n");
}
这是非常草率的解决方案,整个阵列'闪烁',而每次移动后它都会刷新。
在C中有更有效的方法吗?
答案 0 :(得分:2)
您可能必须使用某种shell图形库(如 ncurses )来移动数组,而不会在重绘时闪烁。当你只使用printf将网格显示为输出时,没有一种简单的方法可以避免这种情况。
答案 1 :(得分:1)
我假设你正在使用Windows(因为cls)。
也许ANSI.SYS转义序列是没有库的最简单方法。
如果移动光标并覆盖显示内容而不清除旧内容,则可以避免闪烁。
答案 2 :(得分:0)
有一个关于“使用Win32控制台读取和编写字符和属性块”的示例:
http://msdn.microsoft.com/en-us/library/ms685032%28v=vs.85%29.aspx
编辑:解释了链接。