网络阿文

导航

 

1.团队介绍

团队成员介绍

刘聚文(组长)

 负责工作:负责实现排行榜,游戏中食物道具的实现以及整个项目的推进,以及博客园的编写。

吴彬凯

 负责工作:负责GUI界面的编写,界面美化,游戏运行框架以及障碍物的设置。      

2.前期调查

参考别人的贪吃蛇考察基本元素,整个游戏最主要是地图以及蛇,食物,可组成最基本功能,在此基础上添加别的功能。

3.主要功能流程图

4.面向对象类图

此处GUI类图省略

5.项目运行截图

  • 注册

  • 菜单

  • 排行榜

  • 游戏界面

5.项目关键代码

  • 排行榜的获取
    将文件中的数据读取出来封装成User类,User类实现comparable接口,直接使用sort方法对成绩进行排序,在使用getRank方法返回排行榜
  • 食物产生的位置
    随机生成一个坐标,判断是否与蛇的坐标重合或者与障碍物位置重合,此处贴图高级难度判断代码。

  • 吃到食物的判断
    通过比较蛇头坐标与食物坐标相距是否小于10(格子大小60*60)来判断是否吃到食物,,若吃到,重新画蛇身并产生新食物。

6.项目代码扫描及更正

  • 在类前添加author说明类的作者,一开始没有添加。然后这里其实还可以写类的功能等等以标注。只要在类前用/** 然后回车,编辑author就可以了

  • 驼峰命名法,一开始习惯性的用了JLabel等,然后扫描的时候改成了jLabel等变量名

  • 沿袭了以前c语言的习惯,习惯在行尾添加两个/注释代码,通过扫描得知不能在行尾注释代码,需要放到其他行注释

  • 不过也有一些不太懂的地方,不知道应该如何改,如这个过时的类和方法,因为接近答疑了,所以没有来得及改正。还有方法不超过80行,也没来得及去把它简化。

  • 还有就是魔法值, 如果直接写j=j+2的话他会说不允许出现魔法值,然后我就把2赋给s,然后j=j+s,感觉这个警告有点不适应,因为以前这样写都是直接出现数字,而不是弄一个变量

  • 覆写方法要用@Override注解

  • 不符合lowerCamelCase命名,一开始是直接就想到了Music这个命名感觉比较形象
    但是好像都得用两个单词合起来的命名方法

  • 有时候注释需要javadoc的格式注释 用/** +内容+*/

7.项目总结

 本次项目最大的感想就是更深层次的理解了面向对象,由于借鉴别人代码,基本框架写的不是很好,功能方面基本达到预期效果,不足之处在于UI太丑,使用文件没用到数据库,没有使用到gitee,,但了解到是一个强大的协同的合作项目工具,地图设置太大很不合理,以及界面之间的交互不太合理,有待改进。
posted on 2020-01-09 20:05  淼淼淼淼淼  阅读(525)  评论(0编辑  收藏  举报