Problem5751--(示例)如何实时响应键盘按键?

5751: (示例)如何实时响应键盘按键?

[Creator : ]
Time Limit : 1.000 sec  Memory Limit : 256 MiB

Description

大蟾蜍设计的贪吃蛇游戏是如何实时响应键盘按键的呢?

下面这段简单的代码能带你了解其中的奥秘!


#include <bits/stdc++.h>
#include <conio.h>
#include <windows.h>
using namespace std;

void gotoxy(int x,int y)//定位光标位置 
{
	COORD point;
	point.X=x; point.Y=y; 
	SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE),point);
}

int main()
{
	int x=10,y=10; 
	
	gotoxy(x,y); cout<<"@";
	
	while(1)
	{
		if(kbhit())//监测键盘是否击键 
		{
			char ch=getch();
			gotoxy(x,y); cout<<" ";//清除原来位置上的符号; 
			
			if(ch=='a'||ch=='A'||ch==75)	x=x-1;//左移 	
			if(ch=='d'||ch=='D'||ch==77)	x=x+1;//右移 
			if(ch=='s'||ch=='S'||ch==80)	y=y+1;//下移
			if(ch=='w'||ch=='W'||ch==72)	y=y-1;//上移

			gotoxy(x,y); cout<<"@"; //在新的位置输出符号 
		}	
	} 
}


Source/Category