一、团队名称、团队成员介绍、任务分配,团队成员课程设计博客链接

团队名称:404 NOT FOUND

团队成员介绍:

             组长:网络1713 张庆旺 201721123072

                         负责模块 :网络交互、贪吃蛇问题解决

             组员:网络1713 林大擘 201721123075   

                         负责模块 :博客撰写、排行榜功能实现、背景音乐

             组员:网络1713 傅润达 2017211230

                         负责模块 :  GUI界面、贪吃蛇问题解决

 

二、项目简介

    通过对键盘的监听实现贪吃蛇的移动,通过客户端和服务器的交互,实现客户端获取服务端IP地址,实现双人对战,同时判定双方之间的得分更高的胜者,加入排行榜。

 

三、项目采用技术

    GUI图形界面、Socket网络交互、文件流、多线程

 

四、项目Git地址

 

     Git地址

 

五、项目git提交记录截图(要体现出每个人的提交记录、提交说明)

 

 

 

六、项目功能结构图与主要功能结构图

 

 

 

 

七、项目运行截图或屏幕录制

 

 

八、项目关键代码讲解

 

1.碰撞检测,包括 蛇A碰到蛇B、蛇吃到食物、蛇碰到墙体

   我们将地图划分为一个很大的二维数组,通过坐标的重合,来检测碰撞,产生不同的效果。

2.蛇移动的同时、实现面板的刷新

  

3.蛇的产生、移动的方法

 (1)产生蛇的 creatSnake 方法:

         蛇的本身是LinkedList数组,采用链表存储蛇的身体坐标,方便于蛇的身体的增加、移动

 

(2)蛇移动实现的方法:

    蛇的移动,其本质来说是蛇头部的移动,因此,只需要改变蛇的头部的坐标,按照方向的不同,增加或减少坐标(X,Y)的值

,就可获取新蛇头部的坐标,作为新的头部添加进入数组即可。

    蛇吃到了食物,是长度增加一,同时更新得分榜,于蛇移动的方法类似。

 

 

九、UML类图

 

十、 尚待更新的想法

1.Socket网络交互能更加流畅化

2.希望能够用数据库存储用户数据、并更新排行榜信息