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;
}
相关推荐
山河木马13 分钟前
渲染管线-计算得到gl_Position(顶点着色器)之后续GPU流程
javascript·webgl·图形学
竹林81831 分钟前
用 The Graph 查询链上数据实战:从手搓 RPC 到 Subgraph,我的 NFT 项目数据加载快了 10 倍
前端·javascript
kyriewen3 小时前
别再每次都 Google 了:我整理了前端日常最常踩的 10 个 Git 坑,附速查表
前端·javascript·git
SmartBoyW4 小时前
深入ECMAScript规范:彻底搞懂JS隐式类型转换与底层ToPrimitive机制
前端·javascript
用户852495071845 小时前
解密 JavaScript 中的 this:谁才是真正的调用者?
javascript·面试
Heo5 小时前
Vite进阶用法详解
前端·javascript·面试
铁皮饭盒6 小时前
Next.js 风格路由内置?Bun FileSystemRouter 凭啥这么香
javascript
小林ixn7 小时前
别再背八股了!从 5 个真实场景彻底搞懂 JavaScript 的 this
javascript
东风破_8 小时前
JavaScript 面试常考的字符串算法:从反转字符串到回文判断
前端·javascript
巴勒个啦8 小时前
D3.js 入门实战:用力导向图可视化项目依赖关系
javascript