1 绪论
1.1 项目概述
项目内容:GUI显示游戏界面,用户通过键盘控制实现俄罗斯方块的左移、游戏、旋转以及下落功能,最终实现累计消行,积分的功能。
项目要求:可以在游戏完成后输入用户姓名、游戏账号,然后对姓名、账号以及分数进行保存。主要分为四大块:GUI界面,游戏类,方块类,数据库。
a) GUI界面:分为游戏区和信息区;
b) 游戏类:开始游戏,绘制下落方格形状,游戏开始函数,判断是否可以进行下落,将有方块的地方进行标记,消除一整行方块,进行加分,刷新游戏主面板区域,清除方块掉落之前有颜色的地方,绘制掉落后方块的图形;
c) 方块类:7种类型,19种形态,同一类型的不同形态进行转换,方块左移,右移,快速下落;
d) 数据库:对用户的信息进行保存。
1.2 项目意义
俄罗斯方块是一款风靡全球的游戏,俄罗斯方块的基本规则是移动、旋转和摆放游戏随机输出各种形状的方块。由于上手简单,老少皆宜,深受大家的喜爱。游戏在中国人的眼里,是耽误学生进步的主要原因,但是,俄罗斯方块这个游戏可以锻炼反应能力,专注能力,手速等等,在一定程度上提高自己的能力。在娱乐时提高,在休息时进步。
2 开发工具和相关技术简介
本项目是俄罗斯方块。开发环境:Eclipse、MySQL;开发语言:Java语言;开发技术:GUI、JDBC等。本章将对开发工具和相关技术进行简单介绍。
2.1 Eclipse简介(或者MyEclipse或者IEDA简介)
Eclipse是一个开放源代码的、基于Java的可扩展开发平台,是世界上最大的开源组织的产品。就其本身而言,它只是一个框架和一个服务,用于通过插件组件构造开发环境。幸运的是。Eclipse附带了一个标准的插件集,包括Java开发工具。
2.2 Java语言介绍
Java语言是一门面向对象的编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。Java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程。
Java语言的优点:
- 简单;
- 面向对象
- 跨平台
- 健壮性
- 安全性
- 多线程
- 动态
- 使用广泛
2.3 MySQL简介
MySQL是一款安全、跨平台、高效的,并与PHP、Java等主流编程语言紧密结合的数据库系统。MySQL功能强大,提供了多种数据库存储引擎,各引擎各有所长,适用于不同的应用场合,运行速度快,支持面向对象,数据库存储容量大,支持强大的内置函数。
2.4 JDBC技术简介
JDBC (Java Database Connectivity,Java数据库连接) 是一套面向对象的应用程序接口,指定了统一的访问各种关系型数据库的标准接口。JDBC是一种底层的API。因此访问数据库时需要在业务逻辑层中嵌入SQL语句。SQL语句是面向关系的,依赖于关系模型,所以通过JDBC技术访问数据库也是面向关系的。
JDBC技术主要完成以下几个任务:与数据库建立一个连接,向数据库发生SQL语句,处理从数据库返回的结果。
需要注意的是,JDBC并不能直接访问数据库,必须依赖于数据库厂商提供的JDBC驱动程序。下面详细介绍JDBC驱动程序的分类。
3 系统需求分析
3.1 系统可行性分析
技术上可行:运用Eclipse,GUI,JDBC,JAVA基础知识来实现;
经济上可行:所有软件免费使用;
操作上可行:运用已掌握的JAVA知识,通过视频学习GUI和JDBC;
综上所述,项目可行。
3.2 系统需求分析
俄罗斯方块:游戏开始,方块下落,在下落过程中实现方块的移动和变形,最终实现满行消除功能,记录得分;游戏结束后,输入姓名和账号,利用数据库保存信息。信息在数据库中查看。
图3-1 俄罗斯方块功能模块
3.3 组内成员分工
表3-1 组内成员分工情况表
|
序号 |
姓名 |
组内角色 |
小组分工 |
备注 |
|
01 |
秦紫薇 |
组长 |
游戏,数据库 |
无 |
|
02 |
孙丹丹 |
组员 |
方块 |
无 |
|
03 |
赵泽欢 |
组员 |
GUI界面 |
无 |
说明:组内角色:组长为项目经理;其他人分别为编码、测试、架构师等。
3.4 进度安排
进度安排如表3-2所示。
表3-2 进度安排表
|
阶段 |
持续时间 |
阶段描述 |
输出 |
|
构思阶段 |
5小时 |
需求分析 |
需求说明,功能模块图 |
|
设计阶段 |
5小时 |
系统设计 |
设计说明-可以画流程图;数据库设计 |
|
实现阶段 |
4天 |
编写代码 |
项目工程源代码 |
|
1天 |
系统测试 |
进行黑盒测试(功能测试)-测试说明 |
|
|
运行阶段 |
5小时 |
部署、运行 |
系统使用说明、运维报告-答辩 |
4 系统设计
4.1 系统设计
根据系统的实际功能需求分析,对系统功能部分进行了设计。
俄罗斯方块:游戏开始后,方块下落,通过键盘监听“a”键实现左移,监听“d” 键实现右移, 监听“s” 键实现下移, 监听“w” 键实现旋转,满一行消一行,直至方块堆积到距离上方边缘4个空格时游戏结束。结束后输入姓名和账号,统计积分,将信息保存到数据库中。
4.2 数据库设计
根据系统需求分析设计了1张表,为用户信息表。具体信息如表4-1所示。
表4-1 管理员信息表
|
序号 |
字段名 |
数据类型 |
约束 |
是否为空 |
说明 |
|
1 |
accountNum |
varchar(255) |
主键 |
否 |
游戏账号 |
|
2 |
name |
varchar(255) |
|
否 |
用户姓名 |
|
3 |
score |
int(10) |
|
否 |
得分 |
5 系统实现
5.1 游戏初始界面
用户通过运行,显示游戏初始界面如图5-1所示。
图5-1 游戏初始界面
5.2游戏结束界面
当最上面四行有方块时,随机产生的方块就无法下落,游戏结束。
图5-2 游戏结束界面
5.3数据库
图5-3 信息保存界面
6 系统测试
在俄罗斯模块中主要对GUI界面、方块的移动形状以及变化、游戏功能模块进行测试,测试结果如表6-1所示。
表6-1 俄罗斯方块模块测试表
|
编号 |
测试功能 |
输入描述 |
预期结果 |
运行结果 |
|
C01 |
GUI界面 |
点击运行 |
可以正常显示出GUI界面 |
正常,与预期结果一致 |
|
C02 |
方块 |
按键盘a,左移;按键盘d,右移 按键盘s,下移;按键w,变换 |
在游戏过程中,可以通过键盘的按键对方块进行移动和改变形状 |
正常,与预期结果一致 |
|
C03 |
游戏 |
无输入 |
方块可以下落,并且满行时消除,分数累加 |
正常,与预期结果一致 |
|
C04 |
数据库 |
点击界面保存按钮 |
将用户信息保存 |
正常,与预期结果一致 |
俄罗斯模块测试主要是针对用户的操作,从测试结果中可以看出该模块的所有功能均能正常实现,且测试结果与预期结果一致。
7 结论和心得
学生1姓名:秦紫薇
心得:这两周时间是检验我们对JAVA的学习成果,考察我们动手能力,思维能力。通过综合项目,我收获了很多,首次在团队协作上大家积极配合,尽力完成这次项目,非常感谢大家,在项目过程中,一起讨论,一起解决问题,是非常快乐的一件事;其次在思考问题的过程中,从以前的只顾眼前到现在的深入其中,这使我们对知识的掌握更进一步;最后,一定要有明确的目标,有目标就会有动力,希望我们今后在目标的带领下走向更美好的明天!期间通过查资料,视频学习学到了很多新知识,从开始的迷茫到后来的掌握再到灵活运用,感谢老师们的付出,您辛苦了!以后的学习中我会更努力,学无止境。
学生2姓名:孙丹丹
心得:通过这次项目,使我受益匪浅,感悟最深有以下几点:一、明确分工很重要。每个人的任务确定之后,各司其职,有利于明确责任,发挥个人的主观能动性,使其既知道自己应该做什么,又思考怎样做好。在集体项目时。二、做事前先做计划,再开展行动。在做俄罗斯方块项目时,大家并没有先急于写代码,而是每个人先找好自己的位置,小组讨论,相互协助,最终做出了这个小游戏。现实生活中也是如此,我们做任何事情,都需要有一个明确的目标,只有确定了前进的方向和最终需要达到的结果,才能确定过程中所采取的方向与步骤。所以,只有规划好全局的目标和方向,才能做到事半功倍。三、团队协作的重要性。有时候一个人的力量是不够的,需要团队合作来完成,要相信自己,相信团队,齐心协力做好每项工作,我们会做的更好。四、注意用户体验。从用户使用的感觉中寻找可以改进的地方,在制定需求的时候,一定要将必要的细节、人性化的设定、对用户体验很重要的东西,写到主体需求里去。避免出现返工。此外,这个项目运用了java面向对象、数据库、GUI等知识点,我对此有了更深的了解。
学生3姓名:赵泽欢
心得:这次的综合项目是通过小组分工合作,互相帮助完成。通过此次的综合项目,我学到了很多,也让我获得了很高的成就感。项目实现过程中遇到了很多问题,我通过向老师,组员询问和网上查找资料解决了遇到的问题。比如,由于我设置的是游戏界面,在设置方块时遇到困难,我通过网上查找资料解决了这个对于我来说很难的问题,再比如,在项目基本完成时,为了美观,我们决定添加背景图,在小组成员的共同努力下我们也解决了这个问题。通过此次综合项目,我学到最重要的就是与组员之间的互相协作,在与组员之间互相协作之下完成此次项目是我最大的成就感。