连连看Java小游戏毕业设计论文
更新时间:2023-09-03 12:17:01 阅读量: 教育文库 文档下载
- JAVA小游戏毕业设计推荐度:
- 相关推荐
安徽电子信息职业技术学院
--软件学院
连连看Java小游戏毕业论文(设计)
学生姓名:吴义平
学 号:070202104
系 别:软件技术
专 业:软件技术
指导教师: 孔鹏
评 审 日 期: 2009年11月4日
软件071班
目 录
1
导言........................................................................................................................ 1 1.1 目的........................................................................................................... 1 1.2 范围........................................................................................................... 1 1.3 缩写说明 java ...................................................................................... 1 1.4 术语定义................................................................................................... 1 1.5 引用标准................................................................................................... 1 1.6 参考资料................................................................................................... 1 1.7 版本更新信息........................................................................................... 2 2 系统定义................................................................................................................ 2
2.1 项目来源及背景....................................................................................... 2 2.2 项目要达到的目标................................................................................... 2 3 应用环境................................................................................................................ 2
3.1 游戏硬件环境........................................................................................... 3 3.2 游戏运行软件环境................................................................................... 3 4 代码设计:............................................................................................................ 3 5 }性能需求............................................................................................................ 12
5.1 界面需求................................................................................................. 12 5.2 响应时间需求......................................................................................... 13 5.3 开放性需求............................................................................................. 13 5.4 可扩展性需求......................................................................................... 13 6 产品提交.............................................................................................................. 13 7 实现约束.............................................................................................................. 13 8 总结...................................................................................................................... 13
完成这次设计任务总共用了一个星期时间,前两个日用来收集资料、学习要用到的各项开发技术、进行游戏的系统分析,第三日用来设计系统,第四天来测试及修改。论文的撰写一直贯穿其中。.................. 错误!未定义书签。 9 参考文献.............................................................................................................. 14 10 致 谢.............................................................................................................. 14
1 导言
1.1 目的
该文档是关于用户对于连连看Java小游戏的功能和性能的要求,重点描述了连连看Java小游戏的设计需求,将作为小游戏的说明。
1.2 范围
该文档是借助于当前系统的逻辑模型导出目标系统的逻辑模型,解决整个游戏的“做什么”的问题。在这里,对于开发技术并没有涉及,而主要是通过建立模型的方式来描述用户的需求,为客户、用户、开发方等不同参与方提供一个交流的渠道。
1.3 缩写说明
java
Java Server Page(Java服务器页面)的缩写,一个脚本化的语言。
UML
Java Server Page(Java服务器页面)的缩写,一个脚本化的语言。
1.4 术语定义
无
1.5 引用标准
[1] 《企业文档格式标准》 V1.1 软件工程教案教程 [2] 《需求规格报告格式标准》 V1.1
软件工程教案教程
1.6 参考资料
[1] 《Java基础教程》 V1.1 软件工程教案教程 [2] 《需求规格报告格式标准》 V1.1
软件工程教案教程
1.7 版本更新信息
本文档的更新记录如表A-1。 表A-1 版本更新记录
2 系统定义
我们分别阐述一下项目的来源、背景和项目的目标。
2.1 项目来源及背景
本项目的是是您的生活不再乏味,让你看到自己的智慧和天赋,使自己对自己更加充满信心。相信通过此游戏会让你看到自己聪明的一面。现在生活忙忙碌使人的心理和身体健康受到很大的威胁。为了解决些问题特此开发了连连看小游戏。
2.2 项目要达到的目标
本项目设定的目标如下:
1. 系统能够提供友好的用户界面,使操作人员的心情放松 2. 系统具有良好的运行效率,能够得到快速发现自我的目的 3. 系统应有良好的可扩充性,可以容易的转入其它系统应用。 4. 平台的设计具有一定的灵活性。
3 应用环境
本项目的应用环境可以分硬件环境、软件环境和网络环境来描述。
3.1 游戏硬件环境
本系统的硬件环境如下: 客户机:普通PC
CPU:P4 1.8GHz 内存:256MB以上
分辨率:推荐使用1024*768像素 数据库服务器
CPU:P4 1.8GHz 内存:256MB以上
3.2 游戏运行软件环境
操作系统:Windows 2000/xp 开发环境:ecpliseme
开发工具包:JDK Version 1.62
4 代码设计:
一.简单代码设计:
1. //连连看java源代码 2. import javax.swing.*; 3. import java.awt.*;
4. import java.awt.event.*;
5. public class lianliankan implements ActionListener 6. {
7. JFrame mainFrame; //主面板 8. Container thisContainer;
9. JPanel centerPanel,southPanel,northPanel; //子面板
10. JButton diamondsButton[][] = new JButton[6][5];//游戏按钮数组 11. JButton exitButton,resetButton,newlyButton; //退出,重列,重新开始
按钮
12. JLabel fractionLable=new JLabel("0"); //分数标签
13. JButton firstButton,secondButton; //分别记录两次被选中的按钮 14. int grid[][] = new int[8][7];//储存游戏按钮位置
15. static boolean pressInformation=false; //判断是否有按钮被选中 16. int x0=0,y0=0,x=0,y=0,fristMsg=0,secondMsg=0,validateLV; //游戏按
钮的位置坐标
17. int i,j,k,n;//消除方法控制 18. public void init(){
19. } //开始方法: 20. }
21. public void randomBuild() { 22. } //产生随基数
23. public void fraction(){ 24. }//计数
25. public void reload() { 26. } //窗体的重新加载
27. public void estimateEven(int placeX,int placeY,JButton bz) { 28. } //判断两次点击的两次数:
29. public void xiao() { //相同的情况下能不能消去。仔细分析,不一条
条
30. } //相同的情况下能不能消去。仔细分析,不一条条 31.
32. public void linePassOne(){ 33. } //判断行是否可以消除: 34. public void rowPassOne(){ 35. } //判断列是否可消除; 36. public void remove(){ 37. } //消除所选按钮;
38. public void actionPerformed(ActionEvent e) { 39. } //监听事件;
40. public static void main(String[] args) { 41. }//游戏入口;
二.详细代码编写:
//连连看java源代码 import javax.swing.*; import java.awt.*;
import java.awt.event.*;
public class lianliankan implements ActionListener {
JFrame mainFrame; //主面板 Container thisContainer;
JPanel centerPanel,southPanel,northPanel; //子面板
JButton diamondsButton[][] = new JButton[6][5];//游戏按钮数组
JButton exitButton,resetButton,newlyButton; //退出,重列,重新开始按钮
JLabel fractionLable=new JLabel("0"); //分数标签
JButton firstButton,secondButton; //分别记录两次被选中的按钮 int grid[][] = new int[8][7];//储存游戏按钮位置
static boolean pressInformation=false; //判断是否有按钮被选中
int x0=0,y0=0,x=0,y=0,fristMsg=0,secondMsg=0,validateLV; //游戏按钮的位置坐标
int i,j,k,n;//消除方法控制
1.开始方法:
public void init(){
mainFrame=new JFrame("JKJ连连看");
thisContainer = mainFrame.getContentPane(); thisContainer.setLayout(new BorderLayout()); centerPanel=new JPanel(); southPanel=new JPanel(); northPanel=new JPanel();
thisContainer.add(centerPanel,"Center"); thisContainer.add(southPanel,"South"); thisContainer.add(northPanel,"North");
centerPanel.setLayout(new GridLayout(6,5)); for(int cols = 0;cols < 6;cols++){ for(int rows = 0;rows < 5;rows++ ){ diamondsButton[cols][rows]=new
JButton(String.valueOf(grid[cols+1][rows+1]));
diamondsButton[cols][rows].addActionListener(this); centerPanel.add(diamondsButton[cols][rows]); } }
exitButton=new JButton("退出"); exitButton.addActionListener(this); resetButton=new JButton("重列"); resetButton.addActionListener(this); newlyButton=new JButton("再来一局"); newlyButton.addActionListener(this); southPanel.add(exitButton); southPanel.add(resetButton); southPanel.add(newlyButton);
fractionLable.setText(String.valueOf(Integer.parseInt(fractionLable.getText())));
northPanel.add(fractionLable);
mainFrame.setBounds(280,100,500,450); mainFrame.setVisible(true); }
2.产生随基数:
public void randomBuild() { int randoms,cols,rows;
for(int twins=1;twins<=15;twins++) { randoms=(int)(Math.random()*25+1); for(int alike=1;alike<=2;alike++) {
cols=(int)(Math.random()*6+1); rows=(int)(Math.random()*5+1); while(grid[cols][rows]!=0) { cols=(int)(Math.random()*6+1); rows=(int)(Math.random()*5+1); }
this.grid[cols][rows]=randoms; } } }
3.计数:
public void fraction(){
fractionLable.setText(String.valueOf(Integer.parseInt(fractionLable.getText())+100)); }
4.重新加载;
public void reload() { int save[] = new int[30]; int n=0,cols,rows;
int grid[][]= new int[8][7]; for(int i=0;i<=6;i++) { for(int j=0;j<=5;j++) { if(this.grid[i][j]!=0) { save[n]=this.grid[i][j]; n++; } } }
n=n-1;
this.grid=grid; while(n>=0) {
cols=(int)(Math.random()*6+1); rows=(int)(Math.random()*5+1); while(grid[cols][rows]!=0) { cols=(int)(Math.random()*6+1); rows=(int)(Math.random()*5+1); }
this.grid[cols][rows]=save[n]; n--; }
mainFrame.setVisible(false);
pressInformation=false; //这里一定要将按钮点击信息归为初始
init();
for(int i = 0;i < 6;i++){ for(int j = 0;j < 5;j++ ){ if(grid[i+1][j+1]==0)
diamondsButton[i][j].setVisible(false); } } }
5.判断所单击的两次数是否相同:
public void estimateEven(int placeX,int placeY,JButton bz) { if(pressInformation==false) { x=placeX; y=placeY;
secondMsg=grid[x][y]; secondButton=bz; pressInformation=true; } else { x0=x; y0=y;
fristMsg=secondMsg; firstButton=secondButton; x=placeX; y=placeY;
secondMsg=grid[x][y]; secondButton=bz;
if(fristMsg==secondMsg && secondButton!=firstButton){ xiao(); } } }
6.消除所选的按钮:
public void xiao() { //相同的情况下能不能消去。仔细分析,不一条条注释 if((x0==x &&(y0==y+1||y0==y-1)) || ((x0==x+1||x0==x-1)&&(y0==y))){ //判断是否相邻 remove(); } else{
for (j=0;j<7;j++ ) {
if (grid[x0][j]==0){ //判断第一个按钮同行哪个按钮为空
if (y>j) { //如果第二个按钮的Y坐标大于空按钮的Y坐标说明第一按
钮在第二按钮左边
for (i=y-1;i>=j;i-- ){ //判断第二按钮左侧直到第一按钮中间有没有按钮 if (grid[x][i]!=0) { k=0; break; }
else{ k=1; } //K=1说明通过了第一次验证 }
if (k==1) { linePassOne(); } }
if (y<j){ //如果第二个按钮的Y坐标小于空按钮的Y坐标说明第一按钮在第二按钮右边
for (i=y+1;i<=j ;i++ ){ //判断第二按钮左侧直到第一按钮中间有没有按钮
if (grid[x][i]!=0){ k=0; break; }
else { k=1; } }
if (k==1){ linePassOne(); } }
if (y==j ) { linePassOne(); } }
if (k==2) { if (x0==x) { remove(); }
if (x0<x) {
for (n=x0;n<=x-1;n++ ) { if (grid[n][j]!=0) { k=0; break; }
if(grid[n][j]==0 && n==x-1) { remove(); } }
}
if (x0>x) {
for (n=x0;n>=x+1 ;n-- ) { if (grid[n][j]!=0) { k=0; break; }
if(grid[n][j]==0 && n==x+1) { remove(); } } } } }
for (i=0;i<8;i++ ) { //列 if (grid[i][y0]==0) { if (x>i) {
for (j=x-1;j>=i ;j-- ) { if (grid[j][y]!=0) { k=0; break; }
else { k=1; } }
if (k==1) { rowPassOne(); } }
if (x<i) {
for (j=x+1;j<=i;j++ ) { if (grid[j][y]!=0) { k=0; break; }
else { k=1; } }
if (k==1) { rowPassOne(); } }
if (x==i) { rowPassOne(); } }
if (k==2){ if (y0==y) { remove(); }
if (y0<y) {
for (n=y0;n<=y-1 ;n++ ) { if (grid[i][n]!=0) { k=0; break; }
if(grid[i][n]==0 && n==y-1) { remove(); } } }
if (y0>y) {
for (n=y0;n>=y+1 ;n--) { if (grid[i][n]!=0) { k=0; break; }
if(grid[i][n]==0 && n==y+1) { remove(); } } } } } } }
7.判断同行是否可消除:
public void linePassOne(){
if (y0>j){ //第一按钮同行空按钮在左边
for (i=y0-1;i>=j ;i-- ){ //判断第一按钮同左侧空按钮之间有没按钮 if (grid[x0][i]!=0) { k=0; break; }
else { k=2; } //K=2说明通过了第二次验证 } }
if (y0<j){ //第一按钮同行空按钮在与第二按钮之间 for (i=y0+1;i<=j ;i++){
if (grid[x0][i]!=0) { k=0; break; }
else{ k=2; } } } }
8.判断列是否可消除:
public void rowPassOne(){ if (x0>i) {
for (j=x0-1;j>=i ;j-- ) { if (grid[j][y0]!=0) { k=0; break; }
else { k=2; } } }
if (x0<i) {
for (j=x0+1;j<=i ;j++ ) { if (grid[j][y0]!=0) { k=0; break; }
else { k=2; } } } }
9.消除所选按钮:
public void remove(){
firstButton.setVisible(false); secondButton.setVisible(false); fraction();
pressInformation=false; k=0;
grid[x0][y0]=0; grid[x][y]=0; }
10.按钮的相应事件
public void actionPerformed(ActionEvent e) {
if(e.getSource()==newlyButton){ int grid[][] = new int[8][7]; this.grid = grid; randomBuild();
mainFrame.setVisible(false); pressInformation=false; init(); }
if(e.getSource()==exitButton) System.exit(0);
if(e.getSource()==resetButton) reload();
for(int cols = 0;cols < 6;cols++){ for(int rows = 0;rows < 5;rows++ ){
if(e.getSource()==diamondsButton[cols][rows])
estimateEven(cols+1,rows+1,diamondsButton[cols][rows]); } } }
11.游戏的入口:
public static void main(String[] args) { lianliankan llk = new lianliankan(); llk.randomBuild(); llk.init(); } }.
5 }性能需求
根据用户对本系统的要求,确定系统在响应时间、可靠性、安全等方面有较高的性能要求。
5.1 界面需求
游戏的界面要求如下:
1)页面内容:主题突出,站点定义、术语和行文格式统一、规范、明确,栏目、菜单设置和布局合理,传递的信息准确;专用术语规范,行文格式统一规范。
2)艺术风格:界面、版面形象清新悦目、布局合理,字号大小适宜、字体选择合理,前后一致,美观大方;动与静搭配恰当,动静效果好;色彩和谐自然,与主题内容相协调。
5.2 响应时间需求
无论是什么游戏,当用户登录,进行任何操作的时候,系统应该及时的进行反应,反应的时间在2秒以内。游戏应能监测出各种非正常情况,避免出现长时间等待甚至无响应。
5.3 开放性需求
游戏应具有十分的灵活性,以适应将来功能扩展的需求。
5.4 可扩展性需求
游戏设计要求能够体现扩展性要求,以适应将来功能扩展的需求。
6 产品提交
提交产品为: a) 应用系统软件包 b) 数据库初始数据 c) 系统开发过程文档 d) 系统使用维护说明文档
提交方式:CD介质
7 实现约束
系统的实现约束如下:
a) 操作系统为Win2000
b) 开发平台为:eclipse-jDK-3.1.2-win32
8 总结
通过此项目的实践,我从中积累了一部分java小项目开发的经验,掌握了部分java类的使用方法,为以后从事软件开发工作奠定了一定的基础。
9 参考文献
主要参考资料:
1.贾素玲、王强主编,张成、朱磊、方敬编著 Java应用开发技术; 2.雷之宇 主编,孙颖、雷鸣宇、赵宇阳 编著 JAVA项目开发实践—网络篇。
10 致 谢
从接受课题到现在完成毕业设计论文,衷心的感谢孔鹏老师给予了精心的指导和热情的帮助,在短暂的两年多大学时光里,同学和朋友们也给了我无私的帮助与支持,在此我对所有学习和生活上帮助过我的同学们表示深深的谢意!
正在阅读:
连连看Java小游戏毕业设计论文09-03
感动中国人物颁奖词02-18
邮政储汇业务员中级复习题209-29
10月自考成本会计学模拟试题及答案09-20
毕业设计:FLASH课件设计与制作毕业设计论文 - 图文06-02
七大新兴产业资料01-24
新时代中小学劳动教育质量评价体系05-04
公路沉降观测方案 - 图文10-07
红十字基本知识竞赛试卷03-18
- exercise2
- 铅锌矿详查地质设计 - 图文
- 厨余垃圾、餐厨垃圾堆肥系统设计方案
- 陈明珠开题报告
- 化工原理精选例题
- 政府形象宣传册营销案例
- 小学一至三年级语文阅读专项练习题
- 2014.民诉 期末考试 复习题
- 巅峰智业 - 做好顶层设计对建设城市的重要意义
- (三起)冀教版三年级英语上册Unit4 Lesson24练习题及答案
- 2017年实心轮胎现状及发展趋势分析(目录)
- 基于GIS的农用地定级技术研究定稿
- 2017-2022年中国医疗保健市场调查与市场前景预测报告(目录) - 图文
- 作业
- OFDM技术仿真(MATLAB代码) - 图文
- Android工程师笔试题及答案
- 生命密码联合密码
- 空间地上权若干法律问题探究
- 江苏学业水平测试《机械基础》模拟试题
- 选课走班实施方案
- 毕业设计
- 连连看
- 小游戏
- 论文
- Java
- 学校围棋兴趣小组活动计划
- 2018-2019人教版小学语文二年级上册单元测试题(全套)
- 小学生防范性侵害宣传材料(整合)
- 逆境更有利于人成长辩论赛一稿
- 学生体质健康宣传标语
- 浅谈大学新生问题及入学教育对策
- 热电厂干煤棚钢结构制造安装施工组织设计
- 06180301_多联机(热泵)空调系统制冷剂管路连接及控制开关安装检验批质量验收记录
- 学校食堂档案档案管理制度
- 内蒙古自治区投资项目在线审批办事大厅指南
- 大学无机化学第三章试题及答案
- 部编本人教版四年级上册语文5小田鼠弗雷德里克教案
- 山西旅游网络营销——开题报告
- 2020年豪华日历(含农历、周历、节气)
- WMO世界奥林匹克数学竞赛第九届全国总决赛天津9年级初赛试卷
- Macromedia DreamWeaver 8.0官方简体中文安装教程
- The art of public speaking chapter 1 .2 .3
- 徽文化图形元素在白酒包装设计中的应用
- QPA审核流程清单
- 西南大学心理健康节策划书