很多朋友都不知道如何用键盘来移动光标,因此有很多程序都不能写,这里我写了简单用到上下左右以及ESC键的程序,希望对一些c的初学者有些作用.知道了这几个键盘的用法后你就可以靠自己的创造力来写自己想写的需要用到键盘的游戏了吧.(比如俄罗斯方块,贪吃蛇等等),最主要的还是可以让一些新手能知道这种用法,我不久前为了知道这种用法也花了很多时间找类似的文章.在这里希望下面这个小程序能对初学的朋友们有用.
#define UP 0x4800
#define DOWN 0x5000
#define LEFT 0x4b00
#define RIGHT 0x4d00/*这些是上,下,左,右的16进制*/
main()
{int key,x,y,a,b;
int i,j;
clrscr();
for(i=20;i<=60;i++)
{
gotoxy(i,4);
printf("%c",219);
gotoxy(i,21);
printf("%c",219);
}
for(i=4;i<=21;i++)
{
gotoxy(19,i);
printf("%c",219);
gotoxy(61,i);
printf("%c",219);
gotoxy(18,i);
printf("%c",219);
gotoxy(62,i);
printf("%c",219);
}/*以上是画简单的边界*/
gotoxy(40,10);
x=40;
y=10;
printf("\1");
gotoxy(x,y);
for(;;)
{
a=x;
b=y;
key=bioskey(0);
if(key==UP)/*上键盘*/
{
y--;
if(y==4)
{
y++;
b++;
}
gotoxy(x,y);
}
else if(key==DOWN)/*下键盘*/
{
y++;
if(y==21)
{
y--;
b--;
}
gotoxy(x,y);
}
else if(key==LEFT)/*左键盘*/
{
x--;
if(x==19)
{
x++;
a++;
}
gotoxy(x,y);
}
else if(key==RIGHT)/*右键盘*/
{
x++;
if(x==61)
{
x--;
a--;
}
gotoxy(x,y);
}
else if(key==0x11b)/*esc键盘*/
break;
else continue;
printf("\1");
gotoxy(a,b);
printf(" ");
gotoxy(x,y);
}
}