<ruby id="h6500"><table id="h6500"></table></ruby>
    1. <ruby id="h6500"><video id="h6500"></video></ruby>
          1. <progress id="h6500"><u id="h6500"><form id="h6500"></form></u></progress>
            • 軟件測試技術(shù)
            • 軟件測試博客
            • 軟件測試視頻
            • 開(kāi)源軟件測試技術(shù)
            • 軟件測試論壇
            • 軟件測試沙龍
            • 軟件測試資料下載
            • 軟件測試雜志
            • 軟件測試人才招聘
              暫時(shí)沒(méi)有公告

            字號: | 推薦給好友 上一篇 | 下一篇

            軟件測試中java連連看源代碼

            發(fā)布: 2010-9-19 10:20 | 作者: 網(wǎng)絡(luò )轉載 | 來(lái)源: 領(lǐng)測軟件測試網(wǎng)采編 | 查看: 221次 | 進(jìn)入軟件測試論壇討論

            領(lǐng)測軟件測試網(wǎng)

            軟件測試中java連連看源代碼

            import javax.swing.*;
            import java.awt.*;
            import java.awt.event.*;

            public class lianliankan implements ActionListener {
             JFrame mainFrame; // 主面板
             Container thisContainer;
             JPanel centerPanel, southPanel, northPanel; // 子面板
             JButton diamondsButton[][] = new JButton[6][5];// 游戲按鈕數組
             JButton exitButton, resetButton, newlyButton; // 退出,重列,重新開(kāi)始按鈕
             JLabel fractionLable = new JLabel("0"); // 分數標簽
             JButton firstButton, secondButton; // 分別記錄兩次被選中的按鈕
             int grid[][] = new int[8][7];// 儲存游戲按鈕位置
             static boolean pressInformation = false; // 判斷是否有按鈕被選中
             int x0 = 0, y0 = 0, x = 0, y = 0, fristMsg = 0, secondMsg = 0, validateLV; // 游戲按鈕的位置坐標
             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("再來(lái)一局");
              newlyButton.addActionListener(this);
              southPanel.add(exitButton);
              southPanel.add(resetButton);
              southPanel.add(newlyButton);
              fractionLable.setText(String.valueOf(Integer.parseInt(fractionLable
                .getText())));
              northPanel.add(fractionLable);
              mainFrame.setBounds(280, 100, 500, 450);
              mainFrame.setVisible(true);
             }

             public void randomBuild() {
              int randoms, cols, rows;
              for (int twins = 1; twins <= 15; twins++) {
               randoms = (int) (Math.random() * 25 + 1);
               for (int alike = 1; alike <= 2; alike++) {
                cols = (int) (Math.random() * 6 + 1);
                rows = (int) (Math.random() * 5 + 1);
                while (grid[cols][rows] != 0) {
                 cols = (int) (Math.random() * 6 + 1);
                 rows = (int) (Math.random() * 5 + 1);
                }
                this.grid[cols][rows] = randoms;
               }
              }
             }

             public void fraction() {
              fractionLable.setText(String.valueOf(Integer.parseInt(fractionLable
                .getText()) + 100));
             }

             public void reload() {
              int save[] = new int[30];
              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 = n - 1;
              this.grid = grid;
              while (n >= 0) {
               cols = (int) (Math.random() * 6 + 1);
               rows = (int) (Math.random() * 5 + 1);
               while (grid[cols][rows] != 0) {
                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) {
               x = placeX;
               y = placeY;
               secondMsg = grid[x][y];
               secondButton = bz;
               pressInformation = true;
              } else {
               x0 = x;
               y0 = y;
               fristMsg = secondMsg;
               firstButton = secondButton;
               x = placeX;
               y = placeY;
               secondMsg = grid[x][y];
               secondButton = bz;
               if (fristMsg == secondMsg && secondButton != firstButton) {
                xiao();
               }
              }
             }

             public void xiao() { // 相同的情況下能不能消去。仔細分析,不一條條注釋
              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坐標大于空按鈕的Y坐標說(shuō)明第一按鈕在第二按鈕左邊
                  for (i = y - 1; i >= j; i--) { // 判斷第二按鈕左側直到第一按鈕中間有沒(méi)有按鈕
                   if (grid[x][i] != 0) {
                    k = 0;
                    break;
                   } else {
                    k = 1;
                   } // K=1說(shuō)明通過(guò)了第一次驗證
                  }
                  if (k == 1) {
                   linePassOne();
                  }
                 }
                 if (y < j) { // 如果第二個(gè)按鈕的Y坐標小于空按鈕的Y坐標說(shuō)明第一按鈕在第二按鈕右邊
                  for (i = y + 1; i <= j; i++) { // 判斷第二按鈕左側直到第一按鈕中間有沒(méi)有按鈕
                   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;
                    break;
                   }
                   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--) { // 判斷第一按鈕同左側空按鈕之間有沒(méi)按鈕
                if (grid[x0][i] != 0) {
                 k = 0;
                 break;
                } else {
                 k = 2;
                } // K=2說(shuō)明通過(guò)了第二次驗證
               }
              }
              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);
              fraction();
              pressInformation = false;
              k = 0;
              grid[x0][y0] = 0;
              grid[x][y] = 0;
             }

             public void actionPerformed(ActionEvent e) {
              if (e.getSource() == newlyButton) {
               int grid[][] = new int[8][7];
               this.grid = grid;
               randomBuild();
               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();
              llk.init();
             }
            }

            延伸閱讀

            文章來(lái)源于領(lǐng)測軟件測試網(wǎng) http://kjueaiud.com/

            TAG: java JAVA Java 軟件測試 源代碼 連連看


            關(guān)于領(lǐng)測軟件測試網(wǎng) | 領(lǐng)測軟件測試網(wǎng)合作伙伴 | 廣告服務(wù) | 投稿指南 | 聯(lián)系我們 | 網(wǎng)站地圖 | 友情鏈接
            版權所有(C) 2003-2010 TestAge(領(lǐng)測軟件測試網(wǎng))|領(lǐng)測國際科技(北京)有限公司|軟件測試工程師培訓網(wǎng) All Rights Reserved
            北京市海淀區中關(guān)村南大街9號北京理工科技大廈1402室 京ICP備2023014753號-2
            技術(shù)支持和業(yè)務(wù)聯(lián)系:info@testage.com.cn 電話(huà):010-51297073

            軟件測試 | 領(lǐng)測國際ISTQBISTQB官網(wǎng)TMMiTMMi認證國際軟件測試工程師認證領(lǐng)測軟件測試網(wǎng)

            老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月
              <ruby id="h6500"><table id="h6500"></table></ruby>
              1. <ruby id="h6500"><video id="h6500"></video></ruby>
                    1. <progress id="h6500"><u id="h6500"><form id="h6500"></form></u></progress>