java實(shí)現(xiàn)連連看游戲課程設(shè)計(jì)
本文為大家分享了JAVA語言課程設(shè)計(jì):連連看小游戲,供大家參考,具體內(nèi)容如下
1.設(shè)計(jì)內(nèi)容
界面中有5*10的界面,圖中共有6種不同的圖片,每?jī)蓚€(gè)相同的圖片連接在一起,如果連線中轉(zhuǎn)折的次數(shù)<=3次,兩張圖片可同時(shí)削掉,否則不能削去。
2.設(shè)計(jì)要求
色彩鮮艷,鼠標(biāo)點(diǎn)擊鍵好用,以固定時(shí)間將所有圖片消掉為勝利,若時(shí)間到了,圖片還有,則闖關(guān)失敗。
3.設(shè)計(jì)思想
1) 搭建界面,首先搭建簡(jiǎn)單界面,可以先用按鈕代替圖片,并且行列可以先少做一些,如下圖所示:
2) 每次用戶選擇兩個(gè)圖形,如果圖形滿足一定條件(兩個(gè)圖形一樣,且這兩個(gè)圖形之間存在轉(zhuǎn)彎少于3的路徑),則兩個(gè)圖形都能消掉。給定任意具有相同圖形的兩個(gè)格子,我們需要尋找這兩個(gè)格子之間在轉(zhuǎn)彎最少的情況下,經(jīng)過格子數(shù)目最少的路徑。如果這個(gè)最優(yōu)路徑的轉(zhuǎn)彎數(shù)目少于3 ,則這兩個(gè)格子可以消去。
3) 定義消掉的方法,此方法可以實(shí)現(xiàn),當(dāng)執(zhí)行消掉功能時(shí),可以消除兩個(gè)按鈕。
4) 在檢驗(yàn)兩個(gè)方塊能否消掉的時(shí)候,我們要讓兩個(gè)方塊同時(shí)滿足兩個(gè)條件才行,就是兩者配對(duì)并且連線成功。
分3種情況:(從下面的這三種情況,我們可以知道,需要三個(gè)檢測(cè),這三個(gè)檢測(cè)分別檢測(cè)一條直路經(jīng)。這樣就會(huì)有三條路經(jīng)。若這三條路經(jīng)上都是空按鈕,那么就剛好是三種直線(兩個(gè)轉(zhuǎn)彎點(diǎn))把兩個(gè)按鈕連接起來了)
* 1.相鄰
* 2. 若不相鄰的先在第一個(gè)按鈕的同行找一個(gè)空按鈕。1).找到后看第二個(gè)按鈕橫向到這個(gè)空按鈕所在的列是否有按鈕。2).沒有的話再看第一個(gè)按鈕到與它同行的那個(gè)空按鈕之間是否有按鈕。3).沒有的話,再?gòu)呐c第一個(gè)按鈕同行的那個(gè)空按鈕豎向到與第二個(gè)按鈕的同行看是否有按鈕。沒有的話路經(jīng)就通了,可以消了.
* 3.若2失敗后,再在第一個(gè)按鈕的同列找一個(gè)空按鈕。1).找到后看第二個(gè)按鈕豎向到這個(gè)空按鈕所在的行是否有按鈕 2).沒有的話,再看第一個(gè)按鈕到與它同列的那個(gè)空按鈕之間是否有按鈕。3).沒有的話,再?gòu)呐c第一個(gè)按鈕同列的那個(gè)空按鈕橫向到與第二個(gè)按鈕同列看是否有按鈕。沒有的話路經(jīng)就通了,可以消了。
* 若以上三步都失敗,說明這兩個(gè)按鈕不可以消去。
5) 在死鎖的情況下,我們也可以暫時(shí)不終止游戲,而是隨機(jī)打亂局面(即點(diǎn)擊“重列”按鈕),打破“死鎖”局面。
6) 設(shè)計(jì)時(shí)間限制,即指定時(shí)間內(nèi)沒有消除全部按鈕,則游戲結(jié)束
7) 設(shè)計(jì)過關(guān)模式,可以根據(jù)所有按鈕都消除了,或是得分到達(dá)某一個(gè)閾值作為過關(guān)的依據(jù)。
8) 每一關(guān)的指定時(shí)間應(yīng)該逐漸減少
9) 嘗試將按鈕換成圖片,可以利用數(shù)組定義圖片名稱,然后把隨機(jī)選擇按鈕變成隨機(jī)選擇數(shù)組下標(biāo),繼而實(shí)現(xiàn)選擇圖片的功能
代碼如下:
package test1; import java.awt.BorderLayout; import java.awt.Container; import java.awt.GridLayout; import java.awt.Toolkit; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.util.Timer; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JPanel; public class LianLianKan implements ActionListener { ?? ?JFrame mainFrame; // 主面板 ?? ?Container thisContainer; ?? ?JPanel centerPanel, southPanel, northPanel; // 子面板 ?? ?JButton diamondsButton[][] = new JButton[6][5];// 游戲按鈕數(shù)組 ?? ?JButton exitButton, resetButton, newlyButton; // 退出,重列,重新開始按鈕 ?? ?JLabel fractionLable = new JLabel("0"); // 分?jǐn)?shù)標(biāo)簽 ?? ?JButton firstButton, secondButton; // 分別記錄兩次被選中的按鈕 ?? ?int grid[][] = new int[8][7];// 儲(chǔ)存游戲按鈕位置 ?? ?int score=0; ?? ?static boolean pressInformation = false; // 判斷是否有按鈕被選中 ?? ?int x0 = 0, y0 = 0, x = 0, y = 0, firstMsg = 0, secondMsg = 0; // 游戲按鈕的位置坐標(biāo) ?? ?int i, j, k, n;// 消除方法控制 ?? ?public void init() { ?? ??? ?mainFrame = new JFrame("JKJ連連看"); ?? ??? ?thisContainer = mainFrame.getContentPane(); ?? ??? ?thisContainer.setLayout(new BorderLayout()); ?? ??? ?centerPanel = new JPanel(); ?? ??? ?southPanel = new JPanel(); ?? ??? ?northPanel = new JPanel(); ?? ??? ?thisContainer.add(centerPanel, "Center"); ?? ??? ?thisContainer.add(southPanel, "South"); ?? ??? ?thisContainer.add(northPanel, "North"); ?? ??? ?centerPanel.setLayout(new GridLayout(6, 5)); ?? ??? ?for (int cols = 0; cols < 6; cols++) { ?? ??? ??? ?for (int rows = 0; rows < 5; rows++) { ?? ??? ??? ??? ?diamondsButton[cols][rows] = new JButton(String.valueOf(grid[cols + 1][rows + 1])); ?? ??? ??? ??? ?diamondsButton[cols][rows].addActionListener(this); ?? ??? ??? ??? ?centerPanel.add(diamondsButton[cols][rows]); ?? ??? ??? ?} ?? ??? ?} ?? ??? ?exitButton = new JButton("退出"); ?? ??? ?exitButton.addActionListener(this); ?? ??? ?resetButton = new JButton("重列"); ?? ??? ?resetButton.addActionListener(this); ?? ??? ?newlyButton = new JButton("再來一局"); ?? ??? ?newlyButton.addActionListener(this); ?? ??? ?southPanel.add(exitButton); ?? ??? ?southPanel.add(resetButton); ?? ??? ?southPanel.add(newlyButton); ?? ??? ?fractionLable.setText("分?jǐn)?shù):"+score); ?? ??? ?northPanel.add(fractionLable); ?? ??? ?int width=Toolkit.getDefaultToolkit().getScreenSize().width; ?? ??? ?int height=Toolkit.getDefaultToolkit().getScreenSize().height; ?? ??? ?mainFrame.setBounds((width-500)/2,(height-500)/2, 500, 500); ?? ??? ?mainFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); ?? ??? ?mainFrame.setResizable(false); ?? ??? ?mainFrame.setVisible(true); ?? ?} ?? ?public void randomBuild() { ?? ??? ?int randoms, cols, rows; ?? ??? ?for (int twins = 1; twins <= 15; twins++) { ?//生成15個(gè)隨機(jī)數(shù) ?? ??? ??? ?randoms = (int) (Math.random() * 15 + 1); ?? ??? ??? ?for (int alike = 1; alike <= 2; alike++) { ? //每次將這個(gè)數(shù)放在兩個(gè)位置 ?? ??? ??? ??? ?cols = (int) (Math.random() * 6 + 1); ?? ??? ??? ??? ?rows = (int) (Math.random() * 5 + 1); ?//隨機(jī)生成數(shù)組坐標(biāo)[cols,rows] ?? ??? ??? ??? ?while (grid[cols][rows] != 0) { ? ? ? ? //如果這個(gè)位置已經(jīng)賦值了,重新生成。 ?? ??? ??? ??? ??? ?cols = (int) (Math.random() * 6 + 1); ?? ??? ??? ??? ??? ?rows = (int) (Math.random() * 5 + 1); ?? ??? ??? ??? ?} ?? ??? ??? ??? ?this.grid[cols][rows] = randoms; ? ?//將這個(gè)隨機(jī)數(shù)賦到數(shù)組中。 ?? ??? ??? ?} ?? ??? ?} ?? ?} ?? ?//顯示分?jǐn)?shù) ?? ?public void fraction() { ?? ??? ?score+=100; ?? ??? ?fractionLable.setText(score+""); ?? ?} ?? ?//重列方法的實(shí)現(xiàn) ?? ?public void reload() { ?? ??? ?int save[] = new int[50]; ?? ??? ?int n = 0, cols, rows; ?? ??? ?int grid[][] = new int[8][7]; ?? ??? ?for (int i = 0; i <= 6; i++) { ?? ??? ??? ?for (int j = 0; j <= 5; j++) { ?? ??? ??? ??? ?if (this.grid[i][j] != 0) { ?? ??? ??? ??? ??? ?save[n] = this.grid[i][j]; ?? ??? ??? ??? ??? ?n++; ?? ??? ??? ??? ?} ?? ??? ??? ?} ?? ??? ?} ?? ??? ?n--; ?? ??? ?this.grid = grid; ?? ??? ?while (n >= 0) { ?? ??? ??? ?cols = (int) (Math.random() * 6 + 1); ?? ??? ??? ?rows = (int) (Math.random() * 5 + 1); ?? ??? ??? ?while (grid[cols][rows] != 0) { ?//如果已經(jīng)賦值了,重新生成 ?? ??? ??? ??? ?cols = (int) (Math.random() * 6 + 1); ?? ??? ??? ??? ?rows = (int) (Math.random() * 5 + 1); ?? ??? ??? ?} ?? ??? ??? ?this.grid[cols][rows] = save[n]; ?? ??? ??? ?n--; ?? ??? ?} ?? ??? ?mainFrame.setVisible(false); ?? ??? ?pressInformation = false; // 這里一定要將按鈕點(diǎn)擊信息歸為初始 ?? ??? ?init(); ?? ??? ?for (int i = 0; i < 6; i++) { ?? ??? ??? ?for (int j = 0; j < 5; j++) { ?? ??? ??? ??? ?if (grid[i + 1][j + 1] == 0) ?? ??? ??? ??? ??? ?diamondsButton[i][j].setVisible(false); ?? ??? ??? ?} ?? ??? ?} ?? ?} ?? ?public void estimateEven(int placeX, int placeY, JButton bz) { ?? ??? ?if (pressInformation == false) {//如果以前沒點(diǎn)擊過 ?? ??? ??? ?x = placeX; ?? ??? ??? ?y = placeY; ? ? ?//記錄這個(gè)按鈕坐標(biāo)[x,y] ?? ??? ??? ?secondMsg = grid[x][y]; ?? ??? ??? ?secondButton = bz;//記錄這個(gè)按鈕的信息 ?? ??? ??? ?pressInformation = true; ?? ??? ?} else { ? ? ? ? ? //如果以前點(diǎn)擊過 ?? ??? ??? ?x0 = x;?? ? ?? ??? ??? ?y0 = y; ?? ??? ??? ?firstMsg = secondMsg; ?? ??? ??? ?firstButton = secondButton; ? ?//將上一次的button按鈕信息賦給first ?? ??? ??? ?x = placeX; ?? ??? ??? ?y = placeY; ?? ??? ??? ?secondMsg = grid[x][y]; ? ? ? ?//將這次點(diǎn)擊按鈕的信息記錄下來 ?? ??? ??? ?secondButton = bz; ?? ??? ??? ?if (firstMsg == secondMsg && secondButton != firstButton) { ?? ??? ??? ??? ?xiao(); ?? ??? ??? ?} ?? ??? ?} ?? ?} ?? ?public void xiao() { // 相同的情況下能不能消去。仔細(xì)分析,不一條條注釋 ?? ??? ?if ((x0 == x && (y0 == y + 1 || y0 == y - 1))|| ((x0 == x + 1 || x0 == x - 1) && (y0 == y))) { // 判斷是否相鄰 ?? ??? ??? ?remove(); ?? ??? ?} else { ?? ??? ??? ?for (j = 0; j < 7; j++) { ?? ??? ??? ??? ?if (grid[x0][j] == 0) { // 判斷第一個(gè)按鈕同行哪個(gè)按鈕為空 ?? ??? ??? ??? ??? ?if (y > j) { // 如果第二個(gè)按鈕的Y坐標(biāo)大于空按鈕的Y坐標(biāo)說明第一按鈕在第二按鈕左邊 ?? ??? ??? ??? ??? ??? ?for (i = y - 1; i >= j; i--) { // 判斷第二按鈕左側(cè)直到第一按鈕中間有沒有按鈕 ?? ??? ??? ??? ??? ??? ??? ?if (grid[x][i] != 0) { ?? ??? ??? ??? ??? ??? ??? ??? ?k = 0;?? ? ?? ??? ??? ??? ??? ??? ??? ??? ?break; ?? ??? ??? ??? ??? ??? ??? ?} else { ?? ??? ??? ??? ??? ??? ??? ??? ?k = 1; ?? ??? ??? ??? ??? ??? ??? ?} // K=1說明通過了第一次驗(yàn)證 ?? ??? ??? ??? ??? ??? ?} ?? ??? ??? ??? ??? ??? ?if (k == 1) { ?? ??? ??? ??? ??? ??? ??? ?linePassOne(); ?? ??? ??? ??? ??? ??? ?} ?? ??? ??? ??? ??? ?} ?? ??? ??? ??? ??? ?if (y < j) { // 如果第二個(gè)按鈕的Y坐標(biāo)小于空按鈕的Y坐標(biāo)說明第一按鈕在第二按鈕右邊 ?? ??? ??? ??? ??? ??? ?for (i = y + 1; i <= j; i++) { // 判斷第二按鈕左側(cè)直到第一按鈕中間有沒有按鈕 ?? ??? ??? ??? ??? ??? ??? ?if (grid[x][i] != 0) { ?? ??? ??? ??? ??? ??? ??? ??? ?k = 0; ?? ??? ??? ??? ??? ??? ??? ??? ?break; ?? ??? ??? ??? ??? ??? ??? ?} else { ?? ??? ??? ??? ??? ??? ??? ??? ?k = 1; ?? ??? ??? ??? ??? ??? ??? ?} ?? ??? ??? ??? ??? ??? ?} ?? ??? ??? ??? ??? ??? ?if (k == 1) { ?? ??? ??? ??? ??? ??? ??? ?linePassOne(); ?? ??? ??? ??? ??? ??? ?} ?? ??? ??? ??? ??? ?} ?? ??? ??? ??? ??? ?if (y == j) { ?? ??? ??? ??? ??? ??? ?linePassOne(); ?? ??? ??? ??? ??? ?} ?? ??? ??? ??? ?} ?? ??? ??? ??? ?if (k == 2) { ?? ??? ??? ??? ??? ?if (x0 == x) { ?? ??? ??? ??? ??? ??? ?remove(); ?? ??? ??? ??? ??? ?} ?? ??? ??? ??? ??? ?if (x0 < x) { ?? ??? ??? ??? ??? ??? ?for (n = x0; n <= x - 1; n++) { ?? ??? ??? ??? ??? ??? ??? ?if (grid[n][j] != 0) { ?? ??? ??? ??? ??? ??? ??? ??? ?k = 0; ?? ??? ??? ??? ??? ??? ??? ?} ?? ??? ??? ??? ??? ??? ??? ?if (grid[n][j] == 0 && n == x - 1) { ?? ??? ??? ??? ??? ??? ??? ??? ?remove(); ?? ??? ??? ??? ??? ??? ??? ?} ?? ??? ??? ??? ??? ??? ?} ?? ??? ??? ??? ??? ?} ?? ??? ??? ??? ??? ?if (x0 > x) { ?? ??? ??? ??? ??? ??? ?for (n = x0; n >= x + 1; n--) { ?? ??? ??? ??? ??? ??? ??? ?if (grid[n][j] != 0) { ?? ??? ??? ??? ??? ??? ??? ??? ?k = 0; ?? ??? ??? ??? ??? ??? ??? ??? ?break; ?? ??? ??? ??? ??? ??? ??? ?} ?? ??? ??? ??? ??? ??? ??? ?if (grid[n][j] == 0 && n == x + 1) { ?? ??? ??? ??? ??? ??? ??? ??? ?remove(); ?? ??? ??? ??? ??? ??? ??? ?} ?? ??? ??? ??? ??? ??? ?} ?? ??? ??? ??? ??? ?} ?? ??? ??? ??? ?} ?? ??? ??? ?} ?? ??? ??? ?for (i = 0; i < 8; i++) { // 列 ?? ??? ??? ??? ?if (grid[i][y0] == 0) { ?? ??? ??? ??? ??? ?if (x > i) { ?? ??? ??? ??? ??? ??? ?for (j = x - 1; j >= i; j--) { ?? ??? ??? ??? ??? ??? ??? ?if (grid[j][y] != 0) { ?? ??? ??? ??? ??? ??? ??? ??? ?k = 0; ?? ??? ??? ??? ??? ??? ??? ??? ?break; ?? ??? ??? ??? ??? ??? ??? ?} else { ?? ??? ??? ??? ??? ??? ??? ??? ?k = 1; ?? ??? ??? ??? ??? ??? ??? ?} ?? ??? ??? ??? ??? ??? ?} ?? ??? ??? ??? ??? ??? ?if (k == 1) { ?? ??? ??? ??? ??? ??? ??? ?rowPassOne(); ?? ??? ??? ??? ??? ??? ?} ?? ??? ??? ??? ??? ?} ?? ??? ??? ??? ??? ?if (x < i) { ?? ??? ??? ??? ??? ??? ?for (j = x + 1; j <= i; j++) { ?? ??? ??? ??? ??? ??? ??? ?if (grid[j][y] != 0) { ?? ??? ??? ??? ??? ??? ??? ??? ?k = 0; ?? ??? ??? ??? ??? ??? ??? ??? ?break; ?? ??? ??? ??? ??? ??? ??? ?} else { ?? ??? ??? ??? ??? ??? ??? ??? ?k = 1; ?? ??? ??? ??? ??? ??? ??? ?} ?? ??? ??? ??? ??? ??? ?} ?? ??? ??? ??? ??? ??? ?if (k == 1) { ?? ??? ??? ??? ??? ??? ??? ?rowPassOne(); ?? ??? ??? ??? ??? ??? ?} ?? ??? ??? ??? ??? ?} ?? ??? ??? ??? ??? ?if (x == i) { ?? ??? ??? ??? ??? ??? ?rowPassOne(); ?? ??? ??? ??? ??? ?} ?? ??? ??? ??? ?} ?? ??? ??? ??? ?if (k == 2) { ?? ??? ??? ??? ??? ?if (y0 == y) { ?? ??? ??? ??? ??? ??? ?remove(); ?? ??? ??? ??? ??? ?} ?? ??? ??? ??? ??? ?if (y0 < y) { ?? ??? ??? ??? ??? ??? ?for (n = y0; n <= y - 1; n++) { ?? ??? ??? ??? ??? ??? ??? ?if (grid[i][n] != 0) { ?? ??? ??? ??? ??? ??? ??? ??? ?k = 0; ?? ??? ??? ??? ??? ??? ??? ??? ?break; ?? ??? ??? ??? ??? ??? ??? ?} ?? ??? ??? ??? ??? ??? ??? ?if (grid[i][n] == 0 && n == y - 1) { ?? ??? ??? ??? ??? ??? ??? ??? ?remove(); ?? ??? ??? ??? ??? ??? ??? ?} ?? ??? ??? ??? ??? ??? ?} ?? ??? ??? ??? ??? ?} ?? ??? ??? ??? ??? ?if (y0 > y) { ?? ??? ??? ??? ??? ??? ?for (n = y0; n >= y + 1; n--) { ?? ??? ??? ??? ??? ??? ??? ?if (grid[i][n] != 0) { ?? ??? ??? ??? ??? ??? ??? ??? ?k = 0; ?? ??? ??? ??? ??? ??? ??? ??? ?break; ?? ??? ??? ??? ??? ??? ??? ?} ?? ??? ??? ??? ??? ??? ??? ?if (grid[i][n] == 0 && n == y + 1) { ?? ??? ??? ??? ??? ??? ??? ??? ?remove(); ?? ??? ??? ??? ??? ??? ??? ?} ?? ??? ??? ??? ??? ??? ?} ?? ??? ??? ??? ??? ?} ?? ??? ??? ??? ?} ?? ??? ??? ?} ?? ??? ?} ?? ?} ?? ?public void linePassOne() { ?? ??? ?if (y0 > j) { // 第一按鈕同行空按鈕在左邊 ?? ??? ??? ?for (i = y0 - 1; i >= j; i--) { // 判斷第一按鈕同左側(cè)空按鈕之間有沒按鈕?? ? ?? ??? ??? ??? ?if (grid[x0][i] != 0) { ?? ??? ??? ??? ??? ?k = 0; ?? ??? ??? ??? ??? ?break; ?? ??? ??? ??? ?} else { ?? ??? ??? ??? ??? ?k= 2; ?? ??? ??? ??? ?} // K=2說明通過了第二次驗(yàn)證 ?? ??? ??? ?} ?? ??? ?} ?? ??? ?if (y0 < j) { // 第一按鈕同行空按鈕在與第二按鈕之間 ?? ??? ??? ?for (i = y0 + 1; i <= j; i++) { ?? ??? ??? ??? ?if (grid[x0][i] != 0) { ?? ??? ??? ??? ??? ?k = 0; ?? ??? ??? ??? ??? ?break; ?? ??? ??? ??? ?} else { ?? ??? ??? ??? ??? ?k = 2; ?? ??? ??? ??? ?} ?? ??? ??? ?} ?? ??? ?} ?? ?} ?? ?public void rowPassOne() { ?? ??? ?if (x0 > i) { ?? ??? ??? ?for (j = x0 - 1; j >= i; j--) { ?? ??? ??? ??? ?if (grid[j][y0] != 0) { ?? ??? ??? ??? ??? ?k = 0; ?? ??? ??? ??? ??? ?break; ?? ??? ??? ??? ?} else { ?? ??? ??? ??? ??? ?k = 2; ?? ??? ??? ??? ?} ?? ??? ??? ?} ?? ??? ?} ?? ??? ?if (x0 < i) { ?? ??? ??? ?for (j = x0 + 1; j <= i; j++) { ?? ??? ??? ??? ?if (grid[j][y0] != 0) { ?? ??? ??? ??? ??? ?k = 0; ?? ??? ??? ??? ??? ?break; ?? ??? ??? ??? ?} else { ?? ??? ??? ??? ??? ?k = 2; ?? ??? ??? ??? ?} ?? ??? ??? ?} ?? ??? ?} ?? ?} ?? ?//消去按鈕算法 ?? ?public void remove() { ?? ??? ?firstButton.setVisible(false); ?? ??? ?secondButton.setVisible(false); ? //兩個(gè)按鈕不可見 ?? ??? ?fraction(); ? ? ? ?//改變分?jǐn)?shù) ?? ??? ?pressInformation = false; ? ? ? ? //點(diǎn)擊按鈕鍵清掉 ?? ??? ?k = 0; ? ? ? ? ? ? ? ? ? ? ? ? ? ?//可消除標(biāo)志清空 ?? ??? ?grid[x0][y0] = 0; ?? ??? ?grid[x][y] = 0; ? ? ? ? ? ? ? ? ? //按鈕鍵值清零 ?? ?} ?? ?//事件響應(yīng) ?? ?public void actionPerformed(ActionEvent e) { ?? ??? ?if (e.getSource() == newlyButton) { ?? ??? ??? ?int grid[][] = new int[8][7]; ?? ??? ??? ?this.grid = grid; ?? ??? ??? ?randomBuild(); ?? ??? ??? ?score=0; ?? ??? ??? ?mainFrame.setVisible(false); ?? ??? ??? ?pressInformation = false; ?? ??? ??? ?init(); ?? ??? ?} ?? ??? ?if (e.getSource() == exitButton) ?? ??? ??? ?System.exit(0); ?? ??? ?if (e.getSource() == resetButton) ?? ??? ??? ?reload(); ?? ??? ?for (int cols = 0; cols < 6; cols++) { ?? ??? ??? ?for (int rows = 0; rows < 5; rows++) { ?? ??? ??? ??? ?if (e.getSource() == diamondsButton[cols][rows]) ?? ??? ??? ??? ??? ?estimateEven(cols + 1, rows + 1, diamondsButton[cols][rows]); ?? ??? ??? ?} ?? ??? ?} ?? ?} ?? ?public static void main(String[] args) { ?? ??? ?LianLianKan llk = new LianLianKan(); ?? ??? ?llk.randomBuild();//隨機(jī)分配鍵值 ?? ??? ?llk.init();//初始化 ?? ?} }
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
使用SpringBoot的CommandLineRunner遇到的坑及解決
這篇文章主要介紹了使用SpringBoot的CommandLineRunner遇到的坑及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-02-02java實(shí)現(xiàn)發(fā)送郵件的示例代碼
這篇文章主要介紹了java如何實(shí)現(xiàn)發(fā)送郵件,文中示例代碼非常詳細(xì),幫助大家更好的理解和學(xué)習(xí),感興趣的朋友可以了解下2020-07-07基于UncategorizedSQLException異常處理方案
這篇文章主要介紹了基于UncategorizedSQLException異常處理方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-12-12Java overload和override的區(qū)別分析
方法的重寫(Overriding)和重載(Overloading)是Java多態(tài)性的不同表現(xiàn),想要了解更多請(qǐng)參考本文2012-11-11