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;
}
相关推荐
im_AMBER6 分钟前
Leetcode 158 数组中的第K个最大元素 | 查找和最小的 K 对数字
javascript·数据结构·算法·leetcode·
qq_12084093719 分钟前
Three.js 场景性能优化实战:首屏、帧率与内存的工程化治理
开发语言·javascript·性能优化·three.js
竹林81812 分钟前
Solana前端开发:从连接钱包到发送交易,我如何用@solana/web3.js搞定第一个DApp
前端·javascript
码农的神经元25 分钟前
2026 MathorCup 选题建议:A/B/C/D/E 题到底怎么选?
c语言·开发语言·数学建模
军军君0132 分钟前
数字孪生监控大屏实战模板:商圈大数据监控
前端·javascript·vue.js·typescript·前端框架·echarts·three
方安乐1 小时前
try catch vs 异步捕获
前端·javascript·vue.js
chenbin___1 小时前
鸿蒙RN position: ‘absolute‘ 和 zIndex 的兼容性问题(转自千问)
前端·javascript·react native·harmonyos
Hello--_--World1 小时前
Js面试题目录表
开发语言·javascript·ecmascript
聆风吟º1 小时前
【C标准库】深入理解C语言strcmp函数:字符串比较的核心用法
c语言·开发语言·库函数·strcmp
weixin_446023561 小时前
C语言入门:发展历程与编程应用
c语言·基础知识·发展历程·语法结构·编程应用