贪吃蛇项目(用ncurse捕获键盘的上下左右键)
作者:互联网
1.使用ncurse的好处
ncurse封装了一些库,不需要通过按下回车来改变键盘的方向 。
2.如何使用ncurse
头文件:#include <curses.h>
(1)initscr():是ncurse界面的初始化函数
(2)printw:是ncurse模式下的printf
(3)getch():等待用户输入,如果没有这句话,程序就退出了,看不到运行的结果,也就看不到getch上面所打印的话。
(4)endwin():程序退出,调用该函数来恢复shell终端的显示,如果没有这句话,shell终端字乱码。
3.编写代码,体验这三个函数
#include <curses.h>
int main()
{
initscr();
printw("this is a test");
getch();
endwin();
return 0;
}
运行结果:
在运行的时候必须连接库:
gcc demo2.c -lcurses
体验getch和printw
#include <curses.h>
int main()
{
char c;
initscr();
c=getch();
printw("you input:%c\n",c);
getch();
endwin();
return 0;
}
运行结果:
getch为输入字符,当输入完一个字符后,不需要按下回车程序接着往下面执行;而不像scanf,输入完一个字符后,需要按下回车,程序才往下面执行。
4.用ncurse捕获键盘的上下左右键
(1)打开curse.h文件
在curse.h中可以看到linux系统自带的有关方向的宏定义
(2)这样在程序当中调用这些宏定义就能直接可以使用了,如下面代码:
#include <curses.h>
int main()
{
int key;//1 byte 8 bit
initscr();
keypad(stdscr,1);
while(1)
{
key=getch();
switch(key)
{
case KEY_DOWN:
printw("DOWN\n");
break;
case KEY_UP:
printw("UP\n");
break;
case KEY_LEFT:
printw("LEFT\n");
break;
case KEY_RIGHT:
printw("RIGHT\n");
break;
}
}
endwin();
return 0;
}
运行结果:
(3)注释:函数keypad设置了可以在stdscr中接受键盘的功能键(快捷键)。
keypad函数:keypad(stdscr,1);stdscr:为接受键盘的功能键(快捷键),1代表是。
——@上官可编程
标签:getch,keypad,printw,stdscr,break,ncurse,贪吃蛇,上下左右 来源: https://blog.csdn.net/weixin_42900834/article/details/114692221