感谢大家的支持~~菜鸟的扫雷修改了一下,再发一次,期待大家的意见
首先感谢大家对这个帖子的支持~~让菜鸟有了前进的信心
http://topic.csdn.net/u/20100811/10/233f5259-19c7-422e-9488-bd58e68c4a92.html?1993950910
这个结了。
我这几天又把程序修改了一些:
加入了“求救”按钮,在无法继续通过计算扫雷时,可以点出此获知随机的一个未标记雷的位置;
加入了计时器;
加入了作弊功能……嘿嘿,按下键盘上的某键,可以知道所有雷的位置,吼吼
为方便编译,把所有代码都放到一个文件里了~~~
期待大家的意见!
http://download.csdn.net/source/2619057
修改后的文件下载地址
再贴一下:一个楼层贴不下,分成了两部分,实则是一个源文件
Main.java
- Java code
import javax.swing.*;import java.awt.*;import java.awt.event.*;public class Main{ public static void main(String[] argus) { Landmine Zhang = new Landmine(); }}//// Landmine类 主界面class Landmine extends JFrame{ static Resources resources = new Resources(); Playing listener = new Playing(this); //主要监听者,监听地雷面板的动作 Help helpListener = new Help(this); //辅助监听者,监听“帮助”、“关于” JPanel landminePanel = new JPanel(); //创建地雷面板 JPanel topPanel = new JPanel(); //创建顶部面板 JPanel lowerPanel = new JPanel(); //创建底部面板 public static MyButton [][] lei; //主区按钮组 public static int numberOfUnflaged ; //剩余的雷数,显示在topPanel上,用于提示用户 public static int numberOfClicked; //已经翻开的格子数,当数字数字到"总格子数—雷数"时,即胜利 public static int usedTime; //已用时间 public static JLabel numberOfUnflagedLabel = new JLabel(); //创建剩雷数标签 public static JLabel timeLabel = new JLabel();//创建时间标签 public static Timer timer; //创建计时 Keylistener keyListener = new Keylistener(this); public Landmine() { super("扫雷__1.2版__小老头"); //标题 setBounds(300,90,800,800); //设置窗口位置和大小 setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//最大化、最小化、关闭按钮 BorderLayout ff = new BorderLayout(); //创建布局管理器 setLayout(ff); //关联布局管理器 setResizable(false); //禁止改变窗口大小 /*初始化一些数据*/ numberOfClicked = 0; numberOfUnflaged = 40; usedTime = 0; /*设置顶部面板*/ numberOfUnflagedLabel.setText("剩余雷数:"+numberOfUnflaged);//显示剩余雷数 numberOfUnflagedLabel.setFont(resources.fontOne);//设置剩雷数标签字体 numberOfUnflagedLabel.setIcon(resources.bombIconForLabel);//剩雷数标签图标(地雷形) topPanel.add(numberOfUnflagedLabel); //剩雷数标签加入topPanel timeLabel.setText("用时:" + usedTime); //显示剩余时间 timeLabel.setFont(resources.fontOne); //设置时间标签字体 timeLabel.setIcon(resources.clockIcon); //设置时间标签图标 topPanel.add(timeLabel); //时间标签加入topPanel add(topPanel,BorderLayout.NORTH); //加入主面板上部 timer = new Timer(1000,new TimerListener());//计算器注册监听者 /*设置底部面板*/ JButton aboutJB = new JButton("关于"); //创建“关于”按钮 JButton helpJB = new JButton("求救"); //创建“求救”按钮 helpJB.addActionListener(helpListener); //"求救"按钮加入监听者
[解决办法]
SF
啊哈
看看
[解决办法]
顶一下,顺便拿走每日10分可用分
[解决办法]
小朋友 你挂了、、、
LZ 搞的还不错啊 可以再加个分等级啊
[解决办法]
刚看完楼主以前的 感觉还不错 现在这个不知道怎么样````
[解决办法]
领教了,多谢。
[解决办法]
支持楼主,如果有这种应用程序发布机制真的就非常好了,着重于讨论与版本升级~作为与sourceforge的呼应
1,2,3的图片选画得不错啊
下面两个按钮几乎看不到
应该设一下点某个按钮周围全开的按键
[解决办法]
累得慌 没认真看 但还是支持
[解决办法]
楼主牛人啊
不知道都看了些什么书啊
[解决办法]
楼主的帖子让我回想起以前做这些小游戏的情景~
有2个建议:
1.把界面和游戏算法逻辑分开
2.点到空白处翻开周围区域的的算法最好用循环,不用递归
[解决办法]
越来越深入了,不错啊,佩服
[解决办法]
[解决办法]
翻开周围的方块类型有两种:一种是空白,一种是数字,空白的就继续翻开周围的,如果是数字则不作任何动作,被翻开的方块被标记成“Visited”,你可以维护一个列表,把空白的方块都放进去,对这个列表进行循环,最初的时候只有一个,翻开的过程中不断往里加,处理完一个就把他从列表中删除,直到列表中没有空白方块,不知道我这样描述是不是说清楚了。说白了就是一个图遍历的算法,可以认为是寻找连通图的算法。
[解决办法]
之所以使用循环是为了锻炼算法的能力,递归用起来稍显简单,效率也不高,如果是在手机上运行的话就能看出差别来了。
[解决办法]
界面一启动时间就开始走了,应该是第一次按按钮开始扫雷的时候才开始走的吧
点求救为什么上面雷数没有减少
时间就是数字一直+1,看能不能换成多少时多少分的
右击成雷的标记时,左击应该不能击
左击过的也应该去掉那个按钮的监听
求救显示出来的雷按钮还能被左击
[解决办法]
[color=#FF0000]很不错,顶![/color]
[解决办法]
总体来说还行
不过没在机器上跑 不知道运行知道什么效果
[解决办法]
以前模仿过操作系统上自带的扫雷,不知道你这个是否完成所有的所有的功能!
[解决办法]
太大了,笔记本1280*800都显示不全的
[解决办法]
顶一下吧...学习下
[解决办法]
每天回帖即可获得10分可用分
[解决办法]
顶一下,好好学了!!!!!
[解决办法]
ddddddd....
[解决办法]
非常感谢楼主的分享
------解决方案--------------------
learning......
[解决办法]
学习!!!!!!!!!!!!!!!
[解决办法]
好久没有碰这个玩意了
[解决办法]
感谢楼主
[解决办法]
[解决办法]
还没有看懂..
[解决办法]
内容存入剪贴板
[解决办法]
还没有看懂..
[解决办法]
看不懂啊
[解决办法]
你好,是的,共同的心愿,打到小日本
[解决办法]
美国韩国军演,统统干掉这些鬼子
[解决办法]
顶,下走了,研究研究
[解决办法]
不错,有时间学一下
[解决办法]
顶起是不是有分啊?
[解决办法]
努力努力!天天回复!
[解决办法]
接分 。
[解决办法]
我发现很占内存
[解决办法]
看不到雷还算小bug?
[解决办法]
[解决办法]
不错,学习
[解决办法]
我也是菜鸟,欧欧。。。。
[解决办法]
恩 领主确实受教了
[解决办法]
顶一下吧...学习下
[解决办法]
l厉害呀
[解决办法]
顶 高手的注释一般都是英文的 要学会习惯
[解决办法]
恭喜恭喜
[解决办法]
每天十分顶一下
[解决办法]
学习学习,已拜读,谢谢楼主
[解决办法]
是不是就一个java文件??
[解决办法]
我怎么就运行不了的呢?
[解决办法]
呵呵,学习一下
[解决办法]
下来看看,学些一下。
[解决办法]
写的不错 分享一下 谢谢
------解决方案--------------------
果然是好文啊
[解决办法]
哈哈 不错的 不过大多数都是看不懂啊
[解决办法]
ding.新生多指教.一定多多支持的.
[解决办法]
顶
[解决办法]
这里大神好多啊!
[解决办法]
不错 看下
[解决办法]
.....我运行了下,但是用鼠标点击,没东西反应的,后来可能点中一个雷,才反应我输了~
[解决办法]
LZ呀 要不要再写个俄罗斯方块 话说 我只见过用VS写的 还没见过JAVA 版
不得不说LZ厉害呀
[解决办法]
学习下
顺便接个分,呵呵
[解决办法]
菜鸟学习下!!
[解决办法]
先运行看看
[解决办法]
汗,我不会java