为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

JAVA扫雷代码

2017-10-06 13页 doc 34KB 31阅读

用户头像

is_637320

暂无简介

举报
JAVA扫雷代码JAVA扫雷代码 import java.awt.*; import java.awt.event.*; import javax.swing.*; public class Frame extends JFrame { JTextField text; JLabel nowBomb, setBomb; int BombNum, BlockNum; // µ?Ç?À×Êý,µ?Ç????éÊý int rightBomb, restBomb, restBlock; // ÕÒµ?µÄµØÀ×Êý??Ê?ÓàÀ...
JAVA扫雷代码
JAVA扫雷代码 import java.awt.*; import java.awt.event.*; import javax.swing.*; public class Frame extends JFrame { JTextField text; JLabel nowBomb, setBomb; int BombNum, BlockNum; // µ?Ç?À×Êý,µ?Ç????éÊý int rightBomb, restBomb, restBlock; // ÕÒµ?µÄµØÀ×Êý??Ê?ÓàÀ×Êý??Ê?Óà???éÊý JButton start = new JButton(" ?ªÊ? "); JPanel MenuPamel = new JPanel(); JPanel bombPanel = new JPanel(); Bomb[][] bombButton; JPanel c; BorderLayout borderLayout1 = new BorderLayout(); GridLayout gridLayout1 = new GridLayout(); public Frame() { try { setDefaultCloseOperation(EXIT_ON_CLOSE); jbInit(); } catch (Exception exception) { exception.printStackTrace(); } } private void jbInit() throws Exception { c = (JPanel) getContentPane(); setTitle("É?À×"); c.setBackground(Color.WHITE); MenuPamel.setBackground(Color.GRAY); c.setLayout(borderLayout1); setSize(new Dimension(600, 600)); setResizable(false); BlockNum = 144; BombNum = 10; text = new JTextField("10 ", 3); nowBomb = new JLabel("µ?Ç?À×Êý" + ":" + BombNum); setBomb = new JLabel("ÉèÖõØÀ×Êý"); start.addActionListener(new Frame1_start_actionAdapter(this)); MenuPamel.add(setBomb); MenuPamel.add(text); MenuPamel.add(start); MenuPamel.add(nowBomb); c.add(MenuPamel, java.awt.BorderLayout.SOUTH); bombPanel.setLayout(gridLayout1); gridLayout1.setColumns( (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 start_actionPerformed(ActionEvent e) { int num=Integer.parseInt(text.getText().trim()); if (num >= 5 && num < 50) { BombNum = num; startBomb(); } else if (num < 5) { JOptionPane.showMessageDialog(null, "ÄúÉèÖõĵØÀ×ÊýÌ?ÉÙÁË,ÇëÖØÉè!", "?íÎó", JOptionPane.ERROR_MESSAGE); num=10; BombNum = num; } else { JOptionPane.showMessageDialog(null, "ÄúÉèÖõĵØÀ×ÊýÌ??àÁË,ÇëÖØÉè!", "?íÎó", JOptionPane.ERROR_MESSAGE); num=10; BombNum = num; } } /* ?ªÊ?,??À× */ 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) && (x < ( (int) Math.sqrt(BlockNum))) && (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("b"); } } } ( (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.isRightMouseButton(e); 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("F"); bombSource.isRight = true; restBomb--; } else { bombSource.BombFlag = 0; } } else if (bombSource.BombFlag == 2) { restBomb++; bombSource.setText("Q"); 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.start_actionPerformed(e); } } //////////////////////////// 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 mouseClicked(MouseEvent e) { adaptee.mouseClicked(e); } }
/
本文档为【JAVA扫雷代码】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索