论坛首页 Java企业应用论坛

用JButton实现的连连看

浏览 3001 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (3) :: 隐藏帖 (0)
作者 正文
   发表时间:2009-06-27   最后修改:2009-06-28
前些天发现JButton上可以加载图片,于是就有了这个想法。
功能比较少,代码却很长。呵呵……
我第一次尝试用BorderLayout和GridLayout来布局,结果还挺满意的。界面很美观……("重新排列"按钮有点问题,最后被我删了)
这个连连看的一些功能:1、计算分数,销掉一对 加100分。
                      2、“再来一局”,在界面上还有图片没销掉时这个按钮是不可用状态,玩过一局它会变为可  用状态,点击就可以再玩一局。
                      3、“退出”,点击这个按钮时会先显示你所得到的分数。之后再关闭。
功能简单,和初学者一起学习用。高手就跳过吧…… 
说实话,其中的迷宫算法不是本人自己想的。借鉴了高手的思想。
其中,图片随机生成的数目是偶数,以保证到最后能全部销掉。
  • cn.rar (62.3 KB)
  • 下载次数: 241
  • 大小: 62 KB
   发表时间:2009-07-01   最后修改:2009-07-01
我把reuse()方法修改了一下,应该可以用了,lz可以试一下
不过我得说一下lz你的变量用的是在是有点混乱,向i,j这种变量用作全局变量好像不太合适吧


    public void reuse() {
        int row, col, newNum[][] = new int[6][6];
        //将不可见的button的btnNum设为100
        for (int x = 0; x < 6; x++) {
            for (int y = 0; y < 6; y++) {
                if (!btnTeam[x][y].isVisible()) {
                    btnNum[x][y] = 100;
                }
            }
        }
        //重新排列btnNum的值,填入到newNum中
        for (int y = 0; y < 6; y++) {
            for (int x = 0; x < 6; x++) {
                row = (int) (Math.random() * 6);
                col = (int) (Math.random() * 6);
                while (newNum[row][col] != 0) {
                    row = (int) (Math.random() * 6);
                    col = (int) (Math.random() * 6);
                }
                newNum[row][col] = btnNum[y][x];
            }
        }
        // 把原来不可见的Button都设为可见
        for (int y = 0; y < 6; y++) {
            for (int x = 0; x < 6; x++) {
                btnNum[y][x] = 0;
                if (!btnTeam[y][x].isVisible()) {
                    btnTeam[y][x].setVisible(true);
                }
            }
        }
        //根据newNum数组刷新界面
        for (int x = 0; x < 6; x++) {
            for (int y = 0; y < 6; y++) {

                if (newNum[x][y] == 100) {
                    btnTeam[x][y].setVisible(false);
                } else {
                    String imgurl = "image/" + (newNum[x][y] % 12) + ".gif";
                    javax.swing.ImageIcon icon = new javax.swing.ImageIcon(
                            imgurl);
                    btnTeam[x][y].setIcon(icon);
                }
            }
        }
        //重新设定btnNum数组
        for (int x = 0; x < 6; x++) {
            for (int y = 0; y < 6; y++) {
                if (newNum[x][y] == 100) {
                    btnNum[x][y] = 0;
                } else {
                    btnNum[x][y] = newNum[x][y];
                }
            }
        }
    }
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics