一、安装ncurse库
因为linux中自带的获取用户输入函数都不是很好用,不能快速响应用户的输入,所以这里使用ncurse库,更好地获取用户输入信息。
- 下载ncurse包
ncurse库下载:http://ftp.gnu.org/pub/gnu/ncurses/
- 移动压缩包到bin目录下
cp ncurses-6.1.tar.gz /bin/
- 进入到bin目录下,解压包
tar -xzvf ncurses-6.1.tar.gz
- 解压完后进入ncurses-6.1目录
cd ncurses-6.1
- 运行配置文件
./configure --without-cxx
运行完后输入make编译
make
- 安装
make install
- 完成
二、ncurse的使用
因为ncurse已经非常落后了,所以我们不需要深入学习,只会浪费时间,只能说是我们这个小游戏需要用到,小小的知道一点点函数的用法就行
#include<curses.h> //ncurse头文件
int main()
{
initscr(); //ncurse界面的初始化函数
printw("this is test"); //ncurse界面下的printf
getch(); //等待用户输入,如果没有这句话,程序就退出了,看不到上面打印的话
endwin(); //程序退出,调用该函数来恢复shell终端的显示,如果没有这句话,shell终端字乱码,会坏掉
return 0;
}
可以看到我们想要的上下左右键在头文件里已经宏定义好了,这些叫做功能性按键,要使用这些按键,就必须使用keypad(stdscr,1)函数,1代表接收,
图形界面是这个样:
下面附上贪吃蛇完整代码:
#include<unistd.h>
#include<stdio.h>
#include<pthread.h>
#include<curses.h>
#include<stdlib.h>
#include<stdlib.h>
#define changkuang 40
#define UP 1
#define DOWN -1
#define LEFT 2
#define RIGHT -2
int dir=0; //定义一个方向变量
typedef struct snake{
int hang;
int lie;
struct snake *next;
}snake,*psnake; //定义蛇结构体
psnake head=NULL; //实例化蛇尾
psnake tail=NULL; //实例化蛇头
psnake food=NULL; //实例化食物
int flag=0;
int key;
void addnode();
void initfood();
void deletenode()//删除蛇尾
{
psnake p=(psnake)malloc(sizeof(snake)