C语言项目——贪吃蛇,为什么用curses,定义上下左右

在Linux系统中,使用ncurses在程序编译时还要加上 -lcurses

即:gcc cursedemo.c -lcurses

复制代码
#include<curses.h>
int main()
{

   initscr(); //ncurse界面的初始化函数
   printw("This is a curses window.\n");//再ncurse模式下的printf
   getch();//等待用户输入,如果没有这句话,程序就退出了,
           //看不到运行的结果,也就是看不到上面那句话
   endwin();//程序退出,调用该函数来恢复shell终端的显示,
            //如果没有这句话,shell终端字乱码,坏掉
   return 0;
}

使用curse,他可以及时响应,不用像 scanf 和 getchar 这两个需要回车键响应

这对于我们贪吃蛇上下左右键的响应十分有作用

恒定义 : vi / usr / include / curses.h

可以看到下方的库

函数keypad设置了可以在stdscr中接受键盘的功能键(除字母外的按键)

keypad(stdscr,1)

复制代码
#include<curses.h>

int main()
{
   int key;//char 1 byte 8 bit;int 4 byte 32 bit
   initscr();
   keypad(stdscr,1);       //参数代表是否接收,1代表是

   while(1){               //无限循环
      key=getch();         //接收key
      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");
      }

}

   endwin();
   return 0;
}
相关推荐
Miracle_G38 分钟前
每日一个知识点:JavaScript 箭头函数与普通函数比较
javascript
unfetteredman38 分钟前
Error: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.32' not found
前端·javascript·vite
程序员小续2 小时前
React 官方严令禁止:Hook 不能写在 if/else,真相竟然是…
前端·javascript·程序员
小奋斗2 小时前
深入浅出:JavaScript中 三大异步编程方案以及应用
javascript·面试
尝尝你的优乐美2 小时前
封装那些Vue3.0中好用的指令
前端·javascript·vue.js
敲代码的彭于晏3 小时前
localStorage 不够用?试试 IndexedDB !
前端·javascript·浏览器
chxii3 小时前
5.4 4pnpm 使用介绍
前端·javascript·vue.js
米开朗积德3 小时前
项目多文件JSON数值比对
javascript
sorryhc3 小时前
【AI解读源码系列】ant design mobile——Image图片
前端·javascript·react.js
sorryhc4 小时前
【AI解读源码系列】ant design mobile——Button按钮
前端·javascript·react.js