Java课程设计扫雷小游戏.docx

上传人:牧羊曲112 文档编号:3061384 上传时间:2023-03-10 格式:DOCX 页数:8 大小:39.57KB
返回 下载 相关 举报
Java课程设计扫雷小游戏.docx_第1页
第1页 / 共8页
Java课程设计扫雷小游戏.docx_第2页
第2页 / 共8页
Java课程设计扫雷小游戏.docx_第3页
第3页 / 共8页
Java课程设计扫雷小游戏.docx_第4页
第4页 / 共8页
Java课程设计扫雷小游戏.docx_第5页
第5页 / 共8页
亲,该文档总共8页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

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

1、Java课程设计扫雷小游戏 Java扫雷游戏设计报告 1设计内容及要求 1.1扫雷小游戏的基本要求 扫雷小游戏主要采用Java语言编写,适合windows XP 以下的系统,以eclipse为平台。具体要求如下: 扫雷小游戏分为初级、中级和高级三个级别,扫雷排行榜保存着每个级别的最好成绩,即挖出全部的地雷并且用时最少。单机游戏菜单选择“初级”、“中级”和“高级”。 游戏默认的是初级级别,用户可以选择不同级别将出现对应级别的扫雷区域,单击扫雷区域任一方格以便启动计时器。 用户选择某个方格,单击它就行。若所选择的放阁下有雷,这一局就结束了,若所选择方格下无雷,则会显示一个数字,该数字代表方格周围8

2、个方格中共有几颗雷。 如果用户认为某个方格下有雷,单击右键可以在方格上标记一个用户认为是雷的图标。 用户可以选择标记为疑问的方格,可以选择游戏菜单下的标记,或者双击右键所选方格显示图标。 扫雷完成后,程序弹出保存成绩的对话框,用户可以根据自身选择是否保存。 如果用户喜欢有提示音,可以选择游戏菜单中的声音选项,单击扫雷区域任一方格,就会听到吧嗒声。当点中地雷时,将会有爆炸声音响起,胜利后,将播放凯旋的旋律。 1.2 需求实现的主要功能 该游戏具有计时功能,即扫完全部地雷所花费的时间。 用户可以选择是否有音效。 用户可以自定义级别,还可以输入任意地雷数。 自动保存扫雷排行榜。 2需求分析 2.1

3、扫雷区域的布局设计 系统的整体布局为:CardLayout 布局,采用菜单、按钮、面板等组件,菜单项主要有开始,选择级别,自定义,标记,声音,扫雷排行榜,退出,按钮的功能是重新开始游戏。 2.2 雷区的设计 MineArea类是javax.swing 包中Jpanel容器的子类,实现了ActionListener和MouseListener接口,所创建的对象:mineArea是MineGame类中最重要的成员之一,作为一个容器添加到MineGame窗口的中心。 2.3 音效的设计 music类是java.awt包中Frame的子类,通过构造音效声音方法,在MainFrame主类中,通过Acti

4、onListener来监视是否已开始游戏,来决定播放计时声,之后又通过ActionListener来监视是否踩到雷和是否完成来决定,播放相应的音乐。 2.4 排行榜设计 LogDialog是javax.swing包中Jdialog对话框的子类,并实现了ActiongListener接口。LogDialog创建的对象dialog是MainFrame类的成员之一,当用户选择查看“英雄榜”菜单项时,该对话框可见,提供了查看扫雷的最好成绩的界面。 3.游戏设计流程图 开始定义并初始化个按钮,菜单等菜单菜单事件处理按钮按钮开局选择级别标记声音英雄榜退出重新开始方块展示相应的效果是否点中雷NY结束5 代码

