资源简介
写java一年了,无聊写个小扫雷游戏,写了注释,提供给新手参考

代码片段和文件信息
package king.activity;
import java.awt.Color;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.util.Random;
import javax.swing.JButton;
import javax.swing.Jframe;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
public class Mineframe extends Jframe {
private JPanel panel_title;// 存重新开始button和剩余雷数label
private JPanel panel;// 存雷区
private JLabel label;// 显示剩余雷数
private final static int N = 25;// 雷数
private final static int E = 50;// 一个雷的Button边长
private final static int L = 12;// 雷区长宽长度
private final static int M = 9;// 9表示雷在矩阵中的数
private int notLei = 0;// 非雷区域数量
private int isFlag = 0;// 标志旗的数量
private int[][] matrix = new int[L][L];// 雷区矩阵 存储周围雷的数量,雷用9表示
private Node[][] nodes;// 雷区
private ButtonListener buttonListener;// 左键单击响应
public static void main(String[] args) {
new Mineframe().runGame();
}
public Mineframe() {
this.settitle(“£扫雷“);
this.setBounds(220 100 720 750);
panel = new JPanel();
panel.setLayout(null);
panel_title = new JPanel();
panel_title.setLayout(null);
panel.setBounds(0 50 700 700);
panel_title.setBounds(0 0 700 50);
this.add(panel);
this.add(panel_title);
JButton begin = new JButton(“重新开始“);
begin.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
runGame();
}
});
begin.setBounds(270 15 160 40);
panel_title.add(begin);
label = new JLabel();
label.setBounds(600 30 100 20);
label.setText(“剩余雷数: “ + (N - isFlag));
panel_title.add(label);
this.setDefaultCloseOperation(Jframe.EXIT_ON_CLOSE);
}
public void runGame() {
panel.removeAll();// 移除panel所有组件
repaint();// 重画
nodes = new Node[L][L];
for (int i = 0; i < L; i++) {// 画雷区
for (int j = 0; j < L; j++) {
Node node = new Node();
nodes[i][j] = node;
node.i = i;
node.j = j;
node.setBounds((j + 1) * E (i + 1) * E E E);
buttonListener = new ButtonListener(node);
node.addActionListener(buttonListener);
node.addMouseListener(new FlagListener(node));
panel.add(node);
}
}
int m = 0;
int n = 0;
int temp = 0;
Random r = new Random();
for (int i = 0; i < L * L; i++) {// 产生随机雷
m = r.nextInt(L);
n = r.nextInt(L);
if (!nodes[m][n].isMine) {
nodes[m][n].isMine = true;
temp++;
nodes[m][n].setText(““);
}
if (temp == N) {
break;
}
}
for (int i = 0; i < L; i++) {// 给matrix赋值
for (int j = 0; j < L; j++) {
if (nodes[i][j].isMine) {
matrix[i][j] = M;
} else {
matrix[i][j] = getAround(nodes[i][j]);
}
}
}
isFlag = 0;
label.setText(“剩余雷数: “ + (N - isFlag));
this.setVisible(true);
}
private int getAround(Node node) {// 得到结点周围雷的数量 按照 a[0]a[1]a[2] 01235678顺序
// a[3] a[5]
int i =
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2011-10-15 18:48 SaoLei\
文件 232 2011-10-15 18:48 SaoLei\.classpath
文件 382 2011-10-15 18:48 SaoLei\.project
目录 0 2011-10-15 18:49 SaoLei\bin\
目录 0 2011-10-15 18:50 SaoLei\bin\king\
目录 0 2011-10-18 20:19 SaoLei\bin\king\activity\
文件 689 2011-10-18 20:27 SaoLei\bin\king\activity\Minefr
文件 2179 2011-10-18 20:27 SaoLei\bin\king\activity\Minefr
文件 1997 2011-10-18 20:27 SaoLei\bin\king\activity\Minefr
文件 6131 2011-10-18 20:27 SaoLei\bin\king\activity\Minefr
文件 374 2011-10-16 13:52 SaoLei\bin\king\activity\Node.class
目录 0 2011-10-15 18:49 SaoLei\src\
目录 0 2011-10-15 18:50 SaoLei\src\king\
目录 0 2011-10-18 20:19 SaoLei\src\king\activity\
文件 8274 2011-10-18 20:27 SaoLei\src\king\activity\Minefr
文件 168 2011-10-16 13:52 SaoLei\src\king\activity\Node.java
相关资源
- 微博系统(Java源码,servlet+jsp),适
- java串口通信全套完整代码-导入eclip
- jsonarray所必需的6个jar包.rar
- 三角网构TIN生成算法,Java语言实现
- java代码编写将excel数据导入到mysql数据
- Java写的cmm词法分析器源代码及javacc学
- JAVA JSP公司财务管理系统 源代码 论文
- JSP+MYSQL旅行社管理信息系统
- 推荐算法的JAVA实现
- 基于Java的酒店管理系统源码(毕业设
- java-图片识别 图片比较
- android毕业设计
- java23种设计模式+23个实例demo
- java Socket发送/接受报文
- JAVA828436
- java界面美化 提供多套皮肤直接使用
- 在线聊天系统(java代码)
- 基于Java的图书管理系统807185
- java中实现将页面数据导入Excel中
- java 企业销售管理系统
- java做的聊天系统(包括正规课程设计
- Java编写的qq聊天室
- 商店商品管理系统 JAVA写的 有界面
- JAVA开发聊天室程序
- 在linux系统下用java执行系统命令实例
- java期末考试试题两套(答案) 选择(
- JAVA3D编程示例(建模、交互)
- Java 文件加密传输
- java做的房产管理系统
- 基于jsp的bbs论坛 非常详细
评论
共有 条评论