Java课程设计报告扫雷游戏.doc

上传人:仙人指路1688 文档编号:2387040 上传时间:2023-02-17 格式:DOC 页数:19 大小:306KB
返回 下载 相关 举报
Java课程设计报告扫雷游戏.doc_第1页
第1页 / 共19页
Java课程设计报告扫雷游戏.doc_第2页
第2页 / 共19页
Java课程设计报告扫雷游戏.doc_第3页
第3页 / 共19页
Java课程设计报告扫雷游戏.doc_第4页
第4页 / 共19页
Java课程设计报告扫雷游戏.doc_第5页
第5页 / 共19页
点击查看更多>>
资源描述

《Java课程设计报告扫雷游戏.doc》由会员分享,可在线阅读,更多相关《Java课程设计报告扫雷游戏.doc(19页珍藏版)》请在三一办公上搜索。

1、Java 课程设计题目:扫雷游戏姓名: 学号: 指导老师 : 黄国辉 设计时间:2012年4月摘要在今天,游戏日益快速更新的情况下,相信大家对Windows 2000/XP系统提供的扫雷游戏或多或少都有所了解。闲暇时刻,玩玩扫雷游戏,不但有利于提高自己快速反应的能力,还有助于减舒缓压力,它是一款简单而有趣的游戏,本次课程设计就是要完成由Java设计的一个简单扫雷游戏。Abstract:Nowadays,the game has been undated quickly, believer that everyone know more or less about the Windows 200

2、0/XP system provides the MineSweeper game . Leisure time, play the game, not only help us to improve our own rapid of reaction capability, and helps reduce stress, it is a simple and interesting games, the curriculum design is to be completed by the java design of a simple game of mine clearance.目 录

3、一 需求分析41.1设计背景41.2可行性分析41.3功能分析4二 总体设计52.1 系统结构分析52.2 系统流程分析52.2.1 系统流程描述52.2.2 系统流程图52.3 系统模块设计62.3.1 模块一:随机布雷与初始化界面62.3.2 模块二:游戏各级别的选择与设计102.3.3 模块三:判断所点击的是否为雷133. 小结18东华理工学院长江学院课程设计评分表19一 需求分析1.1设计背景 随着社会的不断进步,人们所承受的压力不断上升,在游戏层出不穷的时刻,扫雷游戏仍受到不少人的青睐,其本身的性质,决定了人们对它的喜爱程度,不需要特殊的技巧,不需要不断地升级,不需要太多的时间进行初

4、步的熟悉,简简单单却乐趣无穷。1.2可行性分析 适用于各种群体,学生、老师、白领. 简单却有效地舒缓压力,消磨闲暇时光 一局所需的时间很短,低级的只需十多秒1.3功能分析 随机布雷 可以选择相应的等级 显示一局完成的时间 判断错误时,待游戏结束时会有不同标记 二 总体设计2.1 系统结构分析 根据系统的功能分析,可得系统系统总体的功能结构图,如下:图2.1-1系统结构图 2.2 系统流程分析2.2.1 系统流程描述 游戏初始页面为初级的游戏界面 点击开始便可开始扫雷 点击方块,系统判断是否点中了雷 点击开始可重新开始游戏 菜单中有“初级”、“中级”、“高级”三个级别可供选择2.2.2 系统流程

5、图系统流程图如下: 图2.2-1系统流程图 2.3 系统模块设计2.3.1 模块一:随机布雷与初始化界面模块负责人 姓名: 学号: 1. 模块的主要任务 利用产生随机数的方法完成游戏中随机布雷的要求 初始化菜单,包括了游戏的三个不同级别2. 界面的截图部分源代码游戏的初始界面截图如下:图 2.3.1-1 初始界面页面初始化的源代码:/产生随机数for(int i=0;ibon;i+) int p=1; int m=(int)(Math.random()*row*col); while(p=1) int l=1, int j; for( j=0;ji&l=1;j+) if(a1j=m) m=(i

6、nt)(Math.random()*row*col); l=0;if(j=i) a1i=m;p=0; b1.setText(bon+);b2.setText(0);/布雷for(int i=0;ibon;i+)int x=(a1i/col+1);int y=(a1i%col+1);axy=100;for(int i=0;irow+2;i+) for(int j=0;jcol+2;j+) if(i=0|j=0|i=row+1|j=col+1) aij=0; for(int i=1;i=row;i+) for(int j=1;j=col;j+) if(aij!=100) for(int l=j-1

7、;l=j+1;l+) if(ai-1l=100) aij+; if(ai+1l=100) aij+; if(aij-1=100) aij+; if(aij+1=100) aij+; 游戏的菜单界面截图如下:图2.3.1-2 游戏菜单界面菜单页面设置部分代码:public void initGUI() p3=new JPanel(); b=bon; JMenuBar menuBar=new JMenuBar(); JMenu menu1=new JMenu(游戏); JMenu menu2=new JMenu(帮助); JMenuItem mi1=new JMenuItem(初级); JMenu

