浏览 3002 次
锁定老帖子 主题:用JButton实现的连连看
精华帖 (0) :: 良好帖 (0) :: 新手帖 (3) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2009-06-27
最后修改:2009-06-28
功能比较少,代码却很长。呵呵…… 我第一次尝试用BorderLayout和GridLayout来布局,结果还挺满意的。界面很美观……("重新排列"按钮有点问题,最后被我删了) 这个连连看的一些功能:1、计算分数,销掉一对 加100分。 2、“再来一局”,在界面上还有图片没销掉时这个按钮是不可用状态,玩过一局它会变为可 用状态,点击就可以再玩一局。 3、“退出”,点击这个按钮时会先显示你所得到的分数。之后再关闭。 功能简单,和初学者一起学习用。高手就跳过吧…… 说实话,其中的迷宫算法不是本人自己想的。借鉴了高手的思想。 其中,图片随机生成的数目是偶数,以保证到最后能全部销掉。 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间: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]; } } } } |
|
返回顶楼 | |