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;
}
相关推荐
ggdpzhk1 分钟前
VUE:基于MVVN的前端js框架
前端·javascript·vue.js
小曲曲1 小时前
接口上传视频和oss直传视频到阿里云组件
javascript·阿里云·音视频
学不会•2 小时前
css数据不固定情况下,循环加不同背景颜色
前端·javascript·html
EasyNTS3 小时前
H.264/H.265播放器EasyPlayer.js视频流媒体播放器关于websocket1006的异常断连
javascript·h.265·h.264
网易独家音乐人Mike Zhou3 小时前
【卡尔曼滤波】数据预测Prediction观测器的理论推导及应用 C语言、Python实现(Kalman Filter)
c语言·python·单片机·物联网·算法·嵌入式·iot
活宝小娜4 小时前
vue不刷新浏览器更新页面的方法
前端·javascript·vue.js
程序视点5 小时前
【Vue3新工具】Pinia.js:提升开发效率,更轻量、更高效的状态管理方案!
前端·javascript·vue.js·typescript·vue·ecmascript
coldriversnow5 小时前
在Vue中,vue document.onkeydown 无效
前端·javascript·vue.js
我开心就好o5 小时前
uniapp点左上角返回键, 重复来回跳转的问题 解决方案
前端·javascript·uni-app
刚刚好ā6 小时前
js作用域超全介绍--全局作用域、局部作用、块级作用域
前端·javascript·vue.js·vue