java连连看游戏论文.docx

上传人:牧羊曲112 文档编号:3159745 上传时间:2023-03-11 格式:DOCX 页数:16 大小:42.95KB
返回 下载 相关 举报
java连连看游戏论文.docx_第1页
第1页 / 共16页
java连连看游戏论文.docx_第2页
第2页 / 共16页
java连连看游戏论文.docx_第3页
第3页 / 共16页
java连连看游戏论文.docx_第4页
第4页 / 共16页
java连连看游戏论文.docx_第5页
第5页 / 共16页
亲,该文档总共16页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《java连连看游戏论文.docx》由会员分享,可在线阅读,更多相关《java连连看游戏论文.docx(16页珍藏版)》请在三一办公上搜索。

1、java连连看游戏论文X X X X 大 学 Java语言程序设计课程设计 题目: 连连看游戏 院: 专业班级: 学 号: 学生姓名: 指导教师: 教师职称: 起止时间: 课程设计任务及评语 院: 教研室: 学 号 课程设计题目 任务与要求: .掌握面向对象程序设计语言JAVA的基本语法 连连看游戏 学生姓名 专业班级 课程设计任务 .掌握JAVA面向对象设计的思想, .掌握VJAVA6.0与MyEclips JAVA 开发工具的使用 (4). 运用标准JAVA规范设计应用程序 设计过程中,要严格遵守设计的时间安排,听从指导教师的指导。正确地完成上述内容,规范完整地撰写出设计报告。 成绩: 指

2、导教师签字: 年 月 日 指导教师评语及成绩xxxx 大 学 课 程 设 计 说 明 书 目 录 第1章 课程设计目的与要求 . 1 1.1设计目的 . 1 1.2实验环境 . 1 1.3预备知识 . 1 1.4设计要求 . 1 第2章 课程设计内容 . 2 2.1 课题描述 . 2 2.2 系统设计 . 2 2.2.1功能分析 . 2 2.2.2面向对象设计 . 2 2.2.3类成员描述 . 4 2.3程序实现 . 6 2.3.1源码分析 . 6 2.3.2运行结果 . 13 第3章 总结 . 15 参考文献 . 16 xxxx大 学 课 程 设 计 说 明 书 第1章 课程设计目的与要求

3、1.1设计目的 将理论教学中涉及到的知识点贯穿起来,对不同的数据类型、程序控制结构、数据结构作一比较和总结,结合设计题目进行综合性应用,对所学知识达到融会贯通的程度。 通过课程设计,学生在下述各方面的能力应该得到锻炼: 进一步巩固、加深学生所学专业课程JAVA语言教程的基本理论知识,理论联系实际,进一步培养学生综合分析问题,解决问题的能力。 全面考核学生所掌握的基本理论知识及其实际业务能力,从而达到提高学生素质的最终目的。 利用所学知识,开发小型应用系统,掌握运用JAVA语言编写调试应用系统程序,训练独立开发应用系统,进行数据处理的综合能力。 对于给定的设计题目,如何进行分析,理清思路,并给出

4、相应的数学模型。 掌握面向对象程序设计的方法。 熟练掌握JAVA语言的基本语法,灵活运用各种数据类型。 进一步掌握在集成环境下如何调试程序和修改程序。 1.2实验环境 硬件要求能运行Windows 操作系统的微机系统。JAVA语言应用程序开发软件使用:VJAVA 系统,或其他JAVA语言应用程序开发软件。 1.3预备知识 熟悉JAVA语言程序设计的基本知识及VJAVA编辑器的使用方法。 1.4设计要求 1.仔细分析设计题目,画出程序流程图,编写程序源代码。 2.积极上机调试源程序,增强编程技巧与调程能力。 3.认真书写课程设计预习报告,课程设计说明书。 4.遵守课程设计要求和机房管理制度,服从

5、指导教师的安排,确保课程设计的顺利完成课程设计内容。 1 xxxx大 学 课 程 设 计 说 明 书 第2章 课程设计内容 2.1 课题描述 游戏规则是模仿网络上普通的连连看游戏,主要是鼠标两次点击的图片能否消去的问题。当前,前提是点击两张相同的图片,若点击的是同一张图片或者两张不同的图片,则不予处理。在两张想同图片所能连通的所有路径中,如果存在一条转弯点不多于两个的路径,就可以消去;如果没有,则不予处理。 开始制作游戏时,主要要解决的问题有以下几个方面:如何设置整个游戏的界面;如何控制连连看游戏中随机图片的生成且每种图片必须为偶数个;游戏开始后,判断鼠标两次点击的图片能否消去,即图片是否相同

