ImageVerifierCode 换一换
格式:DOCX , 页数:26 ,大小:97.81KB ,
资源ID:11074736      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/11074736.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(Java编写的扫雷小程序doc.docx)为本站会员(b****8)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

Java编写的扫雷小程序doc.docx

1、Java编写的扫雷小程序doc整个程序使用了4个类:Game 用于启动程序, 界面的布置,各种行列的算法。ExtendButton 继承了Jbutton 用于新建button的各种属性ShowNum 监听到某个button后,计算出此button周围有几个雷,不同的雷对应不通的图片,类得到button上应加载的图片地址ViewReSet 此类用于新建一个窗口,用户输入自己想要的行、列、雷数,然后用新的行列雷数new一个新的Gamebiaose dise1 dise2 dise3dise4 dise5 dise6 dise7dise8 dise lei biaoji/* 运行类 创建游戏主窗体

2、*/package com.dhl.saolei;import java.awt.BorderLayout;import java.awt.Color;import java.awt.Container;import java.awt.Dimension;import java.awt.Font;import java.awt.GridLayout;import java.awt.Toolkit;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.awt.event.InputEv

3、ent;import java.awt.event.KeyEvent;import java.awt.event.MouseAdapter;import java.awt.event.MouseEvent;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JMenu;import javax.swing.JMenuBar;import javax.swing.JMenuItem;import javax.swing.JOptionPane;import javax.swing.JPanel;import

4、 javax.swing.JToolBar;import javax.swing.KeyStroke;import javax.swing.Timer;public class Game extends JFrame implements ActionListener private Container myContainer; private GridLayout myLayout; private JPanel myPanelMain; private JPanel myPanel; private JToolBar myTool; private JLabel time; private

5、 JLabel labelTime; private JLabel bombNum; private JLabel labelBombNum; private JMenuBar menuBar; private JMenu menuE, menuH; private JMenuItem menuItemCZ, menuItemSZ; private int numBomb, countTime, leaveBomb, numEnd; private int myRows, myColumns; private int xis, yis; private Timer timer; private

6、 ExtendButton myButton = null; /初始化窗体 private void InitView() /菜单初始化 this.menuBar = new JMenuBar(); this.menuE = new JMenu(菜单(E); this.menuH = new JMenu(帮助(H); this.menuItemCZ = new JMenuItem(重置); this.menuItemCZ.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_C, InputEvent.CTRL_MASK); this.menuIt

7、emCZ.addActionListener(this); this.menuE.add(this.menuItemCZ); this.menuItemSZ = new JMenuItem(设置); this.menuItemCZ.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_S, InputEvent.CTRL_MASK); this.menuItemSZ.addActionListener(this); this.menuE.add(this.menuItemSZ); this.menuBar.add(this.menuE); this

