读书人

写控制台贪吃蛇的输出这样更新会不会

发布时间: 2012-02-15 12:09:44 作者: rapoo

写控制台贪吃蛇的输出,这样更新会不会慢?
char scr[80][80];
然后我先将要输出的字符写在里面,再system("cls");
接着用两个for把scr写到屏幕。大家觉得如何?

[解决办法]
谁说不可以用控制台写?
网上去搜下,肯定搜出来一大堆
我用curses的话,可能300行的代码都可以搞定
[解决办法]
不慢,人眼感觉不到的, 你可以试试看
[解决办法]
我以前做过类似的事,这样更新的确有点慢,会引起屏幕闪烁,但一般人都能忍受。

windows环境下的控制台其实也是一个稍微特殊点但特殊得不多的窗口应用程序,
建议你还是调用windows的API来直接操作屏幕缓冲区,这样快得多:
AddConsoleAlias
AllocConsole
AttachConsole
CreateConsoleScreenBuffer
FillConsoleOutputAttribute
FillConsoleOutputCharacter
FlushConsoleInputBuffer
FreeConsole
GenerateConsoleCtrlEvent
GetConsoleAlias
GetConsoleAliases
GetConsoleAliasesLength
GetConsoleAliasExes
GetConsoleAliasExesLength
GetConsoleCP
GetConsoleCursorInfo
GetConsoleDisplayMode
GetConsoleFontSize
GetConsoleHistoryInfo
GetConsoleMode
GetConsoleOriginalTitle
GetConsoleOutputCP
GetConsoleProcessList
GetConsoleScreenBufferInfo
GetConsoleScreenBufferInfoEx
GetConsoleSelectionInfo
GetConsoleTitle
GetConsoleWindow
GetCurrentConsoleFont
GetCurrentConsoleFontEx
GetLargestConsoleWindowSize
GetNumberOfConsoleInputEvents
GetNumberOfConsoleMouseButtons
GetStdHandle
HandlerRoutine
PeekConsoleInput
ReadConsole
ReadConsoleInput
ReadConsoleOutput
ReadConsoleOutputAttribute
ReadConsoleOutputCharacter
ScrollConsoleScreenBuffer
SetConsoleActiveScreenBuffer
SetConsoleCP
SetConsoleCtrlHandler
SetConsoleCursorInfo
SetConsoleCursorPosition
SetConsoleDisplayMode
SetConsoleHistoryInfo
SetConsoleMode
SetConsoleOutputCP
SetConsoleScreenBufferInfoEx
SetConsoleScreenBufferSize
SetConsoleTextAttribute
SetConsoleTitle
SetConsoleWindowInfo
SetCurrentConsoleFontEx
SetStdHandle
WriteConsole
WriteConsoleInput
WriteConsoleOutput
WriteConsoleOutputAttribute
WriteConsoleOutputCharacter

读书人网 >C语言

热点推荐