版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、java课设基于Java的连连看游戏软件设计(含源文件)沈阳理工大学课程设计报告目录1. 课设软件主要功能12. 类总体设计1 类组合关系图2 主类2 其它类33. 类详细设计(画UML 图),对类成员详细说明3 Lianliankan类(主类)“33. 1. 1方法设计3成员变量74. 关键类成员函数流程图及代码(详细注释)8关键类成员函数流程图84. 1. 1主函数84. 1. 2算法流程图9程序代码(节选)105. 软件运行结果13 结论14 参考文献14沈阳理工大学课程设计报告11. 课设软件主要功能(1)、用户可以通过点击JDK 中的“执行文件”,开始新游戏程序【1】【2】。程序会载
2、入数字,并通过特定的算法排列数字,并标记数字,以便判断数字是否相同。记录数字坐标,以方便计算数字是否可以相连。确定数字大小,以确定用户点击的是哪个数字。图1 数字连接方式(2)、用户选择两张一样的数字,通过鼠标进行选取(如图1),如果用户两次点击的数字不相同,那么系统认为用户没有点(鼠标记数归 0),以完成用户以后的选取工作。如果用户选择的是相同的数字,那么系统会消除这两个数字,并使鼠标记数为 0,并消除这两个数字的标记,使里面的数字被标记在外面。以便用户可以进行以后的选择。(3)、用户也可使通过使用“重列”功能进行数字重新排版。(4)、用户点击“再来一局”重新开始新的游戏。(5)、用户点击“
3、退出”结束游戏。2. 类总体设计数字连连看游戏程序中只有一个类,类名为Lianliankan ,该类实现了接口ActionListener ;该类总共有十一个方法,他们的功能分别是:init()初始化;randomBuild ()产生十五对随机数字;fraction()计算得分;reload()将游戏按钮重列;estimateEven(int placeX,int placeY,JButton bz) 传进两个int 型和一个JButton 型的三个参数(分别是击中的按钮位置坐标和按钮),选中按钮信息的存储与操作;xiao()消去符合游戏规则的相同的两个按钮;linePassOne()在第一个
4、按钮同行有空按钮的条件下判断第二个转折点出现的情况;rowPassOne()在第一个按钮同列有空按钮的条件下判断第二个转折点出现的情况;remove():将相同的两个按钮消去;actionPerformed()实现按钮事件的监听;main()主方法。【3】沈阳理工大学课程设计报告2 类组合关系图图主类组合关系图【4】 主类:Lianliankan 类程序代码如下【5】【6】:public class Lianliankan implements ActionListenerJFramemainFrame; /主面板Container thisContainer;JPanelcenterPane
5、l,southPanel,northPanel; /子面板JButtondiamondsButton = new JButton65;/游戏按钮数组JButtonexitButton,resetButton,newlyButton; /退出,重列,重新开始按钮 JLabelfractionLable=new JLabel(“0”); /分数标签JButtonfirstButton,secondButton; /分别记录两次被选中的按钮int grid = new int87;/储存游戏按钮位置沈阳理工大学课程设计报告3static booleanpressInformation=false;
6、/判断是否有按钮被选中int x0=0,y0=0,x=0,y=0,fristMsg=0,secondMsg=0,validateLV; /游戏按钮的位置坐标 inti,j,k,n;/消除方法控制 其它类Lianliankan 类只有一个主类,其他都是主类里面的方法,例如:randomBuild()、remove()、main(String args)等。3. 类详细设计(画UML 图),对类成员详细说明 Lianliankan 类(主类) 方法设计1)主类Lianliankan 的UML 关系图:图 UML类图2)主类Lianliankan 与方法的数据视图:图成员方法图沈阳理工大学课程设计报
7、告4注:1、 init() :初始化2、 randomBuild ():产生十五对随机数字代码如下:public void randomBuild() int randoms,cols,rows;for(int twins=1;twinsrandoms=(int)()*25+1);for(int alike=1;alikecols=(int)()*6+1);rows=(int)()*5+1);while(gridcolsrows!=0) cols=(int)()*6+1);rows=(int)()*5+1);colsrows=randoms;3、 fraction():计算得分4、 reloa
8、d():将游戏按钮重列5、 estimateEven(int placeX,int placeY,JButton bz):传进两个int 型和一个JButton 型的三个参数(分别是击中的按钮位置坐标和按钮),选中按钮信息的存储与操作代码如下:public void estimateEven(int placeX,int placeY,JButton bz) if(pressInformation=false) x=placeX;y=placeY;secondMsg=gridxy;secondButton=bz;pressInformation=true;沈阳理工大学课程设计报告5else x
9、0=x;y0=y;fristMsg=secondMsg;firstButton=secondButton;x=placeX;y=placeY;secondMsg=gridxy;secondButton=bz;if(fristMsg=secondMsg & secondButton!=firstButton)xiao();6、 xiao():消去符合游戏规则的相同的两个按钮7、 linePassOne()、rowPassOne():在第一个按钮同行、列有空按钮的条件下判断第二个转折点出现的情况8、 remove():将相同的两个按钮消去代码如下:public void remove()(fals
10、e);(false);fraction();pressInformation=false;k=0;gridx0y0=0;gridxy=0;9、 actionPerformed(ActionEvent e):实现按钮事件的监听代码如下:public void actionPerformed(ActionEvent e) if()=newlyButton)int grid = new int87;沈阳理工大学课程设计报告6 = grid;randomBuild();(false);pressInformation=false;init();if()=exitButton)(0);if()=rese
11、tButton)reload();for(int cols = 0;cols for(int rows = 0;rows if()=diamondsButtoncolsrows)estimateEven(cols+1,rows+1,diamondsButtoncolsrows); 10、 main(String args):主方法,开始程序运行代码如下:public static void main(String args) Lianliankan llk = new Lianliankan();();();沈阳理工大学课程设计报告7成员变量图 成员变量图代码如下(含注释):public cl
12、ass Lianliankan implements ActionListenerJFramemainFrame; /主面板Container thisContainer;JPanelcenterPanel,southPanel,northPanel; /子面板JButtondiamondsButton = new JButton65;/游戏按钮数组JButtonexitButton,resetButton,newlyButton; /退出,重列,重新开始按钮 JLabelfractionLable=new JLabel(“0”); /分数标签JButtonfirstButton,second
13、Button; /分别记录两次被选中的按钮int grid = new int87;/储存游戏按钮位置static booleanpressInformation=false; /判断是否有按钮被选中int x0=0,y0=0,x=0,y=0,fristMsg=0,secondMsg=0,validateLV; /游戏按钮的位置坐标 inti,j,k,n;/消除方法控制沈阳理工大学课程设计报告84. 关键类成员函数流程图及代码(详细注释)关键类成员函数流程图主函数图 主函数流程图【8】沈阳理工大学课程设计报告9算法流程图图 算法模块流程图【8】沈阳理工大学课程设计报告10程序代码(节选)【9】
14、public void xiao() /相同的情况下能不能消去。仔细分析,不一条条注释if(x0=x &(y0=y+1|y0=y-1) | (x0=x+1|x0=x-1)&(y0=y)/判断是否相邻remove();elsefor (j=0;jif (gridx0j=0)/判断第一个按钮同行哪个按钮为空if (yj) /如果第二个按钮的Y 坐标大于空按钮的Y 坐标说明第一按钮在第二按钮左边for (i=y-1;i=j;i- )/判断第二按钮左侧直到第一按钮中间有没有按钮if (gridxi!=0) k=0;break;else k=1; /K=1说明通过了第一次验证if (k=1)linePa
15、ssOne();if (y/如果第二个按钮的Y 坐标小于空按钮的Y 坐标说明第一按钮在第二按钮右边for (i=y+1;i/判断第二按钮左侧直到第一按钮中间有没有按钮if (gridxi!=0)k=0;break;else k=1; if (k=1)linePassOne();if (y=j )linePassOne();沈阳理工大学课程设计报告11if (k=2)if (x0=x)remove();if (x0for (n=x0;nk=0;break;if(gridnj=0 & n=x-1)remove();if (x0x)for (n=x0;n=x+1 ;n- ) if (gridnj!=
16、0)k=0;break;if(gridnj=0 & n=x+1)remove();for (i=0;iif (xi) for (j=x-1;j=i ;j- ) if (gridjy!=0)k=0;break;else k=1; if (k=1)rowPassOne();if (xfor (j=x+1;jk=0;break;else k=1; 沈阳理工大学课程设计报告12if (k=1)rowPassOne();if (x=i)rowPassOne();if (k=2)if (y0=y)remove();if (y0for (n=y0;nif (gridin!=0)k=0;break;if(gr
17、idin=0 & n=y-1)remove();if (y0y) for (n=y0;n=y+1 ;n-) if (gridin!=0)k=0;break;if(gridin=0 & n=y+1)remove();沈阳理工大学课程设计报告135. 软件运行结果1)打开游戏运行界面:图 运行界面【10】2)游戏运行界面:图 游戏运行图沈阳理工大学课程设计报告14结论1)本课题采用Java 语言,主要利用Swing 类的监听技术,设计了连连看软件,该软件可实现如下功能:1、 利用awt 实现良好的游戏界面;2、 游戏开始时,能产生随机数字和随机位置;3、 在按动鼠标和键盘时,游戏能玩起来,即能响应鼠标事件;4、 能消去满足条件的含有相同数字的图片;5、 能重列图片顺序;6、 能选择退出和重新再来一局。2)不足之处:1、游戏界面单调;2、没有实现图片显示;3、没有计时功能,不能引起玩家的兴趣;4、无级别选项,类型单一;5、无音乐,无乐趣。参考文献1耿祥义, 张跃平. Java2实用教程(第三版)M . 北京:清华大学出版社, 20062耿祥义. Java课程设计(第三版)M . 北京:清华大学出版社, 20043张跃平.Java2实用教程实验指导与习题解答(第三
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025《祝福》中鲁镇社会的阶层结构课件
- 电器设备使用操作规定培训
- 2026年广州体育职业技术学院单招综合素质考试题库含答案详解(满分必刷)
- 2026年广东省江门市单招职业适应性考试题库及答案详解(易错题)
- 2025《烛之武退秦师》国际形势判断课件
- 2026年广东水利电力职业技术学院单招职业适应性考试题库附参考答案详解(能力提升)
- 2026年广东省韶关市单招职业适应性考试题库含答案详解(夺分金卷)
- 2026年广西工业职业技术学院单招职业技能测试题库附参考答案详解ab卷
- 作业场所职业安全规章制度培训
- 液压泵定期检修制度培训课件
- 2025年中国四川省天然气行业市场现状分析报告
- GB/T 21782.8-2025粉末涂料第8部分:热固性粉末贮存稳定性的评定
- 2025集体土地使用权转让合同模板
- 互联网医疗平台合作协议书
- 民航工程监理合同范本
- 给排水及电气安装工程专项施工方案
- 方正数码印刷知识培训班课件
- GB/T 6730.13-2025铁矿石钙和镁含量的测定EGTA-CyDTA滴定法
- GB/T 46224-2025碳化物球化程度的评定方法
- 泛海三江:A系列火灾自动报警系统模块接线图
- 《烹饪美学》课件-第二章 烹饪与色彩
评论
0/150
提交评论