(精品论文)连连看java小游戏毕业设计论文_第1页
(精品论文)连连看java小游戏毕业设计论文_第2页
(精品论文)连连看java小游戏毕业设计论文_第3页
(精品论文)连连看java小游戏毕业设计论文_第4页
(精品论文)连连看java小游戏毕业设计论文_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

VisionSky 北京华际友天信息科技有限公司 (与标题内容相符)连连看Java小游戏毕业论文(设计)学生姓名: 学号:系别:软件技术专业:软件技术指导教师: 评 审 日 期: 第 2 页 共 18 页目 录1导言11.1目的11.2范围11.3缩写说明 java11.4术语定义11.5引用标准11.6参考资料21.7版本更新信息22系统定义22.1项目来源及背景22.2项目要达到的目标23应用环境33.1游戏硬件环境33.2游戏运行软件环境34代码设计:35性能需求125.1界面需求125.2响应时间需求135.3开放性需求135.4可扩展性需求136产品提交137实现约束138总结14完成这次设计任务总共用了一个星期时间,前两个日用来收集资料、学习要用到的各项开发技术、进行游戏的系统分析,第三日用来设计系统,第四天来测试及修改。论文的撰写一直贯穿其中。149参考文献1410致 谢15软件071班java项目设计 吴义平 1 导言1.1 目的该文档是关于用户对于连连看Java小游戏的功能和性能的要求,重点描述了连连看Java小游戏的设计需求,将作为小游戏的说明。本文档的预期读者是:l 设计人员刘卫、吴义平l 开发人员 刘卫、吴义平l 项目管理人员l 测试人员l 用户1.2 范围该文档是借助于当前系统的逻辑模型导出目标系统的逻辑模型,解决整个游戏的“做什么”的问题。在这里,对于开发技术并没有涉及,而主要是通过建立模型的方式来描述用户的需求,为客户、用户、开发方等不同参与方提供一个交流的渠道。1.3 缩写说明 javaJava Server Page(Java服务器页面)的缩写,一个脚本化的语言。UMLJava 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 版本更新记录修改编号修改日期修改后版本修改位置修改内容概述001200911050.1全部初始发布版本2 系统定义我们分别阐述一下项目的来源、背景和项目的目标。2.1 项目来源及背景本项目的是是您的生活不再乏味,让你看到自己的智慧和天赋,使自己对自己更加充满信心。相信通过此游戏会让你看到自己聪明的一面。现在生活忙忙碌使人的心理和身体健康受到很大的威胁。为了解决些问题特此开发了连连看小游戏。2.2 项目要达到的目标本项目设定的目标如下:1. 系统能够提供友好的用户界面,使操作人员的心情放松2. 系统具有良好的运行效率,能够得到快速发现自我的目的3. 系统应有良好的可扩充性,可以容易的转入其它系统应用。4. 平台的设计具有一定的灵活性。3 应用环境 本项目的应用环境可以分硬件环境、软件环境和网络环境来描述。3.1 游戏硬件环境本系统的硬件环境如下:l 客户机:普通PCn CPU:P4 1.8GHzn 内存:256MB以上n 分辨率:推荐使用1024*768像素l 数据库服务器n CPU:P4 1.8GHzn 内存:256MB以上3.2 游戏运行软件环境l 操作系统:Windows 2000/xpl 开发环境:ecplisemel 开发工具包:JDK Version 1.624 代码设计:一简单代码设计: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 JButton65;/游戏按钮数组 11. JButton exitButton,resetButton,newlyButton; /退出,重列,重新开始按钮 12. JLabel fractionLable=new JLabel(0); /分数标签 13. JButton firstButton,secondButton; /分别记录两次被选中的按钮 14. int grid = new int87;/储存游戏按钮位置 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 JButton65;/游戏按钮数组 JButton exitButton,resetButton,newlyButton; /退出,重列,重新开始按钮 JLabel fractionLable=new JLabel(0); /分数标签 JButton firstButton,secondButton; /分别记录两次被选中的按钮 int grid = new int87;/储存游戏按钮位置 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+ ) diamondsButtoncolsrows=new JButton(String.valueOf(gridcols+1rows+1); diamondsButtoncolsrows.addActionListener(this); centerPanel.add(diamondsButtoncolsrows); 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(gridcolsrows!=0) cols=(int)(Math.random()*6+1); rows=(int)(Math.random()*5+1); this.gridcolsrows=randoms; 3.计数:public void fraction() fractionLable.setText(String.valueOf(Integer.parseInt(fractionLable.getText()+100); 4.重新加载;public void reload() int save = new int30; int n=0,cols,rows; int grid= new int87; for(int i=0;i=6;i+) for(int j=0;j=0) cols=(int)(Math.random()*6+1); rows=(int)(Math.random()*5+1); while(gridcolsrows!=0) cols=(int)(Math.random()*6+1); rows=(int)(Math.random()*5+1); this.gridcolsrows=saven; n-; mainFrame.setVisible(false); pressInformation=false; /这里一定要将按钮点击信息归为初始 init(); for(int i = 0;i 6;i+) for(int j = 0;j 5;j+ ) if(gridi+1j+1=0) diamondsButtonij.setVisible(false); 5.判断所单击的两次数是否相同:public void estimateEven(int placeX,int placeY,JButton bz) if(pressInformation=false) x=placeX; y=placeY; secondMsg=gridxy; secondButton=bz; pressInformation=true; else x0=x; y0=y; fristMsg=secondMsg; firstButton=secondButton; x=placeX; y=placeY; secondMsg=gridxy; 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;jj) /如果第二个按钮的Y坐标大于空按钮的Y坐标说明第一按钮在第二按钮左边 for (i=y-1;i=j;i- ) /判断第二按钮左侧直到第一按钮中间有没有按钮 if (gridxi!=0) k=0; break; else k=1; /K=1说明通过了第一次验证 if (k=1) linePassOne(); if (yj) /如果第二个按钮的Y坐标小于空按钮的Y坐标说明第一按钮在第二按钮右边 for (i=y+1;i=j ;i+ ) /判断第二按钮左侧直到第一按钮中间有没有按钮 if (gridxi!=0) k=0; break; else k=1; if (k=1) linePassOne(); if (y=j ) linePassOne(); if (k=2) if (x0=x) remove(); if (x0x) for (n=x0;nx) for (n=x0;n=x+1 ;n- ) if (gridnj!=0) k=0; break; if(gridnj=0 & n=x+1) remove(); for (i=0;ii) for (j=x-1;j=i ;j- ) if (gridjy!=0) k=0; break; else k=1; if (k=1) rowPassOne(); if (xi) for (j=x+1;j=i;j+ ) if (gridjy!=0) k=0; break; else k=1; if (k=1) rowPassOne(); if (x=i) rowPassOne(); if (k=2) if (y0=y) remove(); if (y0y) for (n=y0;ny) for (n=y0;n=y+1 ;n-) if (gridin!=0) k=0; break; if(gridin=0 & n=y+1) remove(); 7.判断同行是否可消除:public void linePassOne() if (y0j) /第一按钮同行空按钮在左边 for (i=y0-1;i=j ;i- ) /判断第一按钮同左侧空按钮之间有没按钮 if (gridx0i!=0) k=0; break; else k=2; /K=2说明通过了第二次验证 if (y0j) /第一按钮同行空按钮在与第二按钮之间 for (i=y0+1;ii) for (j=x0-1;j=i ;j- ) if (gridjy0!=0) k=0; break; else k=2; if (x0i) for (j=x0+1;j=i ;j+ ) if (gridjy0!=0) k=0; break; else k=2; 9.消除所选按钮:public void remove() firstButton.setVisible(false); secondButton.setVisible(false); fraction(); pressInformation=false; k=0; gridx0y0=0; gridxy=0; 10.按钮的相应事件public void actionPerformed(ActionEvent e) if(e.getSource()=newlyButton) int grid = new int87; 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()=diamondsButtoncolsrows) estimateEven(cols+1,rows+1,diamondsButtoncolsrows); 11.游戏的入口:public static void main(String args

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论