6、且图片之间路径的判断等。 2.2 系统设计 此程序设计是一个小游戏的实现,主要运用了用户图形界面,程序接口和基本函数绘制来实现,事件监听也是这个程序的特色。加入复选框,按钮,标签等来实现本游戏用户界面布局。本游戏在用户界面的可操作性、游戏的美观度、计分结果方便都基本完善,有一定的可玩性 2.2.1功能分析 本系统为了实现游戏连连看,本系统主要实现如下功能: 系统界面美观大方舒服 实现游戏的一些基本保存和读取 画面流畅,具有可玩性 没有较大的游戏BUG 显示游戏者的积分 实现多种图案的排列组合 系统运行稳定,安全可靠 2.2.2面向对象设计 类名: lianliankan 类设计 2 xxxx大

7、 学 课 程 设 计 说 明 书 作用: 自定义的异常类,用来处理计算结果溢出 继承的父类: Exception类 实现的接口: 没有 在游戏编写过程中,发现部分变量是重复用到且在不同的过程中需要共享存储的数据。所以最后将这些变量转为全局变量。下面介绍这些变量: flag数组变量,这是一个二维数组用来存放显示30张图片的变量 gameover布尔型变量,这是用来判断游戏是否结束的变量。 gamevalue整型变量,这是用来存放当前剩余图片数的变量。 server字符串型变量,这是用来存放服务器IP地址的变量。 isserver布尔型变量,这是用来判断当前机子是不是服务器,默认值为false,

8、当电脑获取客户机的连接请求时,设为真值。 uml类图 软件类 选择音乐文件-路径生成图片数-数量游戏-游戏时间-图片数量-重复数重列-使用次数延长时间-时间-使用次数加入方法 选择音乐文件-路径生成图片数-数量+IniteBmp游戏-游戏时间-图片数量-重复数重列-使用次数+FreshMap延长时间-时间-使用次数加入关联 3 xxxx大 学 课 程 设 计 说 明 书 选择音乐文件-路径生成图片数-数量+IniteBmp游戏-游戏时间-图片数量-重复数生成游戏中的位置图片位置重置 重列-使用次数+FreshMap延长时间-时间-使用次数增加游戏时间总体流程图 总体流程图 2.2.3类成员描述

9、 在设计连连看小游戏是,要编写6个Java源文件 :Control.java , LoadAndSave.java , Model.java , GamePanel.java , ImageLoader.java , MainFrame.java 4 xxxx大 学 课 程 设 计 说 明 书 Control.java 监听器类。 主要用于接收用户操作时发出的指令以及中转发送。 LoadAndSave.java 游戏数据部分。 主要用于存储用户得分情况,以及载入时加载图片的算法 Model.java 驱动类。 用于处理接收到的用户动作指令,以及初始化时用到的一切算法。如:设置游戏难度,图片可消

10、除判断等。 GamePanel.java 绘制类。 用于游戏是绘制选中时的边框,和连接两个相同图片的连线。 ImageLoader.java 图片加载器。 用于加载库中的图片。 MainFrame.java 主窗体绘制。 所有游戏中可见窗体的绘制。 项目层次结构图: 5 xxxx大 学 课 程 设 计 说 明 书 使用炸弹流程图 计算时间流程图 2.3程序实现 2.3.1源码分析 import javax.swing.*; import java.awt.*; 6 xxxx大 学 课 程 设 计 说 明 书 import java.awt.event.*; public class lianl

11、iankan 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,secon

12、dButton; /分别记录两次被选中的按钮 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;/消除方法控制 public void init mainFrame=new JFrame(JKJ连连看); thisContainer = mainFrame.getContentPane; thisContainer.setL

