ตัวอย่างในบทความนี้แบ่งปันรหัสเฉพาะของเกม Java Mine-Sweeping สำหรับการอ้างอิงของคุณ เนื้อหาเฉพาะมีดังนี้
นำเข้า java.awt.borderlayout; นำเข้า java.awt.color; นำเข้า java.awt.container; นำเข้า java.awt.Gridlayout; นำเข้า java.awt.insets; นำเข้า java.awt.label; java.awt.event.itemevent; นำเข้า java.awt.event.itemlistener; นำเข้า java.awt.event.mousevent; นำเข้า java.awt.event.mouselistener; นำเข้า java.util.random; นำเข้า Javax.swing.jbutton; นำเข้า Javax.swing.jcombobox; นำเข้า Javax.swing.jframe; นำเข้า Javax.swing.joptionpane; นำเข้า Javax.swing.jpanel; ระดับสาธารณะ Saolei ใช้ Mouselistener, ActionListener {JPanel P = new JPanel (); JFrame frame = new JFrame ("การกวาดเหมือง"); @suppresswarnings ("rawtypes") jcombobox combobox = new JcomboBox (); JButton Reset = new JButton ("รีสตาร์ท"); คอนเทนเนอร์คอนเทนเนอร์ = คอนเทนเนอร์ใหม่ (); // โครงสร้างข้อมูลเกมค่าคงที่ Saoleiconstant = new Saoleiconstant (); jbutton [] [] ปุ่ม = ใหม่ jbutton [constant.row] [constant.col]; // ปุ่มกำหนด int [] [] counts = new int [constant.row] [constant.col]; // define อาร์เรย์จำนวนมากบันทึกหมายเลขด้านล่างปุ่ม // สร้าง saolei สาธารณะ frame.setResizable (เท็จ); frame.setDefaultCloseoperation (jframe.exit_on_close); frame.setLayout (New BorderLayout ()); // เพิ่มซ้ำและเลือกปุ่มความยาก Addtopbutton (); // เพิ่มปุ่มทุ่นระเบิด addbuttons (); // Brown Mine Addlei (); // เพิ่ม Lightning Count Calcneibolei (); frame.setVisible (จริง); } void addtopbutton () {p.removeAll (); P.ADD (รีเซ็ต); RESET.SETBACKGRUAND (Color.Green); RESET.SETOPAQUE (จริง); RESET.ADDACTIONLISTENER (นี่); //combobox.additem("Select Forterny "); combobox.additem ("ความยากลำบากใหม่"); combobox.additem ("ความยากลำบากพื้นฐาน"); combobox.additem ("ความยากระดับกลาง"); combobox.additem ("ความยากลำบากขั้นสูง"); combobox.additem ("ความยากลำบากหลัก"); combobox.setbackground (color.green); combobox.setopaque (จริง); comboBox.additemListener (ใหม่ itemListener () {@Override โมฆะสาธารณะ itemStateChanged (itemEvent e) {string item = e.getItem (). toString (); ถ้า (รายการ == "ความยากลำบากใหม่") ResetGame (); P.Add (Combobox); frame.add (P, Borderlayout.north); //p.add( ใหม่ฉลาก ("จำนวนเธรดทั้งหมด:"+constant.leicount, label.center)); //p.add( ใหม่ฉลาก ("จำนวนเธรดทั้งหมด:"+constant.leicount, label.right)); } /* เป็นโมฆะ addnandubutton () {nandu.setbackground (color.green); Nandu.setOpaque (จริง); nandu.addactionListener (นี่); frame.add (Nandu, Borderlayout.west); } void addResetButton () {reset.setBackground (color.green); RESET.SETOPAQUE (จริง); RESET.ADDACTIONLISTENER (นี่); //reset.addmouselistener( นี้); frame.add (รีเซ็ต, Borderlayout.north); } */ void addlei () {random rand = new random (); int randrow, randcol; สำหรับ (int i = 0; i <constant.leicount; i ++) {randrow = rand.nextint (constant.row); randcol = rand.nextint (constant.col); if (counts [randrow] [randcol] == constant.leicode) {i--; } else {counts [randrow] [randcol] = constant.leicode; //buttons [randrow เหมือนกัน randcol เหมือนกัน. settext("x "); }}} void addButtons () {frame.add (คอนเทนเนอร์, BorderLayout.Center); container.setLayout (ใหม่ gridlayout (ค่าคงที่ Row, constant.col)); สำหรับ (int i = 0; i <constant.row; i ++) {สำหรับ (int j = 0; j <constant.col; j ++) {ปุ่ม jbutton = new jbutton (); button.setbackground (สีขาว); button.setOpaque (จริง); button.addactionListener (นี่); button.addmouselistener ((Mouselistener) สิ่งนี้); ปุ่ม [i] [j] = ปุ่ม; container.add (ปุ่ม); }}} void calcneibolei () {จำนวน int; สำหรับ (int i = 0; i <constant.row; i ++) {สำหรับ (int j = 0; j <constant.col; j ++) {count = 0; ถ้า (นับ [i] [j] == constant.leicode) ดำเนินการต่อ; if (i> 0 && j> 0 && นับ [i-1] [j-1] == constant.leicode) นับ ++; if (i> 0 && นับ [i-1] [j] == ค่าคงที่. leicode) นับ ++; if (i> 0 && j <19 && นับ [I-1] [j+1] == constant.leicode) นับ ++; if (j> 0 && นับ [i] [j-1] == ค่าคงที่. leicode) นับ ++; ถ้า (j <19 && นับ [i] [j+1] == ค่าคงที่. leicode) นับ ++; if (i <19 && นับ [i] [j+1] == constant.leicode) นับ ++; if (i <19 && j> 0 && นับ [i+1] [j-1] == constant.leicode) นับ ++; if (i <19 && นับ [i+1] [j-1] == constant.leicode) นับ ++; if (i <19 && นับ [i+1] [j] == constant.leicode) นับ ++; if (i <19 && j <19 && นับ [i+1] [j+1] == constant.leicode) นับ ++; นับ [i] [j] = นับ; ปุ่ม [i] [j] .setmargin (สิ่งที่ใส่เข้าไปใหม่ (0,0,0,0)); // ให้ปุ่มเปลี่ยนด้วยรูปแบบบนปุ่ม // ปุ่ม [i] [j] .settext (นับ [i] [j] + ""); }}} @Override โมฆะสาธารณะ ActionPerformed (ActionEvent E) {ปุ่ม JButton = (JButton) E.getSource (); if (button.equals (รีเซ็ต)) {resetGame (); // รีสตาร์ทเกม} อื่น {int count = 0; สำหรับ (int i = 0; i <constant.row; i ++) {สำหรับ (int j = 0; j <constant.col; j ++) {ถ้า (button.equals (ปุ่ม [i] [j])) {count = counts [i] [j]; if (count == constant.leicode) {losegame (); } else {opencell (i, j); checkwin (); } กลับ; }}}}}}}}}}}}} โมฆะสาธารณะ mouseclicked (MouseEvent E) {ปุ่ม JButton = (JButton) E.getSource (); if (e.getButton () == MouseEvent.button3) {// ตัดสินการกระทำที่คลิกขวาของเมาส์สำหรับ (int i = 0; i <constant.row; i ++) {สำหรับ (int j = 0; j <condent.col; j ++) {ถ้า (ปุ่ม) //buttons [ฉันเหมือนกัน jink.setenabled(false); ปุ่ม [i] [j] .setmargin (สิ่งที่ใส่เข้าไปใหม่ (0,0,0,0)); // ปล่อยให้ปุ่มเปลี่ยนไปตามรูปแบบบนปุ่มปุ่ม [i] [j] .settext ("?"); กลับ; }}}}}}}}}} void resetGame () {สำหรับ (int i = 0; i <constant.row; i ++) {สำหรับ (int j = 0; j <constant.col; j ++) {ปุ่ม [i] [j]. settext (""); ปุ่ม [i] [j] .setenabled (จริง); ปุ่ม [i] [j] .setbackground (color.white); นับ [i] [j] = 0; }} addlei (); calcneibolei (); } void checkwin () {สำหรับ (int i = 0; i <constant.row; i ++) {สำหรับ (int j = 0; j <constant.col; j ++) {ถ้า (ปุ่ม [i] [j]. isenabled () == true && นับ [i] [j] }} joptionpane.ShowMessagedialog (เฟรม, "ใช่คุณชนะ!"); } // ใช้วิธีการเรียกซ้ำเพื่อ opencell (int i, int j) {ถ้า (ปุ่ม [i] [j]. isenabled () == เท็จ) ส่งคืน; ปุ่ม [i] [j] .setbackground (color.yellow); ปุ่ม [i] [j] .setopaque (จริง); ปุ่ม [i] [j] .setenabled (เท็จ); if (counts [i] [j] == 0) {ถ้า (i> 0 && j> 0 && counts [i-1] [j-1]! = constant.leicode) opencell (i-1, j-1); if (i> 0 && j <19 && นับ [i-1] [j]! = constant.leicode) opencell (i-1, j); if (i> 0 && j <19 && นับ [i-1] [j+1]! = constant.leicode) OpenCell (i-1, j+1); if (j> 0 && นับ [i] [j-1]! = constant.leicode) opencell (i, j-1); ถ้า (j <19 && นับ [i] [j+1]! = constant.leicode) opencell (i, j+1); if (i <19 && j> 0 && นับ [i+1] [j-1]! = constant.leicode) opencell (i+1, j-1); if (i <19 && นับ [i+1] [j]! = constant.leicode) opencell (i+1, j); if (i <19 && j <19 && นับ [i+1] [j+1]! = constant.leicode) opencell (i+1, j+1); } else {ปุ่ม [i] [j] .setmargin (สิ่งที่ใส่เข้าไปใหม่ (0,0,0,0)); ปุ่ม [i] [j] .settext (นับ [i] [j] + ""); }} โมฆะ losegame () {สำหรับ (int i = 0; i <constant.row; i ++) {สำหรับ (int j = 0; j <constant.col; j ++) {int count = counts [i] [j]; if (count == constant.leicode) {ปุ่ม [i] [j] .setMargin (สิ่งที่ใส่เข้าไปใหม่ (0,0,0,0)); ปุ่ม [i] [j] .settext ("lei"); ปุ่ม [i] [j] .setbackground (color.red); ปุ่ม [i] [j] .setenabled (เท็จ); } else {ปุ่ม [i] [j] .setmargin (สิ่งที่ใส่เข้าไปใหม่ (0,0,0,0)); ปุ่ม [i] [j] .settext (count + ""); ปุ่ม [i] [j] .setenabled (เท็จ); }}} JOptionPane.ShowMessageDialog (เฟรม, "ข้อผิดพลาด, คุณหายไป!"); } โมฆะคงที่สาธารณะหลัก (สตริง [] args) {ใหม่ saolei (); } @Override โมฆะสาธารณะ mousepressed (MouseEvent E) {// วิธีการที่สร้างอัตโนมัติ} @Override โมฆะสาธารณะ mouserleased (MouseEvent E) {// วิธีการที่กำหนดอัตโนมัติ MouseExited (MouseEvent E) {// TODO วิธีการที่สร้างขึ้นอัตโนมัติ stub}}}ชั้นเรียนคงที่
ระดับสาธารณะ Saoleiconstant {แถวสุดท้ายของแถว = 20; // จำนวนแถว 30 int สุดท้าย int col = 20; // จำนวนคอลัมน์ 30 int final int leicode = 10; // กำหนดจำนวนด้านล่าง temp int ที่ป้องกันฟ้าร้อง = 20; ได้รับการป้องกัน int leicount = temp; // จำนวนของ Thunder 30}แผนผังการสืบพันธุ์
สำหรับเกมที่น่าตื่นเต้นยิ่งขึ้นโปรดดูหัวข้อพิเศษ "Java Classic Games"
ข้างต้นเป็นเนื้อหาทั้งหมดของบทความนี้ ฉันหวังว่ามันจะเป็นประโยชน์ต่อการเรียนรู้ของทุกคนและฉันหวังว่าทุกคนจะสนับสนุน wulin.com มากขึ้น