一、团队名称、团队成员介绍、任务分配,团队成员课程设计博客链接
团队名称:404 NOT FOUND
团队成员介绍:
组长:网络1713 张庆旺 201721123072
负责模块 :网络交互、贪吃蛇问题解决
组员:网络1713 林大擘 201721123075
负责模块 :博客撰写、排行榜功能实现、背景音乐
组员:网络1713 傅润达 2017211230
负责模块 : GUI界面、贪吃蛇问题解决
二、项目简介
通过对键盘的监听实现贪吃蛇的移动,通过客户端和服务器的交互,实现客户端获取服务端IP地址,实现双人对战,同时判定双方之间的得分更高的胜者,加入排行榜。
三、项目采用技术
GUI图形界面、Socket网络交互、文件流、多线程
四、项目Git地址
五、项目git提交记录截图(要体现出每个人的提交记录、提交说明)
六、项目功能结构图与主要功能结构图
七、项目运行截图或屏幕录制
八、项目关键代码讲解
1.碰撞检测,包括 蛇A碰到蛇B、蛇吃到食物、蛇碰到墙体
我们将地图划分为一个很大的二维数组,通过坐标的重合,来检测碰撞,产生不同的效果。
2.蛇移动的同时、实现面板的刷新
3.蛇的产生、移动的方法
(1)产生蛇的 creatSnake 方法:
蛇的本身是LinkedList数组,采用链表存储蛇的身体坐标,方便于蛇的身体的增加、移动
(2)蛇移动实现的方法:
蛇的移动,其本质来说是蛇头部的移动,因此,只需要改变蛇的头部的坐标,按照方向的不同,增加或减少坐标(X,Y)的值
,就可获取新蛇头部的坐标,作为新的头部添加进入数组即可。
蛇吃到了食物,是长度增加一,同时更新得分榜,于蛇移动的方法类似。
九、UML类图
十、 尚待更新的想法
1.Socket网络交互能更加流畅化
2.能够用数据库存储大量用户数据、更新大量排行榜信息