资源简介
写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 socket 视频流转发socket
- 矩阵的相关运算gui界面设计的
- 蜘蛛纸牌 java实现
- 使用j-Interop实现java连接wmi获取window
- java连接mysql数据库框架
- java五子棋网络版
- java五子棋源码人人
- 二期结业项目易买网购物车
- 首次适应法动态分区存储管理(java)
- 彻底搞定java文件上传.txt
- Java抓包程序
- 基于Java的扫雷游戏
- 带界面的DES加密解密java源码
- 商品库存管理系统java源代码
- 企业快信java.rar
- java 通讯录
- weixin-java-tools-1.3.3(jdk1.6版本编译)
- 斗鱼获取实时弹幕/java代码
- 图书馆管理系统jsp+mysql+Servlet+javaBea
- 呕心沥血的java复杂聊天室(包括自定
- java实现霍夫曼(huffman)树的压缩和解
- JAVA管程解决哲学家就餐问题
- 客户信息管理系统
- java web开发简单留言板
- java新手8个小项目
- Java实现TXT文件转图片
- java图像处理方法:灰度化,二值化,
- ssd8 exam1 代理服务器 java
- eclipse2019 mac版
- Java基础 用数组写的学生管理系统
评论
共有 条评论