贪吃蛇大战 本项目为c++ 测试项目,功能包括:生成地图,初始化食物,贪吃蛇的 创建 移动 和 销毁
项目是 c/s 架构 分为 服务端:snake_server 和 客户端snake_client 两部分
1. snake_server 环境: C++ 11
使用 epoll 循环处理客户端连接
将食物和 蛇的状态信息拼接出 json 同步给每个客户端
接收客户端的 方向消息,更改蛇的移动方向
2. snake_client 环境: C++ 11 和 Qt 5.13
使用qt 的库函数 解析json 并将 蛇和食物的状态 画在窗体上
根据键盘事件 发送相应的消息到服务器
蛇死掉时 断开和服务器的链接结束游戏
以上环境请在 ubuntu 18.4.3 下自行安装
1.可将两个项目中都有 pro 文件 导入 qt 即可编辑开发
2.其中 snake_client 中使用到图片文件,请关闭影子构建模式
项目> 构建设置 中取消勾选 shadow build
3. snake_client 的配置在 client.h 中 , snake_server 的配置在 config.h
请进行必要配置(服务器ip 端口号等)后方可运行
4. snake_server 并不依赖qt 环境,可以使用项目中的 Makefile 文件 通过命令
make // 进行编译
make clean // 进行清理
./snake_server // 运行
1. 有时蛇的尾部一节会断掉并留在原地
2. 蛇经过自己的身体时会留下空白区域 (感觉像把自己的身体压到了地下)
1. [linux下聊天demo支持私聊和群发](https://www.jianshu.com/p/0862ff14d273)
2. [qt 聊天室服务器端](https://github.com/Dgrefic/ServerDialog "qt 聊天室服务器端")
3. [qt 聊天室客户端](https://github.com/Dgrefic/ClientDialog "qt 聊天室客户端")
4. [c++11实现异步定时器](https://www.cnblogs.com/gtarcoder/p/4924097.html "c++11实现异步定时器")