首页 JAVA扫雷游戏代码

JAVA扫雷游戏代码

举报
开通vip

JAVA扫雷游戏代码JAVA扫雷游戏代码 import java.awt.*; import java.awt.event.*; import javax.swing.*; public class Frame extends JFrame { JTextField text,text1; JLabel nowBomb, setBomb,mianji; int BombNum, BlockNum=81; // µ?Ç?À×Êý,µ?Ç????éÊý int rightBomb, restBomb, restBlock...

JAVA扫雷游戏代码
JAVA扫雷游戏代码 import java.awt.*; import java.awt.event.*; import javax.swing.*; public class Frame extends JFrame { JTextField text,text1; JLabel nowBomb, setBomb,mianji; int BombNum, BlockNum=81; // µ?Ç?À×Êý,µ?Ç????éÊý int rightBomb, restBomb, restBlock; // ÕÒµ?µÄµØÀ×Êý??Ê?ÓàÀ×Êý??Ê?Óà???éÊý JButton start = new JButton("ÖÐ??"); //?ªÊ???Å? JButton start1 = new JButton("?õ??"); JButton start2 = new JButton("×Ô??Òå"); JButton start3 = new JButton("?ªÊ?"); JPanel MenuPamel = new JPanel(); //?˵?Ãæ?å JPanel bombPanel = new JPanel(); //???éÃæ?å Bomb[][] bombButton;//À×ÀàÊý×é int k=1; JPanel c; //Ö?Ãæ?å BorderLayout borderLayout1 = new BorderLayout(); //?ß?ç???Ö GridLayout gridLayout1 = new GridLayout(); //Íø?ñ???Ö public Frame() { try { setDefaultCloseOperation(EXIT_ON_CLOSE); jbInit(); } catch (Exception exception) { exception.printStackTrace(); } } /*Ö?Ãæ?åÊôÐÔÉèÖÃ*/ public void jbInit() throws Exception { c = (JPanel) getContentPane(); setTitle("É?À×"); c.setBackground(Color.WHITE); MenuPamel.setBackground(Color.YELLOW); c.setLayout(borderLayout1); if(BlockNum==81){ setSize(new Dimension(450, 450)); BombNum = 10; } setResizable(false); //???éÊý //À×Êý if(k==0||k==2) { if(k==0){ text = new JTextField("196", 3); //À×ÊýÎÄ??ÏÔÊ? text1 = new JTextField("20", 2); k=2; } BombNum=Integer.parseInt(text1.getText().trim()); BlockNum=Integer.parseInt(text.getText().trim()); if (BombNum>BlockNum||BlockNum>225) { JOptionPane.showMessageDialog(null, "ÄúÉèÖõÄÀ×Ì??à?òÃæ?ý?ý?ó,ÇëÖØÉè!", "?íÎó", JOptionPane.ERROR_MESSAGE); BombNum=20; BlockNum=196; } nowBomb = new JLabel("µ?Ç?À×Êý" + ":" + BombNum); setBomb = new JLabel("À×Êý"+":"); mianji=new JLabel("Ãæ?ý"+":"); setSize(new Dimension(50*(int) Math.sqrt(BlockNum), 50*(int) Math.sqrt(BlockNum))); MenuPamel.add(setBomb); MenuPamel.add(text1); MenuPamel.add(mianji); MenuPamel.add(text); MenuPamel.add(start3); MenuPamel.add(start); MenuPamel.add(start1); MenuPamel.add(nowBomb); } start.addActionListener(new Frame1_start_actionAdapter(this)); start1.addActionListener(new Frame1_start_actionAdapter(this)); start2.addActionListener(new Frame1_start_actionAdapter(this)); start3.addActionListener(new Frame1_start_actionAdapter(this));//?ªÊ???Å? /*Ôö?Ó?˵?*/if(k==1){ nowBomb = new JLabel("µ?Ç?À×Êý" + ":" + BombNum); setBomb = new JLabel("À×Êý"+":"+BombNum); MenuPamel.add(setBomb); MenuPamel.add(start1); MenuPamel.add(start); MenuPamel.add(start2); MenuPamel.add(nowBomb); } c.add(MenuPamel, java.awt.Border/*Ìí?Ó???é*/ bombPanel.setLayout(gridLayout1); gridLayout1.setColumns( (int) Math.sqrt(BlockNum)); //(int) Math.sqrt(BlockNum)ÊÇ×Ü???éÊýµÄÆ????ù gridLayout1.setRows( (int) Math.sqrt(BlockNum)); bombButton = new Bomb[ (int) Math.sqrt(BlockNum)][ (int) Math.sqrt(BlockNum)]; for (int i = 0; i < (int) Math.sqrt(BlockNum); i++) { for (int j = 0; j < (int) Math.sqrt(BlockNum); j++) { bombButton[i][j] = new Bomb(i, j); //bombButton[i][j].setSize(10, 10); bombButton[i][j].setFont(new Font("", Font.PLAIN, 14)); //ÉèÖÃ×ÖÌå?óÐ? bombButton[i][j].setForeground(Color.white); bombButton[i][j].addMouseListener(new Bomb_mouseAdapter(this)); bombButton[i][j].addActionListener(new Bomb_actionAdapter(this)); bombPanel.add(bombButton[i][j]); } } c.add(bombPanel, java.awt.BorderLayout.CENTER); //???é?ÓÈëÎ?Öà startBomb(); //?ªÊ???À× } public void zhongji() throws Exception{ setSize(new Dimension(600, 600)); BlockNum=144; BombNum = 30; k=1; jbInit(); } public void chuji() throws Exception{ setSize(new Dimension(300, 300)); BlockNum=81; BombNum =10; k=1; jbInit(); } public void zidingyi() throws Exception{ k=0; jbInit(); } /* ?ªÊ?,??À× */ public void startBomb() { nowBomb.setText("µ?Ç?À×Êý" + "?º" + BombNum); for (int i = 0; i < (int) Math.sqrt(BlockNum); i++) { for (int j = 0; j < (int) Math.sqrt(BlockNum); j++) { bombButton[i][j].isBomb = false; bombButton[i][j].isClicked = false; bombButton[i][j].isRight = false; bombButton[i][j].BombFlag = 0; bombButton[i][j].BombRoundCount = 9; bombButton[i][j].setEnabled(true); //µã????Å???ÔÙÊ?Óà bombButton[i][j].setText(""); bombButton[i][j].setFont(new Font("", Font.PLAIN, 14));//ÉèÖÃ×ÖÌå?óÐ? bombButton[i][j].setForeground(Color.BLUE); rightBomb = 0; restBomb = BombNum; restBlock = BlockNum - BombNum; } } for (int i = 0; i < BombNum; ) { int x = (int) (Math.random() * (int) (Math.sqrt(BlockNum) - 1)); int y = (int) (Math.random() * (int) (Math.sqrt(BlockNum) - 1)); if (bombButton[x][y].isBomb != true) { bombButton[x][y].isBomb = true; i++; } } CountRoundBomb(); } /* ?ÆËã???éÖÜÎ?À×Êý */ public void CountRoundBomb() { for (int i = 0; i < (int) Math.sqrt(BlockNum); i++) { for (int j = 0; j < (int) Math.sqrt(BlockNum); j++) { int count = 0; // µ?ÐèÒª?ì?âµÄµ?Ôª?ñ??ÉíÎÞµØÀ×µÄÇé?öÏÂ,Í??ÆÖÜÎ?µÄµØÀ×?öÊý if (bombButton[i][j].isBomb != true) { for (int x = i - 1; x < i + 2; x++) { for (int y = j - 1; y < j + 2; y++) { if ( (x >= 0) && (y >= 0) && (y < ( (int) Math.sqrt(BlockNum)))) { if (bombButton[x][y].isBomb == true) { count++; } } } } bombButton[i][j].BombRoundCount = count; } } } } /* ÊÇ?ñÍÚÍêÁËËùÓеÄÀ× */ public void isWin() { restBlock = BlockNum - BombNum; for (int i = 0; i < (int) Math.sqrt(BlockNum); i++) { for (int j = 0; j < (int) Math.sqrt(BlockNum); j++) { if (bombButton[i][j].isClicked == true) { restBlock--; } } } if (rightBomb == BombNum || restBlock == 0) { JOptionPane.showMessageDialog(this, "ÄúÍÚÍêÁËËùÓеÄÀ×??ÄúÊ?ÀûÁË!", "Ê?Àû", JOptionPane.INFORMATION_MESSAGE); startBomb(); } } /*µ?Ñ?ÖеÄÎ?ÖÃΪ?Õ,Ôò?,?ªÖÜÎ?µÄµØÍ?*/ public void isNull(Bomb ClickedButton) { int i, j; i = ClickedButton.num_x; j = ClickedButton.num_y; for (int x = i - 1; x < i + 2; x++) { for (int y = j - 1; y < j + 2; y++) { if ( ( (x != i) || (y != j)) && (x >= 0) && (y >= 0) && (x < ( (int) Math.sqrt(BlockNum))) && (y < ( (int) Math.sqrt(BlockNum)))) { if (bombButton[x][y].isBomb == false && bombButton[x][y].isClicked == false && bombButton[x][y].isRight == false) { turn(bombButton[x][y]); } } } } } /* ?,?ª */ public void turn(Bomb ClickedButton) { ClickedButton.setEnabled(false); //µã????Å???ÔÙÊ?Óà ClickedButton.isClicked = true; if (ClickedButton.BombRoundCount > 0) { ClickedButton.setText(ClickedButton.BombRoundCount + ""); } else { isNull(ClickedButton); } } /* ×ó?üµã?? */ public void actionPerformed(ActionEvent e) { if ( ( (Bomb) e.getSource()).isClicked == false && ( (Bomb) e.getSource()).isRight == false) { if ( ( (Bomb) e.getSource()).isBomb == false) { turn( ( (Bomb) e.getSource())); isWin(); } else { for (int i = 0; i < (int) Math.sqrt(BlockNum); i++) { for (int j = 0; j < (int) Math.sqrt(BlockNum); j++) { if (bombButton[i][j].isBomb == true) { bombButton[i][j].setText("À×"); } } } ( (Bomb) e.getSource()).setForeground(Color.RED); ( (Bomb) e.getSource()).setFont(new Font("", Font.BOLD, 20)); ( (Bomb) e.getSource()).setText("X"); JOptionPane.showMessageDialog(this, "Äã?ȵ?µØÀ×ÁË????È???ÖØÀ?", "?ȵ?µØÀ×", 2); startBomb(); } } } /* ÓÒ?üµã?? */ public void mouseClicked(MouseEvent e) { Bomb bombSource = (Bomb) e.getSource(); boolean right = SwingUtilities.isRi if ( (right == true) && (bombSource.isClicked == false)) { bombSource.BombFlag = (bombSource.BombFlag + 1) % 3; if (bombSource.BombFlag == 1) { if (restBomb > 0) { bombSource.setForeground(Color.RED); bombSource.setText("Æì"); bombSource.isRight = true; restBomb--; } else { bombSource.BombFlag = 0; } } else if (bombSource.BombFlag == 2) { restBomb++; bombSource.setText("?"); bombSource.isRight = false; } else { bombSource.setText(""); } if (bombSource.isBomb == true) { if (bombSource.BombFlag == 1) { rightBomb++; } else if (bombSource.BombFlag == 2) { rightBomb--; } } nowBomb.setText("µ?Ç?À×Êý" + ":" + restBomb); isWin(); } } public static void main(String[] args) { Frame frame = new Frame(); frame.setVisible(true); } } class Frame1_start_actionAdapter implements ActionListener { private Frame adaptee; Frame1_start_actionAdapter(Frame adaptee) { this.adaptee = adaptee; } //?? public void actionPerformed(ActionEvent e) { adaptee.c.removeAll(); adaptee.MenuPamel.removeAll(); adaptee.bombPanel.removeAll(); Object obj = e.getSource(); if(obj==adaptee.start){ try { adaptee.zhongji(); } catch (Exception e1) { e1.printStackTrace(); }//ÏìÓ?buttonÊÂ?þ } if(obj==adaptee.start2){ try { adaptee.zidingyi(); } catch (Exception e1) { e1.printStackTrace(); } } if(obj==adaptee.start1){ try { adaptee.chuji(); } catch (Exception e1) { e1.printStackTrace(); }//ÏìÓ?buttonÊÂ?þ } if(obj==adaptee.start3){ try { adaptee.jbInit(); } catch (Exception e1) { e1.printStackTrace(); } } } private void zhongji() { // TODO Auto-generated method stub } } //////////////////////////// class Bomb extends JButton { int num_x, num_y; // µÚ??ºÅ???é int BombRoundCount; // ÖÜÎ?À×Êý boolean isBomb; // ÊÇ?ñΪÀ× boolean isClicked; // ÊÇ?ñ??µã?? int BombFlag; // Ì?À×?ê?Ç boolean isRight; // ÊÇ?ñµã??ÓÒ?ü public Bomb(int x, int y) { num_x = x; num_y = y; BombFlag = 0; BombRoundCount = 9; isBomb = false; isClicked = false; isRight = false; } } class Bomb_actionAdapter implements ActionListener { private Frame adaptee; Bomb_actionAdapter(Frame adaptee) { this.adaptee = adaptee; } public void actionPerformed(ActionEvent e) { adaptee.actionPerformed(e); } } class Bomb_mouseAdapter extends MouseAdapter { private Frame adaptee; Bomb_mouseAdapter(Frame adaptee) { this.adaptee = adaptee; } public void mouseClicke adaptee.mouseClicked(e); } }
本文档为【JAVA扫雷游戏代码】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_496339
暂无简介~
格式:doc
大小:40KB
软件:Word
页数:16
分类:生活休闲
上传时间:2017-09-30
浏览量:228