自己写用Java写的扫雷游戏
-----------做课程设计的可以参考一下。
运行界面截图:
扫雷游戏主界面
以下是游戏代码(共分三个文件即三个类:MySaoLei.java; Area.java 和ZiDingYi.java):
//(1) MySaoLei.java package com.test; import java.awt.*;
import javax.imageio.ImageIO; import javax.swing.*;
import javax.swing.border.Border; import javax.swing.border.LineBorder;
import java.awt.event.*; import java.io.File;
import java.security.acl.Owner; import java.util.*;
public class MySaoLei extends JFrame implements ActionListener,MouseListener{
//w表示横向可以放多少雷,h表示纵向可以放多少雷
static int w=35,h=20; //设置雷的个数
static int leisum=180;
//用二维向量a[][]来存放雷 Area a[][]=null;
//win用于判断是否完成扫雷 int win=0;
Image image = null;
JPanel jp=null; JPanel jp0=null;
JMenuBar jmb; JMenu jm1,jm2;
JMenuItem jm1_1,jm1_2,jm1_3,jm1_4,jm1_5,jm2_1;
//主函数
public static void main(String[] args) { // TODO Auto-generated method stub MySaoLei msl = new MySaoLei(w,h,leisum); }
///////////////////////////////////////////////////构造函数 public MySaoLei(int w,int h,int leisum) { a=new Area[h][w]; this.w=w; this.h=h; this.leisum=leisum; jmb=new JMenuBar(); jm1=new JMenu(\游戏(G)\ jm1_1=new JMenuItem(\初级\ jm1_1.addActionListener(this); jm1_2=new JMenuItem(\中级\ jm1_2.addActionListener(this); jm1_3=new JMenuItem(\高级\ jm1_3.addActionListener(this); jm1_4=new JMenuItem(\自定义\ jm1_4.addActionListener(this);
jm1_5=new JMenuItem(\退出\jm1_5.addActionListener(this);
jm1.add(jm1_1); jm1.add(jm1_2); jm1.add(jm1_3); jm1.add(jm1_4); jm1.add(jm1_5);
jm2=new JMenu(\帮助(H)\
jm2_1=new JMenuItem(\游戏规则\jm2_1.addActionListener(this);
jm2.add(jm2_1);
jmb.add(jm1); jmb.add(jm2);
//创建一个网格布局g1
GridLayout gl=new GridLayout(h,w); gl.setHgap(1); gl.setVgap(1); jp=new JPanel(); jp.setLayout(gl); //初始化雷区