Les exemples de cet article partagent avec vous le code spécifique du jeu Java Mine-Sweeping pour votre référence. Le contenu spécifique est le suivant
Importer java.awt.borderlayout; import java.awt.color; import java.awt.connainer; import java.awt.gridlayout; import java.awt.insets; import java.awt.Label; java.awt.event.itemEvent; import java.awt.event.itemListener; import java.awt.event.mouseevent; import java.awt.event.mouseListener; import java.util.random; Importer javax.swing.jbutton; import javax.swing.jcombobox; import javax.swing.jframe; import javax.swing.joptionpane; import javax.swing.jpanel; classe publique Saolei implémente MouseListener, ActionListener {jpanel p = new JPanel (); JFrame frame = new JFrame ("mine-sweeping"); @SuppressWarnings ("RawTypes") JCOMBOBOX COMBOBOX = new JComboBox (); Jbutton reset = new Jbutton ("redémarrer"); Conteneur conteneur = nouveau conteneur (); // Structure de données de jeu saoleiConstant constante = new saoleiConstant (); JBUTTON [] [] BOTTONS = NOUVEAU JBUTTON [constant.row] [constant.col]; // Définir le bouton Int [] [] Counts = NOUVEAU INT [CONSTANT.ROW] [CONSTANT.COL]; // Define Integer Array Number Under the Button // Create Constructor public saolei () {// Show Window Frame. frame.setDefaultCloseOperation (jframe.exit_on_close); frame.setLayout (new BorderLayout ()); // Ajouter une répétition et sélectionner le bouton de difficulté addTopButton (); // Ajouter le bouton de champ de mine addButtons (); // Mine brune addlei (); // ajouter le nombre de foudre calcneibolei (); frame.setVisible (true); } void addTopButton () {p.RemoveAll (); P.ADD (réinitialisation); reset.setbackground (Color.Green); reset.setOpaque (true); reset.addactionListener (this); //combobox.additem("Select difficulté "); combobox.additem ("Débutant de la difficulté"); combobox.additem ("difficulté de base"); combobox.additem ("difficulté intermédiaire"); combobox.additem ("difficulté avancée"); combobox.additem ("Master Difficulty"); combobox.setbackground (Color.Green); combobox.setOpaque (true); combobox.additemListener (new ItemListener () {@Override public void itemStateChanged (itemEvent e) {string item = e.getItem (). toString (); if (item == "newbie difficulté") {constant.leiCount = 20; résetgame. Resetgame (); P.ADD (ComboBox); frame.add (p, borderlayout.north); //p.add(New Label ("Nombre total de threads:" + constante.leiCount, label.center)); //p.add(New Label ("Nombre total de threads:" + constante.leiCount, label.Right)); } / * void addnandubutton () {nandu.setbackground (colore.green); nandu.setopaque (true); nandu.addactionListener (this); frame.add (nandu, borderlayout.west); } void addReSetButton () {reset.setBackground (Color.Green); reset.setOpaque (true); reset.addactionListener (this); //reset.addmousseListener(this); frame.add (reset, borderlayout.north); } * / void addlei () {random rand = new random (); int Randrow, Randcol; for (int i = 0; i <constante.leiCount; i ++) {randrow = rand.nextint (constant.Row); randcol = rand.nextint (constant.col); if (compte [randrow] [randcol] == constant.leicode) {i--; } else {compts [randrow] [randcol] = constant.leicode; //Buttons ·Randrow LOBTOW ° RandCol. }}} void addButtons () {frame.add (conteneur, borderlayout.center); contener.SetLayout (new GridLayout (constant.Row, constant.col)); for (int i = 0; i <constante.Row; i ++) {for (int j = 0; j <constante.col; j ++) {jbutton bouton = new JButton (); Button.SetBackground (Color.white); Button.SetOpaque (true); Button.AddactionListener (this); Button.AddMouseListener ((MouseListener) this); boutons [i] [j] = bouton; contener.add (bouton); }}} void calcneibolei () {int count; for (int i = 0; i <constante.Row; i ++) {for (int j = 0; j <constante.col; j ++) {count = 0; if (compte [i] [j] == constant.leicode) continue; if (i> 0 && j> 0 && count [i-1] [j-1] == constant.leicode) count ++; if (i> 0 && couvre [i-1] [j] == constant.leicode) count ++; if (i> 0 && j <19 && count [i-1] [j + 1] == constant.leicode) count ++; if (j> 0 && couvre [i] [j-1] == constant.leicode) count ++; if (j <19 && couvre [i] [j + 1] == constant.leicode) count ++; if (i <19 && compts [i] [j + 1] == constant.leicode) count ++; if (i <19 && j> 0 && count [i + 1] [j-1] == constant.leicode) count ++; if (i <19 && compts [i + 1] [j-1] == constant.leicode) count ++; if (i <19 && compts [i + 1] [j] == constant.leicode) count ++; if (i <19 && j <19 && couvre [i + 1] [j + 1] == constant.leicode) count ++; compte [i] [j] = count; boutons [i] [j] .setmargin (nouveaux encarts (0,0,0,0)); // Laissez le bouton changer avec le motif sur le bouton // boutons [i] [j] .setText (compte [i] [j] + ""); }}} @Override public void ActionPerformed (ActionEvent e) {JButton Button = (JButton) e.getsource (); if (Button.equals (reset)) {resetgame (); // redémarrer le jeu} else {int count = 0; for (int i = 0; i <constante.Row; i ++) {for (int j = 0; j <constante.col; j ++) {if (Button.equals (boutons [i] [j])) {count = counts [i] [j]; if (count == constant.leicode) {LoseGame (); } else {opencell (i, j); checkWin (); } retour; }}}}}}}}}}}}} public void Mouseclicked (MouseEvent E) {JBUTTON Button = (JButton) e.getsource (); if (e.getButton () == MouseEvent.Button3) {// jugez l'action du clic droit de la souris pour (int i = 0; i <constante.row; i ++) {for (int j = 0; j <constante.col; j ++) {if (Button.equals (boutons [i] [j])) {if ((boutons [i] [j]. {//buttons ° je boutons [i] [j] .setmargin (nouveaux encarts (0,0,0,0)); // Laissez les boutons changer avec le motif sur les boutons de boutons [i] [j] .setText ("?"); retour; }}}}}}}}}} void resetgame () {for (int i = 0; i <constante.row; i ++) {for (int j = 0; j <constante.col; j ++) {Buttons [i] [j] .settext (""); boutons [i] [j] .setEnabled (true); boutons [i] [j] .setbackground (color.white); compte [i] [j] = 0; }} addlei (); calcneibolei (); } void checkwin () {for (int i = 0; i <constante.Row; i ++) {for (int j = 0; j <constante.col; j ++) {if (Buttons [i] [j] .isenabled () == true && counts [i] [j]! = constante.leicode) return; }} Joptionpane.showMessageDialog (cadre, "Ouais, tu as gagné!"); } // Utilisez la méthode récursive pour opencell (int i, int j) {if (boutons [i] [j] .iseNabled () == false) return; boutons [i] [j] .setbackground (color.yellow); boutons [i] [j] .setOpaque (true); boutons [i] [j] .setEnabled (false); if (compte [i] [j] == 0) {if (i> 0 && j> 0 && couvre [i-1] [j-1]! = constant.leicode) opencell (i-1, j-1); if (i> 0 && j <19 && couvre [i-1] [j]! = constant.leicode) opencell (i-1, j); if (i> 0 && j <19 && couvre [i-1] [j + 1]! = constant.leicode) opencell (i-1, j + 1); if (j> 0 && couvre [i] [j-1]! = constant.leicode) opencell (i, j-1); if (j <19 && couvre [i] [j + 1]! = constant.leicode) opencell (i, j + 1); if (i <19 && j> 0 && counes [i + 1] [j-1]! = constant.leicode) opencell (i + 1, j-1); if (i <19 && compte [i + 1] [j]! = constant.leicode) opencell (i + 1, j); if (i <19 && j <19 && couvre [i + 1] [j + 1]! = constant.leicode) opencell (i + 1, j + 1); } else {boutons [i] [j] .setMargin (nouveaux encarts (0,0,0,0)); boutons [i] [j] .seTTeTXt (compte [i] [j] + ""); }} void LostGame () {for (int i = 0; i <constante.row; i ++) {for (int j = 0; j <constante.col; j ++) {int count = counts [i] [j]; if (count == constant.leicode) {boutons [i] [j] .setmargin (nouveaux encarts (0,0,0,0)); boutons [i] [j] .seTTeTXt ("lei"); boutons [i] [j] .setbackground (color.red); boutons [i] [j] .setEnabled (false); } else {boutons [i] [j] .setMargin (nouveaux encarts (0,0,0,0)); boutons [i] [j] .seTTeTXt (count + ""); boutons [i] [j] .setEnabled (false); }}} Joptionpane.showMessageDialog (cadre, "Erreur, vous avez perdu!"); } public static void main (String [] args) {new saolei (); } @Override public void Mousdressressed (Mouseevent e) {// Todo Méthode générée automatiquement Stub} @Override public void Mouselele tournable (Mouseevent E) {// Todo Auto-Generated Method Stub} @Override Public Void Mouseentered (MouseEevent E) {// TODO AUTO-généré par la méthode MouseExited (Mouseevent E) {// TODO Méthode générée automatiquement Stub}}Classe constante
classe publique saoleiConSant {final int row = 20; // nombre de lignes 30 final int col = 20; // nombre de colonnes 30 final int Leicode = 10; // définir le nombre sous le tonnerre protégé int temp = 20; protégé int leicount = temp; // nombre de tonnerre 30}Diagramme de reproduction
Pour des jeux plus excitants, veuillez vous référer au sujet spécial "Java Classic Games"
Ce qui précède est tout le contenu de cet article. J'espère que cela sera utile à l'apprentissage de tous et j'espère que tout le monde soutiendra davantage Wulin.com.