8、.menuBar.add(this.menuH); setJMenuBar(this.menuBar); /时间信息初始化 this.myTool = new JToolBar(); this.myTool.setLayout(new GridLayout(1, 4); this.myTool.setFloatable(false); BorderLayout borderLayout = new BorderLayout(); this.myPanelMain = new JPanel(borderLayout); this.labelTime = new JLabel(时间:); this

9、.time = new JLabel(); this.time.setForeground(Color.RED); this.time.setFont(new Font(font, Font.PLAIN, 20); this.labelBombNum = new JLabel(雷数:); this.bombNum = new JLabel(); this.bombNum.setText(String.valueOf(this.numBomb); this.bombNum.setForeground(Color.RED); this.bombNum.setFont(new Font(font,

10、Font.PLAIN, 20); this.myTool.add(this.labelTime); this.myTool.add(this.time); this.myTool.add(this.labelBombNum); this.myTool.add(this.bombNum); this.myPanelMain.add(this.myTool, borderLayout.NORTH); / 初始化myButton private void InitButton() BorderLayout borderLayout = new BorderLayout(); this.leaveBo

11、mb = this.numBomb; this.numEnd = (this.myRows * this.myColumns) - this.leaveBomb; this.myContainer = this.getContentPane(); this.myLayout = new GridLayout(this.myRows, this.myColumns, 1, 1); this.myPanel = new JPanel(); this.myPanel.setVisible(true); this.myPanel.setLayout(myLayout); this.myPanelMai

12、n.add(this.myPanel, borderLayout.CENTER); this.myContainer.add(this.myPanelMain); this.myButton = new ExtendButton(this.myRows * this.myColumns); for (int i = 0; i (this.myRows * this.myColumns); i+) this.myButtoni = new ExtendButton(); this.myButtoni.SetPostion(i); this.myButtoni.setIcon(new ShowNu

13、m(10).getImageIcon(); this.myButtoni.setButton_num(0); this.myButtoni.SetVisited(false); this.myButtoni.SetStatus(false); /设置右键监听标记雷 this.myButtoni.addMouseListener(new MouseAdapter() public void mouseClicked(MouseEvent evt) if (evt.getModifiers() = InputEvent.BUTTON3_MASK) int n = (ExtendButton)evt

14、.getSource().getButton_num(); if(n = 1) if(!(ExtendButton)evt.getSource().GetVisited() (ExtendButton)evt.getSource().setButton_num(0); (ExtendButton)evt.getSource().setIcon(new ShowNum(10).getImageIcon(); leaveBomb+; bombNum.setText(String.valueOf(leaveBomb); else if(!(ExtendButton)evt.getSource().G

15、etVisited() (ExtendButton)evt.getSource().setButton_num(1); (ExtendButton)evt.getSource().setIcon(new ShowNum(11).getImageIcon(); leaveBomb-; bombNum.setText(String.valueOf(leaveBomb); ); this.myPanel.add(this.myButtoni); this.myButtoni.addActionListener(this); System.gc(); this.SetBomb(this.numBomb

16、); show(); /时钟设置 int delay = 1000;/ 创建一个监听事件 ActionListener drawClock = new ActionListener() public void actionPerformed(ActionEvent evt) countTime+; time.setText(String.valueOf(countTime); repaint(); ;/ 创建一个时间计数器,每一秒触发一次 this.timer = new Timer(delay,drawClock); this.timer.start(); /重新初始化方法 private

17、void SetExtendButton() for (int i = 0; i (this.myRows * this.myColumns); i+) this.myButtoni.SetVisited(false); this.myButtoni.SetStatus(false); this.myButtoni.setText(null); this.myButtoni.setIcon(new ShowNum(10).getImageIcon(); this.SetBomb(numBomb); this.countTime = 0; this.timer.start(); this.lea

18、veBomb = numBomb; this.bombNum.setText(String.valueOf(this.numBomb); this.numEnd = (this.myRows * this.myColumns) - leaveBomb; /布雷方法 private void SetBomb(int count) int counter = 0; int tempint; while(counter != count) tempint = (int) (Math.random()*(this.myRows * this.myColumns); if(!this.myButtont

19、empint.GetStatus() this.myButtontempint.SetStatus(true); counter+; /显示雷得方法 private void ShowBomb() for(int i = 0; i (this.myRows * this.myColumns); i+) if(this.myButtoni.GetStatus() this.myButtoni.setIcon(new ShowNum(9).getImageIcon(); /监听点击扫雷方法 private void CheckButton(ExtendButton TempButton) if(T

20、empButton.GetStatus() this.timer.stop(); JOptionPane.showMessageDialog(null, You Failed!, Game,JOptionPane.INFORMATION_MESSAGE); this.ShowBomb();int i = JOptionPane.showConfirmDialog(null, 是否要继续?, 消息, JOptionPane.YES_NO_OPTION); if(JOptionPane.YES_OPTION = i) SetExtendButton(); else this.dispose();

21、return; int CircleNum = new int8; int temp = 0; if(!TempButton.GetVisited() CircleNum0 = TempButton.GetPostion() - this.myColumns - 1; CircleNum0 = (CircleNum0 0 | (CircleNum0 + 1) % this.myColumns = 0) ? -1 : CircleNum0; CircleNum1 = TempButton.GetPostion() - this.myColumns; CircleNum1 = (CircleNum

22、1 0) ? -1 : CircleNum1; CircleNum2 = TempButton.GetPostion() - this.myColumns + 1; CircleNum2 = (CircleNum2 (this.myRows * this.myColumns - 1) | (CircleNum5 + 1) % this.myColumns = 0) ? -1 : CircleNum5; CircleNum6 = TempButton.GetPostion() + this.myColumns; CircleNum6 = (CircleNum6 (this.myRows * th

23、is.myColumns - 1) ? -1 : CircleNum6; CircleNum7 = TempButton.GetPostion() + this.myColumns +1; CircleNum7 = (CircleNum7 (this.myRows * this.myColumns - 1) | CircleNum7 % this.myColumns = 0) ? -1 : CircleNum7; for (int i = 0; i 0) TempButton.SetVisited(true); TempButton.setIcon(new ShowNum(temp).getI

24、mageIcon(); temp = 0; else if(temp = 0) TempButton.SetVisited(true); TempButton.setIcon(new ShowNum(0).getImageIcon(); for (int i = 0; i 8; i+) if(CircleNumi != -1 & !myButtonCircleNumi.GetVisited() CheckButton(myButtonCircleNumi); this.numEnd-; if(this.numEnd = 0) this.timer.stop(); JOptionPane.sho

25、wMessageDialog(this, 恭喜你!, 消息, JOptionPane.INFORMATION_MESSAGE); ShowBomb(); / 构造方法 public Game() Dimension dimension = Toolkit.getDefaultToolkit().getScreenSize(); int x = (int) (dimension.getWidth() - 400) / 2); int y = (int) (dimension.getHeight() - 500) / 2); this.xis = 300; this.yis = 400; this

26、.setBounds(x, y, this.xis, this.yis); this.setTitle(扫雷); this.numBomb = 10; this.myRows = 9; this.myColumns = 9; this.InitView(); this.InitButton(); this.setDefaultCloseOperation(this.EXIT_ON_CLOSE); public Game(int row, int column, int numbomb) Dimension dimension = Toolkit.getDefaultToolkit().getScreenSize();

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1