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;
}
相关推荐
海的诗篇_1 小时前
前端开发面试题总结-原生小程序部分
前端·javascript·面试·小程序·vue·html
黄瓜沾糖吃3 小时前
大佬们指点一下倒计时有什么问题吗?
前端·javascript
温轻舟3 小时前
3D词云图
前端·javascript·3d·交互·词云图·温轻舟
浩龙不eMo3 小时前
✅ Lodash 常用函数精选(按用途分类)
前端·javascript
小林C语言3 小时前
C语言 | 判断是否为回文数
c语言
爱分享的程序员3 小时前
前端面试专栏-算法篇:17. 排序算法
前端·javascript·node.js
pe7er4 小时前
使用 Vue 官方脚手架创建项目时遇到 Node 18 报错问题的排查与解决
前端·javascript·vue.js
pe7er4 小时前
使用 types / typings 实现全局 TypeScript 类型定义,无需 import/export
前端·javascript·vue.js
islandzzzz4 小时前
(第二篇)HMTL+CSS+JS-新手小白循序渐进案例入门
前端·javascript·css·html
喝拿铁写前端4 小时前
前端实战优化:在中后台系统中用语义化映射替代 if-else,告别魔法数字的心智负担
前端·javascript·架构