贪吃蛇项目(用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代表是。

——@上官可编程

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值