8、Item mi2 = new JMenuItem(中级); JMenuItem mi3 =new JMenuItem(高级);mi1.addActionListener(this);menu1.add(mi1);mi2.addActionListener(this);menu1.add(mi2);mi3.addActionListener(this);menu1.add(mi3);menuBar.add(menu1);menuBar.add(menu2);p3.add(menuBar);b1=new JLabel(bon+); a1=new intbon;btn =new JButton(开始

9、);btn.addActionListener(this);b2=new JLabel(0);b3=new JLabel(); btns=new JButtonrow*col;p=new JPanel();p.setLayout(new BorderLayout();contentPane.add(p);p.add(p3,BorderLayout.NORTH); p1=new JPanel();p1.add(b1);p1.add(btn);p1.add(b2);p1.add(b3);p.add(p3,BorderLayout.NORTH);p.add(p1,BorderLayout.CENTE

10、R);p2=new JPanel();p2.setLayout(new GridLayout(row,col,0,0);for(int i=0;irow*col;i+) btnsi=new JButton(); btnsi.setMargin(new Insets(0,0,0,0); btnsi.setFont(new Font(null,Font.BOLD,25); btnsi.addActionListener(this); btnsi.addMouseListener(new NormoreMouseEvent(); p2.add(btnsi); contentPane.add(p,Bo

11、rderLayout.NORTH); contentPane.add(p2,BorderLayout.CENTER);2.3.2 模块二:游戏各级别的选择与设计模块负责人 姓名: 学号:1. 模块主要任务 选择相应级别候,出现相应雷数的游戏界面 多各个界别的方块大小,界面大小进行设置2. 界面的截图和部分源代码初级游戏界面截图如下:图2.3.2-1 初级游戏界面中极游戏界面截图如下:图2.3.2-2 中级游戏界面高级游戏界面截图如下:图2.3.2-3 高级游戏界面各级别游戏界面设计的源代码:if(e.getActionCommand()=初级) row=9;col=9;bon=10;a1=ne

12、w intbon;b=bon;a = new introw+2col+2;this.remove(p2);timer.stop();b1.setText(10);b2.setText(0);b3.setText();btns=new JButtonrow*col;p2=new JPanel();p2.setLayout(new GridLayout(row,col,0,0);for(int i=0;irow*col;i+) btnsi=new JButton( ); btnsi.setMargin(new Insets(0,0,0,0); btnsi.setFont(new Font(null

13、,Font.BOLD,25);btnsi.addActionListener(this);btnsi.addMouseListener(new NormoreMouseEvent();p2.add(btnsi);else if(e.getActionCommand()=中级) row=16;col=16;bon=40;a1=new intbon;a = new introw+2col+2;b=bon;this.remove(p2);timer.stop();b1.setText(40);b2.setText(0);b3.setText();btns=new JButtonrow*col;p2=

14、new JPanel();p2.setLayout(new GridLayout(row,col,0,0);for(int i=0;irow*col;i+); btnsi=new JButton( ); btnsi.setMargin(new Insets(0,0,0,0); btnsi.setFont(new Font(null,Font.BOLD,25); btnsi.addActionListener(this); btnsi.addMouseListener(new NormoreMouseEvent(); p2.add(btnsi); else if(e.getActionComma

15、nd()=高级) row=16;col=32;bon=99;setSize(33*col,33*row+80);a1=new intbon;a = new introw+2col+2;b=bon;this.remove(p2);timer.stop();b1.setText(99);b2.setText(0);b3.setText();btns=new JButtonrow*col;p2=new JPanel();p2.setLayout(new GridLayout(row,col,0,0);for(int i=0;irow*col;i+) btnsi=new JButton( );btns

16、i.setMargin(new Insets(0,0,0,0);btnsi.setFont(new Font(null,Font.BOLD,25);btnsi.addActionListener(this);btnsi.addMouseListener(new NormoreMouseEvent();p2.add(btnsi);2.3.3 模块三:判断所点击的是否为雷模块负责人 姓名: 学号:1. 模块任务 对雷的形状颜色进行设定 判断是否点击到雷,游戏胜利或输了的情况设置2. 游戏中的截图和源代码 中级游戏胜利后的截图,有红色圆圈标记的方块为雷区,在开始按钮的作则的数字“0”表示剩下雷的数目

17、为0,其右侧的数据“111”表示游戏者在完成该局游戏所花的时间为111秒,在时间的旁边的文本框内显示的信息是游戏者的输赢情况。截图如下:图2.3.3-1 中级游戏胜利的截图“*o*”符号表示你标错雷的位置,初级游戏失败后的截图如下:图2.3.3-2 游戏截图程序部分代码:for(int i=0;icol*row;i+) if(btnsi.getText()!=) btnsi.setForeground(Color.red);int x=i/col+1;int y=i%col+1;if(e.getSource()=btnsi&axy=100) btnsi.setText();btnsi.setE

18、nabled(false);axy=10;for(int k=0;kcol*row;k+) int m1=k/col+1;int n1=k%col+1; if(am1n1!=10&btnsk.getText()=) btnsk.setText(*o*); for(int j=0;jcol*row;j+) int m=j/col+1;int n=j%col+1; if(amn=100) btnsj.setText(); btnsj.setEnabled(false); b3.setText(你输了 !); btnsj.setEnabled(false); amn=10;timer.stop();

19、 else if(e.getSource()=btnsi) if(axy=0) out(a,btns,e,i,x,y); axy=10; btnsi.setEnabled(false); if(axy!=0&axy!=10) btnsi.setText(axy+); btnsi.setEnabled(false); axy=10; class NormoreMouseEvent extends MouseAdapter public void mouseClicked(MouseEvent e) System.out.println(b); for(int i=0;icol*row;i+) i

20、nt x1=i/col+1;int y1=i%col+1;if(e.getSource()=btnsi&btnsi.getText()!=&ax1y1!=10) if(e.getButton()=MouseEvent.BUTTON3) btnsi.setText(); b-; if(b=0) int flag=0; for(int j=0;jbon) b1.setText(bon+); else b1.setText(b+); btnsi.setEnabled(true);3. 小结这个扫雷游戏大大简化了微软系统自带的扫雷游戏的功能,所以难度是比较小,经过编写这个扫雷游戏,我们认识到应该注意细

21、节问题,从小问的修改发现中,提高自己编程的能力,而且还可以培养自己编程的严谨性,同时还可以为以后的编程积累经验。编写完这个扫雷游戏,我们发现自己有很多的不足,所以小组的形式给我们的编程带来了很大的帮助,这样发现问题的时候大家一起想办法,解决问题的速达大大提高了,这让我们认识到了团结协作的重要性。东华理工学院长江学院课程设计评分表 课程设计题目:扫雷游戏项目内容满分实 评选题能结合所学课程知识、有一定的能力训练。符合选题要求(5人一题)10工作量适中,难易度合理10能力水平能熟练应用所学知识,有一定查阅文献及运用文献资料能力10理论依据充分,数据准确,公式推导正确10能应用计算机软件进行编程、资料搜集录入、加工、排版、制图等10能体现创造性思维,或有独特见解10成果质量总体设计正确、合理,各项技术指标符合要求。10说明书综述简练完整,概念清楚、立论正确、技术用语准确、结论严谨合理;分析处理科学、条理分明、语言流畅、结构严谨、版面清晰10设计说明书栏目齐全、合理,符号统一、编号齐全。格式、绘图、表格、插图等规范准确,符合国家标准10有一定篇幅,字符数不少于500010总 分100指导老师签名: 年 月 日

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

当前位置:首页 > 建筑/施工/环境 > 项目建议


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号