13、ayout(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;r

14、ows 5;rows+ ) diamondsButtoncolsrows=new JButton(String.valueOf(gridcols+1rows+1); diamondsButtoncolsrows.addActionListener(this); 7 xxxx大 学 课 程 设 计 说 明 书 centerPanel.add(diamondsButtoncolsrows); exitButton=new JButton(退出); exitButton.addActionListener(this); resetButton=new JButton(重列); resetButton

15、.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.s

16、etBounds(280,100,500,450); mainFrame.setVisible(true); 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.ran

17、dom*6+1); rows=(int)(Math.random*5+1); this.gridcolsrows=randoms; 8 xxxx大 学 课 程 设 计 说 明 书 public void fraction fractionLable.setText(String.valueOf(Integer.parseInt(fractionLable.getText)+100); public void reload int save = new int30; int n=0,cols,rows; int grid= new int87; for(int i=0;i=6;i+) for(i

18、nt 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-; 9 xxxx大 学 课 程 设 计 说 明 书 mainFrame.setVisible(false); pressInformation=false; /这里一定要将按钮点击信息归为初始 init; for(int i = 0;i 6;i

19、+) for(int j = 0;j 5;j+ ) if(gridi+1j+1=0) diamondsButtonij.setVisible(false); 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=secondBu

20、tton; x=placeX; y=placeY; secondMsg=gridxy; secondButton=bz; if(fristMsg=secondMsg & secondButton!=firstButton) xiao; 10 xxxx大 学 课 程 设 计 说 明 书 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坐标说明第一按钮在第二按

21、钮左边 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;ix) for (n=x0;n=x+1 ;n- ) if (gridnj!=0) k=0; break; public void remove firstButton.setVisible(false); secondButton.setVisibl

22、e(false); fraction; pressInformation=false; k=0; 12 xxxx大 学 课 程 设 计 说 明 书 gridx0y0=0; gridxy=0; 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=exitBu

23、tton) 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); 2.3.2运行结果 点击菜单中的开始游戏后的界面,连连看游戏规则很简单,就是点中两个互相匹配并且可以通过不多于两个折点的折线连相同的图片,然后消去。下图是开始游戏后的界面效果

24、13 xxxx大 学 课 程 设 计 说 明 书 提示功能 14 xxxx大 学 课 程 设 计 说 明 书 第3章 总结 通过这几周的课设,让我学会了一些平时学不到的东西,同时也丰富了自己。 我做的这个游戏分三个模块,其中第一,三两个模块的内容都是非常分散,常常要考虑各这两大模块之间的协作,而且每个模块内部又有很多小模块,互相之间也有非常密切的联系,很多变量之间数据的传递都要考虑好。而第二个模块相对比较集中,几乎就只有一个函数,但是代码内容非常长,工作量也是很大的,且几乎全部是在代码中编写,没有添加什么界面上的控件操作。 第三个模块其中很重要的一点就是在鼠标按下后要获取图片值,另外本过程还有

25、一个解决问题就是,要判断前后两次选中的图片是否相同,及其相应位置。 另外这个游戏没有用到数据库,所使用的功能也不是很多,但是由于考虑到要按固有的游戏规则来编写,因此要写较多时间考虑游戏怎么玩,怎么通过代码判断用户每个鼠标点击的坐标以及当前坐标位置代表的图片内容等各方面的判断考虑得就较多了。主要使用到的功能有:image控件画图,包括矩形框和将数组中的图片载入到控件中显示。 15 xxxx大 学 课 程 设 计 说 明 书 参考文献 1埃克尔著 陈昊鹏,饶若楠等译. Java编程思想J. 天津:机械工业出版社 2Gary J.Bronson著 张珑译. Java编程原理J. 北京:清华大学出版社

26、 3Michael Morrison著. 游戏编程入门J. 北京:人民邮电出版社 4Wendy Stahler著. 游戏编程中的数理应用J. 山西:红旗出版社 5克罗夫特(David Wallace Croft)著. Java游戏高级编程J. 北京:清华大学出版社 6 David Brackeen著.Java游戏编程J. 北京:科学出版社 7 聂庆亮编著. Java应用开发指南J. 北京:清华大学出版社 8 耿祥义,张跃平编著. Java面向对象程序设计J. 北京:清华大学出版社 9 杨绍方编著. Java编程实用技术与案例J. 北京:清华大学出版社 10 明日科技编著. Java编程全能词典J. 上海:电子工业出版社 16

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号