网站首页 > 文章中心 > 其它

扫雷的java的代码

作者:小编 更新时间:2023-09-19 07:02:12 浏览量:308人看过

求高手帮忙一个"扫雷"游戏的JAVA的程序代码

import javax.swing.ImageIcon; //程序入口

public class Block {

String name; //名字,比如"雷"或数字

int aroundMineNumber; //周围雷的数目

ImageIcon mineIcon; //雷的图标

boolean isMine=false; //是否是雷

boolean isMark=false; //是否被标记

boolean isOpen=false; //是否被挖开

public void setName(String name) {

this.name=name;

}

//设置周围的雷数

public void setAroundMineNumber(int n) {

aroundMineNumber=n;

//获得周围的雷数

public int getAroundMineNumber() {

return aroundMineNumber;

public String getName() {

return name;

//判断是否是雷

public boolean isMine() {

return isMine;

//设置是否为雷

public void setIsMine(boolean b) {

isMine=b;

//设置雷的图标

public void setMineIcon(ImageIcon icon){

mineIcon=icon;

//获得雷的图标

public ImageIcon getMineicon(){

return mineIcon;

//确定雷是否被挖开

public boolean getIsOpen() {

return isOpen;

//设置为已经被挖开

public void setIsOpen(boolean p) {

isOpen=p;

//返回此处是否已经被标记

public boolean getIsMark() {

return isMark;

//设置此处是否已经被标记

public void setIsMark(boolean m) {

isMark=m;

import javax.swing.*;

import java.awt.*;

public class BlockView extends JPanel{

JLabel blockNameOrIcon; //用来显示Block对象的name、number和mineIcon属性

JButton blockCover; //用来遮挡blockNameOrIcon.

CardLayout card; //卡片式布局

BlockView(){

card=new CardLayout();

setLayout(card);

blockNameOrIcon=new JLabel("",JLabel.CENTER);

blockNameOrIcon.setHorizontalTextPosition(AbstractButton.CENTER);

blockNameOrIcon.setVerticalTextPosition(AbstractButton.CENTER);

blockCover=new JButton();

add("cover",blockCover);

add("view",blockNameOrIcon);

//给出视觉效果变化

public void giveView(Block block){

// 如果是雷,将对应的图标和文字更改

if(block.isMine){

blockNameOrIcon.setText(block.getName());

blockNameOrIcon.setIcon(block.getMineicon());

else {

int n=block.getAroundMineNumber();

if(n=1)

blockNameOrIcon.setText(""◆n);

else

blockNameOrIcon.setText(" ");

public void seeBlockNameOrIcon(){

card.show(this,"view");

validate();

public void seeBlockCover(){

card.show(this,"cover");

public JButton getBlockCover(){

return blockCover;

JAVA 扫雷的一段代码求解释

int BombNum, BlockNum; // 当前雷数,当前方块数

int rightBomb, restBomb, restBlock; // 找到的地雷数,剩余雷数,剩余方块数

JButton start = new JButton(" 开始 ");

JPanel MenuPamel = new JPanel(); //新建一个区域,看名字是放菜单.但是打错字了.

JPanel bombPanel = new JPanel();//新建一个区域,雷区,由于雷是按钮,这里面应该都是按钮(JButton).

class Bomb extends JButton {

int num_x, num_y; // 第几号方块

int BombRoundCount; // 周围雷数

boolean isBomb; // 是否为雷

int BombFlag; // 探雷标记

public Bomb(int x, int y) {

num_x = x; //雷的位置 x,不解释

BombFlag = 0; //是不是被插旗了

isBomb = false; //是雷

isClicked = false; //被点

isRight = false; //是真的.( 以上都很好理解,直译^_^)

/* 计算方块周围雷数 */

public void CountRoundBomb() {

for (int i = 0; i (int) Math.sqrt(BlockNum); i◆◆) { //开方 障碍数

for (int j = 0; j (int) Math.sqrt(BlockNum); j◆◆) { //同上,我判断,设计的雷区是正方形,

//这里是找完所有的坐标.

int count = 0;

// 当需要检测的单元格本身无地雷的情况下,统计周围的地雷个数

if (bombButton[i][j].isBomb != true) { //如果不是雷

//邻近的上中下.(这里会多找一个自己)

if ( (x = 0) (y = 0)

(x ( (int) Math.sqrt(BlockNum)))

(y ( (int) Math.sqrt(BlockNum)))) { //因边前面 x=i-1,所以排除超出边界

//的情况

if (bombButton[x][y].isBomb == true) { //如果是雷;

count◆◆; //加一个

bombButton[i][j].BombRoundCount = count; //设置该Bomb环绕数的值

都说到这里了大家应该明白就是,建个一个Bomb类. 别外有一个方法统计那些不是雷的地方,的周围有几颗雷,到时候点开,显示出来.

运行在Eclipse环境下的java扫雷游戏的初级代码是什么?

版权声明:倡导尊重与保护知识产权。未经许可,任何人不得复制、转载、或以其他方式使用本站《原创》内容,违者将追究其法律责任。本站文章内容,部分图片来源于网络,如有侵权,请联系我们修改或者删除处理。

编辑推荐

热门文章