Java课程设计扫雷小游戏_第1页
Java课程设计扫雷小游戏_第2页
Java课程设计扫雷小游戏_第3页
Java课程设计扫雷小游戏_第4页
Java课程设计扫雷小游戏_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

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

文档简介

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

2、所选择方格下无雷,则会显示一个数字,该数字代表方格周围8个方格中共有几颗雷。 <4> 如果用户认为某个方格下有雷,单击右键可以在方格上标记一个用户认为是雷的图标(一个小旗子)。 <5> 用户可以选择标记为疑问的方格,可以选择游戏菜单下的标记,或者双击右键所选方格显示(?)图标。 <6> 扫雷完成后,程序弹出保存成绩的对话框,用户可以根据自身选择是否保存。 <7> 如果用户喜欢有提示音,可以选择游戏菜单中的声音选项,单击扫雷区域任一方格,就会听到吧嗒声。当点中地雷时,将会有爆炸声音响起,胜利后,将播放凯旋的旋律。1.2 需求实现的主要功能(1) 该

3、游戏具有计时功能,即扫完全部地雷所花费的时间。(2) 用户可以选择是否有音效。(3) 用户可以自定义级别,还可以输入任意地雷数。(4) 自动保存扫雷排行榜。2·需求分析2.1 扫雷区域的布局设计系统的整体布局为:CardLayout 布局,采用菜单、按钮、面板等组件,菜单项主要有开始,选择级别,自定义,标记,声音,扫雷排行榜,退出,按钮的功能是重新开始游戏(可以选择游戏菜单里的开局,也可以点击企鹅图标重新开始游戏)。2.2 雷区的设计MineArea类是javax.swing 包中Jpanel容器的子类,实现了ActionListener和MouseListener接口,所创建的对象

4、:mineArea是MineGame类中最重要的成员之一,作为一个容器添加到MineGame窗口的中心。2.3 音效的设计 music类是java.awt包中Frame的子类,通过构造音效声音方法,在MainFrame主类中,通过ActionListener来监视是否已开始游戏,来决定播放计时声,之后又通过ActionListener来监视是否踩到雷和是否完成来决定,播放相应的音乐。2.4 排行榜设计LogDialog是javax.swing包中Jdialog对话框的子类,并实现了ActiongListener接口。LogDialog创建的对象dialog是MainFrame类(主类)的成员之

5、一,当用户选择查看“英雄榜”菜单项时,该对话框可见,提供了查看扫雷的最好成绩的界面。3.游戏设计流程图 5· 代码实现5.1 类之间的关系图图1-6 类之间的关系图5.2 各界面图及代码:5.2.1 游戏菜单界面图1-7 游戏菜单界面其主要代码为:private void setMenuBar() /设置菜单项 JMenuBar menuBar = new JMenuBar(); menuBar.setBorder(BorderFactory.createLineBorder(Color.WHITE, 2); JMenu gameMenu = new JMenu("游戏(G

6、)"); JMenu helpMenu = new JMenu("帮助(H)"); gameMenu.setMnemonic('G'); helpMenu.setMnemonic('H'); 声音=new Voice(); startItem = new JMenuItem("开局(N)");startItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_F2,0); logItem = new JMenuItem("扫雷英雄榜(T)."

7、); markCheckItem = new JCheckBoxMenuItem("标记(?)(M)"); soundItem=new JCheckBoxMenuItem("声音(S)"); exitItem = new JMenuItem("退出(X)"); aboutItem = new JMenuItem("关于扫雷(A)."); levelItem0 = new JRadioButtonMenuItem("初级(B)"); levelItem1 = new JRadioButtonMen

8、uItem("中级(I)"); levelItem2 = new JRadioButtonMenuItem("高级(E)"); levelItem3 = new JRadioButtonMenuItem("自定义(C)."); 雷区界面设计代码:主要代码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 ,

9、/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,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 = Co

10、lor.darkGray; private int dWidth = 12; private int dHeight = 21; 5.2.3自定义扫雷界面图2-1 自定义扫雷界面其主要代码为:private JTextField widthField;private JTextField heightField;private JTextField mineField;private JButton confirmButton;private JButton cancelButton;private static LevelInfo level;public CustomDialog(Fram

11、e frame, LevelInfo levelInfo) public void actionPerformed(ActionEvent e) public static LevelInfo getUserLevel(JFrame frame, LevelInfo levelInfo) CustomDialog dialog = new CustomDialog(frame, levelInfo);return level;5.2.4扫雷排行榜界面图2-2 扫雷排行榜界面其主要代码为:public LogDialog(JFrame frame, LevelLog log) super(fra

12、me, "扫雷英雄榜", true);getContentPane().setLayout(null);levelLog = log;logArea = new JTextArea();logArea.setEditable(false);logArea.setBackground(UIManager.getColor("CheckBox.background");logArea.setBounds(10,10,160,60);getContentPane().add(logArea, null); resetButton = new JButton(&

13、quot;重新计分");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(confirmButton, null); setSize(180,140);setLocationRelativeTo(frame); setResizable(false); show();6·扫雷总结 在这次将近两个周的课程设计中我受益匪浅。首先是老师对我们所学过的知识进行复习,并给我们介绍了一些未知的领域,拓展了我们的知

温馨提示

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

评论

0/150

提交评论