Linux环境下基于Ncurse图形库的c语言小游戏
函数封装、调用、c语言基础
![](https://img-blog.csdnimg.cn/img_convert/3f88d43bb7ac3d9b35219e8b7d6d4911.jpeg)
ncurse(控制贪吃蛇的走向)可以连续获取用户键盘此时键盘输入的上下左右键,相比scanf/gets/getchar(c语言自带函数)的相应更快,不用再等待用户输入指令后按enter确定。
地图规划:第0/19行和第1-18行有所不同
蛇的身子:指针、结构体、链表
![](https://img-blog.csdnimg.cn/img_convert/b0b3b9d26237092ba1705a65cdbb76fe.png)
![](https://img-blog.csdnimg.cn/img_convert/cf1eaee8136de7b4a320866a6b88f66e.png)
链表动态添加蛇的的节点,遍历链表节点来输出蛇的身子
![](https://img-blog.csdnimg.cn/img_convert/0b34233a7cb8248b95f809c7442d6b58.png)
删除与添加节点:删除头节点
move(0,0):蛇光标移动刷新画面(刷新ncurse画面)
蛇的撞墙:检测尾节点与墙四周(图形界面四周)的值
蛇的自行游走:方向移动和界面刷新(即双while(1)问题):Linux线程
新节点方向要和坐标做联系
不合理走位:上和下移动,左和右移动不能紧接着进行操作
去掉ncurse界面显示许多乱七八糟的东西:在snake13.c的initncurse()里添加了noech()
![](https://img-blog.csdnimg.cn/img_convert/4b0e5ad3b71785691ffca9c7435f48c9.jpeg)
贪吃蛇食物随机生成:srand() ,图形边框是多大就对多大的数值取余
优化贪吃蛇在界面上端吃不到食物的问题:改变尾巴节点的位置(从==0改为<0)
自己咬不死自己的问题:!!!尾巴节点与身子节点(不包括尾巴节点)是否有重合!!!