5、实现 5.1 类之间的关系图 MainFrameLedNumberMineGridAboutDialogCustomDialogImageFactoryLevelInfoLogDialogUserDialogVoiceJLableJButton图1-6 类之间的关系图 5.2 各界面图及代码: 5.2.1 游戏菜单界面 图1-7 游戏菜单界面 其主要代码为:private void setMenuBar /设置菜单项 JMenuBar menuBar = new JMenuBar; menuBar.setBorder(BorderFactory.createLineBorder(Color.W

6、HITE, 2); JMenu gameMenu = new JMenu(游戏(G); JMenu helpMenu = new JMenu(帮助(H); gameMenu.setMnemonic(G); helpMenu.setMnemonic(H); 声音=new Voice; startItem = new JMenuItem(开局(N); ); logItem = new JMenuItem(扫雷英雄榜(T).); markCheckItem = new JCheckBoxMenuItem(标记(?)(M); soundItem=new JCheckBoxMenuItem(声音(S);

7、 exitItem = new JMenuItem(退出(X); aboutItem = new JMenuItem(关于扫雷(A).); levelItem0 = new JRadioButtonMenuItem(初级(B); levelItem1 = new JRadioButtonMenuItem(中级(I); levelItem2 = new JRadioButtonMenuItem(高级(E); levelItem3 = new JRadioButtonMenuItem(自定义(C).); startItem.setAccelerator(KeyStroke.getKeyStroke

8、(KeyEvent.VK_F2,0)雷区界面设计代码: 主要代码 private Polygon segmentPolygon; private int numberSegment = 0, 1, 2, 3, 4, 5 , /0 1, 2 , /1 0, 1, 3, 4, 6 , /2 0, 1, 2, 3, 6 , /3 1, 2, 5, 6 , /4 0, 2, 3, 5, 6 , /5 0, 2, 3, 4, 5, 6 , /6 0, 1, 2 , /7 0, 1, 2, 3, 4, 5, 6 , /8 0, 1, 2, 3, 5, 6 /9 ; private int div = 1,

9、10,100,1000,10000,100000; private Image numberImage; private Color fontColor = Color.red; /the color of number private Color bgColor = Color.black; private Color maskColor = Color.darkGray; private int dWidth = 12; private int dHeight = 21; 5.2.3自定义扫雷界面 图2-1 自定义扫雷界面 其主要代码为:private JTextField widthFi

10、eld; private JTextField heightField; private JTextField mineField; private JButton confirmButton; private JButton cancelButton; private static LevelInfo level; public CustomDialog(Frame frame, LevelInfo levelInfo) public void actionPerformed(ActionEvent e) public static LevelInfo getUserLevel(JFrame

11、 frame, LevelInfo CustomDialog dialog = new CustomDialog(frame, levelInfo); levelInfo) return level; 5.2.4扫雷排行榜界面 图2-2 扫雷排行榜界面 其主要代码为:public LogDialog(JFrame frame, LevelLog log) logArea.setBackground(UIManager.getColor(CheckBox.background); logArea.setBounds(10,10,160,60); getContentPane.add(logAre

12、a, null); resetButton = new JButton(重新计分); resetButton.setBounds(10,70,90,25); resetButton.addActionListener(this); getContentPane.add(resetButton, null); setTextArea; confirmButton = new JButton(确定); confirmButton.setBounds(105,70,60,25); confirmButton.addActionListener(this); getContentPane.add(co

13、nfirmButton, null); super(frame, 扫雷英雄榜, true); getContentPane.setLayout(null); levelLog = log; logArea = new JTextArea; logArea.setEditable(false); setLocationRelativeTo(frame); setSize(180,140); setResizable(false); show; 6扫雷总结 在这次将近两个周的课程设计中我受益匪浅。首先是老师对我们所学过的知识进行复习,并给我们介绍了一些未知的领域,拓展了我们的知识面。然后老师带领我们做扫雷游戏,在这个过程中我们有学到了不少东西。我在写程序是也遇到了不少的问题,不过在我们的共同努力以及老师的指导下完成了任务。在这次课程设计中,但是在看程序的过程中,不断的上网查资料以及翻阅相关书籍,通过不断的模索,测试,发现问题,解决问题和在老师的帮助下一步一步慢慢的正确运行程序,终于完成了这次课程设计,虽然这次课程设计结束了但是总觉得自已懂得的知识很是不足,学无止境,以后还会更加的努力深入的学习。

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

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


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号