Los ejemplos en este artículo comparten con ustedes el código específico del juego de barrido de la minera Java para su referencia. El contenido específico es el siguiente
import java.awt.borcyloyout; import java.awt.color; import java.awt.container; import java.awt.gridLayout; import java.awt.insets; import java.awt.label; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; importar; import java.awt.event.itemevent; import java.awt.event.ItemListener; import java.awt.event.MouseEvent; import java.awt.event.MouseListener; import java.util.random; import javax.swing.jbutton; import javax.swing.jcomboBox; import javax.swing.jframe; import javax.swing.JOptionPane; import javax.swing.jpanel; La clase pública Saolei implementa Mouselistener, ActionListener {jpanel p = new jpanel (); Jframe marco = nuevo JFrame ("Mina-Sweeping"); @SupessWarnings ("RawTypes") jComboBox comboBox = new JComboBox (); JButton RESET = new JButton ("reiniciar"); Contenedor contenedor = nuevo contenedor (); // Estructura de datos del juego Saoleiconstant constant = new Saoleiconstant (); JButton [] [] Botones = new JButton [constant.row] [constant.col]; // define button int [] [] cuenta = new int [constant.row] [constant.col]; // define la matriz de enteros guardar el número debajo del botón // crea constructor public public saolei () {// show window frame.setsize (600,700); Frame.setResizable (falso); Frame.setDefaultCloseOperation (jframe.exit_on_close); Frame.setLayout (new BorderLayout ()); // Agregar repetición y seleccione el botón de dificultad addTopButton (); // Agregar botón de campo minado addButtons (); // marrón mina addlei (); // Agregar recuento de rayos Calcneibolei (); Frame.SetVisible (verdadero); } void addTopButton () {p.removeall (); p.Add (reinicio); reset.setbackground (color.green); reset.setOpaque (verdadero); reset.addactionListener (esto); //comboBox.additem("electe dificultad "); ComboBox.additem ("Dificultad del novato"); comboBox.additem ("dificultad básica"); comboBox.additem ("dificultad intermedia"); comboBox.additem ("dificultad avanzada"); ComboBox.additem ("Dificultad maestra"); comboBox.setBackground (color.green); ComboBox.SetOpaque (verdadero); comboBox.AddItemListener (new itemListener () {@Override public void itemStateChanged (itemEvent e) {string item = e.getItem (). toString (); if (item == "Dificultad de novato") {Constant.leicount = 20; ResetGame ();} Ose if (item == "Elementary Dificultad") {Constantery ") ResetGame (); P.Add (Combobox); Frame.Add (P, BorderLayout.north); //p.add(new etiqueta ("número total de hilos:"+constant.leicount, etiqueta.center)); //p.add(new etiqueta ("número total de hilos:"+constant.leicount, etiqueta.right)); } /* void addnandubutton () {nandu.setbackground (color.green); Nandu.SetOpaque (verdadero); nandu.addactionListener (esto); Frame.Add (Nandu, BorderLayout.West); } void addResetButton () {reset.setbackground (color.green); reset.setOpaque (verdadero); reset.addactionListener (esto); //reset.addmouselistener(this); Frame.Add (reinicio, borderLayout.north); } */ void addlei () {rand rand = new Random (); int Randrow, Randcol; for (int i = 0; i <constant.leicount; i ++) {randrow = rand.nextint (constant.row); randcol = rand.nextint (constant.col); if (cuenta [randrow] [randcol] == constant.leicode) {i--; } else {cuenta [randrow] [randcol] = constant.leicode; //Buttons+ ° CONSTROWELEDRENTES. }}} void addButtons () {frame.add (contenedor, borderLayout.center); Container.setLayout (nuevo GridLayout (constant.row, constant.col)); for (int i = 0; i <constant.row; i ++) {for (int j = 0; j <constant.col; j ++) {jButton Button = new JButton (); Button.setBackground (color.white); Button.SetOpaque (verdadero); botón.AddactionListener (esto); botón. AddMousElistener ((MouseListener) esto); Botones [i] [j] = botón; contenedor.add (botón); }}} void calcneibolei () {int count; for (int i = 0; i <constant.row; i ++) {for (int j = 0; j <constant.col; j ++) {count = 0; if (cuenta [i] [j] == constant.leicode) continuar; if (i> 0 && j> 0 && cuenta [i-1] [j-1] == constant.leicode) count ++; if (i> 0 && cuenta [i-1] [j] == constant.leicode) count ++; if (i> 0 && j <19 && cuenta [i-1] [j+1] == Constant.leicode) Count ++; if (j> 0 && cuenta [i] [j-1] == constant.leicode) count ++; if (j <19 && cuenta [i] [j+1] == constant.leicode) count ++; if (i <19 && cuenta [i] [j+1] == constant.leicode) count ++; if (i <19 && j> 0 && cuenta [i+1] [j-1] == constant.leicode) count ++; if (i <19 && cuenta [i+1] [j-1] == constant.leicode) count ++; if (i <19 && cuenta [i+1] [j] == constant.leicode) count ++; if (i <19 && j <19 && cuenta [i+1] [j+1] == Constant.leicode) Count ++; cuenta [i] [j] = Count; Botones [i] [j] .SetMargin (nuevas inserciones (0,0,0,0)); // deja que el botón cambie con el patrón en el botón // botones [i] [j] .settext (cuenta [i] [j] + ""); }}} @Override public Void ActionPerformed (ActionEvent E) {JButton Button = (JButton) E.GetSource (); if (Button.equals (reset)) {resetGame (); // reiniciar el juego} else {int count = 0; for (int i = 0; i <constant.row; i ++) {for (int j = 0; j <constant.col; j ++) {if (button.equals (botones [i] [j])) {Count = Counts [i] [j]; if (count == constant.leicode) {LoseGame (); } else {opencell (i, j); checkwin (); } devolver; }}}}}}}}}}}} public void MouseClicked (MouseEvent E) {JButton Button = (JButton) E.GetSource (); if (e.getButton () == MouseEvent.Button3) {// juzga la acción de clic derecho del mouse para (int i = 0; i <constant.row; i ++) {for (int j = 0; j <constant.col; j ++) {if (button.equals (buttons [i] [j])) {if ((buttons [i].] [I]. {//Buttons SOWIFENADADO. Botones [i] [j] .setMargin (nuevas inserciones (0,0,0,0)); // deja que los botones cambien con el patrón en los botones de los botones [i] [j] .settext ("?"); devolver; }}}}}}}}}} void resetGame () {for (int i = 0; i <constant.row; i ++) {for (int j = 0; j <constant.col; j ++) {botones [i] [j] .settext (""); Botones [i] [j] .setEnabled (true); botones [i] [j] .setbackground (color.white); cuenta [i] [j] = 0; }} addlei (); Calcneibolei (); } void checkwin () {for (int i = 0; i <constant.row; i ++) {for (int j = 0; j <constant.col; j ++) {if (botones [i] [j] .ISEnabled () == true && Counts [i] [j]! = Constant.leicode) return; }} JoptionPane.ShowMessEdialog (marco, "¡Sí, ganaste!"); } // Use el método recursivo para opencell (int i, int j) {if (botones [i] [j] .IsenAned () == false) return; Botones [i] [j] .setbackground (color.yellow); Botones [i] [j] .setOpaque (verdadero); Botones [i] [j] .setEnabled (falso); if (cuenta [i] [j] == 0) {if (i> 0 && j> 0 && cuenta [i-1] [j-1]! = constant.leicode) opencell (i-1, j-1); if (i> 0 && j <19 && cuenta [i-1] [j]! = constant.leicode) opencell (i-1, j); if (i> 0 && j <19 && cuenta [i-1] [j+1]! = constant.leicode) opencell (i-1, j+1); if (j> 0 && cuenta [i] [j-1]! = constant.leicode) opencell (i, j-1); if (j <19 && cuenta [i] [j+1]! = constant.leicode) opencell (i, j+1); if (i <19 && j> 0 && cuenta [i+1] [j-1]! = constant.leicode) opencell (i+1, j-1); if (i <19 && cuenta [i+1] [j]! = constant.leicode) opencell (i+1, j); if (i <19 && j <19 && cuenta [i+1] [j+1]! = constant.leicode) opencell (i+1, j+1); } else {botones [i] [j] .SetMargin (nuevas inserciones (0,0,0,0)); botones [i] [j] .settext (cuenta [i] [j] + ""); }} void LoseGame () {for (int i = 0; i <constant.row; i ++) {for (int j = 0; j <constant.col; j ++) {int count = Counts [i] [j]; if (count == constant.leicode) {botones [i] [j] .setMargin (nuevas inserciones (0,0,0,0)); botones [i] [j] .settext ("lei"); botones [i] [j] .setbackground (color.red); Botones [i] [j] .setEnabled (falso); } else {botones [i] [j] .SetMargin (nuevas inserciones (0,0,0,0)); botones [i] [j] .settext (cuenta + ""); Botones [i] [j] .setEnabled (falso); }}} JoptionPane.ShowMessEdialog (marco, "¡Error, perdiste!"); } public static void main (string [] args) {new Saolei (); } @Override public void MousePressed (MouseEvent E) {// TODO Método Generado automático} @Override public void MouserelEted (MouseEvent E) {// TODO Método Generado Autorgenerado} @Override public Void MouseMeuseRed (mouseEvent e) {// ado au MouseExited (MouseEvent E) {// TODO Auto Generado Método Stub}}Clase constante
clase pública saoleiconstant {final int row = 20; // número de filas 30 final int col = 20; // número de columnas 30 final int leicode = 10; // Defina el número debajo del trueno protegido int temp = 20; protegido int leicount = temp; // número de trueno 30}Diagrama de reproducción
Para juegos más emocionantes, consulte el tema especial "Java Classic Games"
Lo anterior es todo el contenido de este artículo. Espero que sea útil para el aprendizaje de todos y espero que todos apoyen más a Wulin.com.