Os exemplos deste artigo compartilham com você o código específico do Java Weeping Game para sua referência. O conteúdo específico é o seguinte
importar java.awt.borderlayout; importar java.awt.color; importar java.awt.container; importar java.awt.gridlayout; importar java.awt.insets; importação java.awt.label; import.awt.event.ActionEvent; Import. java.awt.event.itemevent; importar java.awt.event.itemListener; importar java.awt.event.mouseevent; importar java.awt.event.mouseListener; importar java.util.random; importar javax.swing.jbutton; importar javax.swing.jcombobox; importar javax.swing.jframe; importar javax.swing.joptionpane; importar javax.swing.jpanel; classe pública saolei implementa MouseListener, ActionListener {jpanel p = new jpanel (); JFRame Frame = new JFrame ("Mine Weeping"); @Suppresswarnings ("RawTypes") JCOMBOBOX combnoBox = new JCOMBOBOX (); Redefinição jbutton = novo jbutton ("reiniciar"); Contêiner contêiner = new container (); // Estrutura de dados do jogo Saoleiconstant Constant = new Saoleiconstant (); JButton [] [] botões = novo jbutton [constant.Row] [constant.col]; // define botão int [] [] contagens = new int [constant.row] [constant.col]; // definir um conjunto inteiro. frame.setResizable (false); frame.setDefaultCloseoperation (jframe.exit_on_close); frame.setLayout (new BorderLayout ()); // Adicione repetir e selecione o botão de dificuldade AddTopButton (); // Adicione o botão do campo minado AddButtons (); // brown mine addlei (); // Adicionar contagem de raios calcneibolei (); frame.setVisible (true); } void addTopButton () {p.Removeall (); P.Add (Reset); reset.setBackground (color.green); reset.setOpAque (true); reset.addactionListener (isto); //combobox.additem("select dificuldade "); ComboBox.additem ("Dificuldade de Newbie"); ComboBox.additem ("Dificuldade Básica"); ComboBox.additem ("Dificuldade Intermediária"); ComboBox.additem ("Dificuldade Avançada"); ComboBox.additem ("Dificuldade mestre"); ComboBox.setBackground (color.green); ComboBox.setOpaque (True); ComboBox.additemListener (new ItemListener () {@Override public void ItemStateChanged (itemEvent e) {string item = e.getItem (). RESETGEM (); P.Add (ComboBox); frame.add (p, borderlayout.north); //P.Add(new Label ("Número total de threads:"+constant.leicount, label.center)); //p.add(new Label ("Número total de threads:"+constant.leicount, Label.right)); } /* void addnandubutton () {nandu.setbackground (color.green); nandu.setOpaque (true); nandu.addactionListener (isto); frame.add (Nandu, borderlayout.west); } void addReSetButton () {reset.setbackground (color.green); reset.setOpAque (true); reset.addactionListener (isto); //reset.addmouseListener(This); frame.add (redefinir, borderlayout.north); } */ void addlei () {aleatória 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 (conta [Randrow] [randcol] == constant.leicode) {i--; } else {counts [randrow] [randcol] = constant.leicode; //buttons Ohrandrow]. }}} void addButtons () {frame.add (contêiner, borderlayout.center); container.setLayout (novo 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 (TRUE); Button.AddactionListener (isto); button.addmouselistener ((mouselistener) isso); botões [i] [j] = botão; container.add (botão); }}} void calcNeibolei () {int count; for (int i = 0; i <constant.row; i ++) {for (int j = 0; j <constant.col; j ++) {count = 0; if (conta [i] [j] == constant.leicode) continue; if (i> 0 && j> 0 && couts [i-1] [j-1] == constant.leicode) count ++; if (i> 0 && couts [i-1] [j] == constant.leicode) count ++; if (i> 0 && j <19 && couts [i-1] [j+1] == constant.leicode) count ++; if (j> 0 && couts [i] [j-1] == constant.leicode) count ++; if (j <19 && couts [i] [j+1] == constant.leicode) count ++; if (i <19 && couts [i] [j+1] == constant.leicode) count ++; if (i <19 && j> 0 && couts [i+1] [j-1] == constant.leicode) count ++; if (i <19 && couts [i+1] [j-1] == constant.leicode) count ++; if (i <19 && couts [i+1] [j] == constant.leicode) count ++; if (i <19 && j <19 && couts [i+1] [j+1] == constant.leicode) count ++; contagens [i] [j] = count; botões [i] [j] .setMargin (novas inserções (0,0,0,0)); // Deixe o botão alterar com o padrão no botão // botões [i] [j] .Settext (conta [i] [j] + ""); }}} @Override public void ActionPerformed (ActionEvent E) {JButton Button = (JButton) E.GetSource (); if (botão.equals (reset)) {resetGame (); // reinicie o jogo} else {int count = 0; for (int i = 0; i <constant.row; i ++) {for (int j = 0; j <constant.col; j ++) {if (button.equals (botões [i] [j])) {count = contagens [i] [j]; if (count == constant.Leicode) {LoseGame (); } else {OpenCell (i, j); checkwin (); } retornar; }}}}}}}}}}}}} public void mouseclicked (mouseevent e) {jbutton button = (jbutton) e.getSource (); if (e.getButton () == mouseevent.button3) {// julgue o clique com o botão direito do mouse do mouse para (int i = 0; i <constant.Row; i ++) {for (int j = 0; j <constant.col; j ++) {if (button.oquals (butts [i] [j]. {//buttons Ohi-lem.J ].setEnabled(false); botões [i] [j] .setMargin (novas inserções (0,0,0,0)); // Deixe os botões mudarem com o padrão nos botões dos botões [i] [j] .settext ("?"); retornar; }}}}}}}}}} void resetGame () {for (int i = 0; i <constant.row; i ++) {for (int j = 0; j <constant.col; j ++) {botões [i] [j] .settxt (""); botões [i] [j] .setEnabled (true); botões [i] [j] .setbackground (color.white); contagens [i] [j] = 0; }} addlei (); calcneibolei (); } void checkwin () {for (int i = 0; i <constant.row; i ++) {for (int j = 0; j <constant.col; j ++) {if (botões [i] [j] .iSenabled () == true && contagem [i] [j]! }} JoptionPane.showMessagedialog (quadro: "Sim, você ganhou!"); } // Use o método recursivo para OpenCell (int i, int j) {if (botões [i] [j] .isenabled () == false) return; botões [i] [j] .setbackground (color.yellow); botões [i] [j] .setOpAque (true); botões [i] [j] .setEnabled (false); if (conta [i] [j] == 0) {if (i> 0 && j> 0 && couts [i-1] [j-1]! = constant.leicode) OpenCell (i-1, j-1); if (i> 0 && j <19 && couts [i-1] [j]! = constant.leicode) OpenCell (i-1, j); if (i> 0 && j <19 && couts [i-1] [j+1]! = constant.leicode) OpenCell (i-1, j+1); if (j> 0 && conta [i] [j-1]! = constant.leicode) OpenCell (i, j-1); if (j <19 && couts [i] [j+1]! = constant.leicode) OpenCell (i, j+1); if (i <19 && j> 0 && couts [i+1] [j-1]! = constant.leicode) OpenCell (i+1, j-1); if (i <19 && couts [i+1] [j]! = constant.leicode) OpenCell (i+1, j); if (i <19 && j <19 && conta [i+1] [j+1]! = constant.leicode) OpenCell (i+1, j+1); } else {botões [i] [j] .setMargin (novas inserções (0,0,0,0)); botões [i] [j] .Settext (conta [i] [j] + ""); }} void losegame () {for (int i = 0; i <constant.row; i ++) {for (int j = 0; j <constant.col; j ++) {int contou = counts [i] [j]; if (count == constant.leicode) {botões [i] [j] .setMargin (novas inserções (0,0,0,0)); botões [i] [j] .Settext ("Lei"); botões [i] [j] .setbackground (color.red); botões [i] [j] .setEnabled (false); } else {botões [i] [j] .setMargin (novas inserções (0,0,0,0)); botões [i] [j] .Settext (contagem + ""); botões [i] [j] .setEnabled (false); }}} JoptionPane.showMessagedialog (quadro, "Erro, você perdeu!"); } public static void main (string [] args) {new saolei (); } @Override public void mousePressed(MouseEvent e) { // TODO Auto-generated method stub } @Override public void mouseReleased(MouseEvent e) { // TODO Auto-generated method stub } @Override public void mouseEntered(MouseEvent e) { // TODO Auto-generated method stub } @Override public void mouseexited (mouseevent e) {// TODO Method Stub}}} stub}Classe constante
classe pública Saoleiconstant {final int linha = 20; // Número de linhas 30 final int col = 20; // Número de colunas 30 final int leicode = 10; // Defina o número abaixo do Thunder Protected Int Temp = 20; protegido int leicount = temp; // número de trovão 30}Diagrama de reprodução
Para jogos mais emocionantes, consulte o tópico especial "Java Classic Games"
O exposto acima é todo o conteúdo deste artigo. Espero que seja útil para o aprendizado de todos e espero que todos apoiem mais o wulin.com.