1 Star 0 Fork 0

HXY / 贪吃蛇-Linux

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README

Snakes-Linux

介绍

经典小游戏贪吃蛇,使用Linux C编程实现。

主要用作学习:

  1. Makefile规则
  2. 动态开辟链表
  3. Linux文件IO
  4. socket网络编程
  5. sqlite3数据库
  6. 创建线程
  7. 静态函数封装
  8. 单例模式(未涉及)
  9. map映射(未涉及)

主体逻辑

游戏界面应该至少包含三种图形:

  1. 边框 -
  2. 蛇 - 利用链表的动态扩展特性,实现蛇的增长。遍历链表实现蛇的移动
  3. 食物 - 将食物看作蛇身的一个节点,蛇吃到食物就将此节点加入链表

最核心的操作-利用方向键控制蛇的移动:

  1. 使用文件IO读取键盘设备文件中按下的键值
  2. 此操作应该放在一个子线程中进行,这样在读取键值时才不会有延迟
  3. read函数是一个阻塞函数,在没有使用多线程时,使用read读取键值会导致程序卡在read函数。 使用fcntl函数能使read函数变为非阻塞。但在使用了多线程之后,让其恢复阻塞特性能更好地 提升代码速度,因为当没有按键按下时可以免去多余的判断。
  4. 子线程用一个死循环一直查询键盘按下的键值,主线程中也应该有一个死循环控制程序不要退出 不然在主线程退出后子线程也会被释放

空文件

简介

经典小游戏贪吃蛇,使用Linux C编程实现。 展开 收起
C 等 2 种语言
取消

发行版

暂无发行版

贡献者

全部

近期动态

加载更多
不能加载更多了
C
1
https://gitee.com/hxy606cpp/snakes-linux.git
git@gitee.com:hxy606cpp/snakes-linux.git
hxy606cpp
snakes-linux
贪吃蛇-Linux
master

搜索帮助