前两天看了个扫雷的视频,于是自己跟着做了下,感觉还不是很难。

初学Java的同学可以尝试自己操作下Java小程序

这样子才能提高自己的理解能力和编程水平

不用多说了,直接上代码吧!

具体代码操作如下:

import java.awt.BorderLayout;

import java.awt.Color;

import java.awt.Container;

import java.awt.GridLayout;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import java.util.Random;

import javax.swing.JButton;

import javax.swing.JFrame;

import javax.swing.*;

public class saolei implements ActionListener {

JFrame frame=new JFrame("扫雷游戏");

JButton reset=new JButton("重来");

Container container=new Container();

//游戏数据结构

final int row=20;

final int col=20;

final int leiCount=30;

JButton [][] buttons=new JButton[row][col];

int [][] counts=new int[row][col];

final int LEICODE=10;

// 构造函数

public saolei(){

//1、设置窗口

frame.setSize(900, 800);

frame.setResizable(true);//是否可改变窗口大小

frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

frame.setLayout(new BorderLayout());

//2、添加重来按钮

addResetButton();

//添加按钮

addButtons();

//埋雷

addLei();

//添加雷的计算

calcNeiboLei();

frame.setVisible(true);

}

public void addResetButton(){

reset.setBackground(Color.green);

reset.setOpaque(true);

reset.addActionListener(this);

frame.add(reset,BorderLayout.NORTH);

}

public void addLei(){

Random rand=new Random();

int randRow,randCol;

for(int i=0;i0 && j>0 && counts[i-1][j-1]==LEICODE) count++;

if(i>0&&counts[i-1][j]==LEICODE) count++;

if(i>0 && j<19 && counts[i-1][j+1]==LEICODE) count++;

if(j>0 && counts[i][j-1]==LEICODE) count++;

if(j<19 && counts[i][j+1]==LEICODE) count++;

if(i<19&&j>0&&counts[i+1][j-1]==LEICODE) count++;

if(i<19&&counts[i+1][j]==LEICODE) count++;

if(i<19&&j<19&&counts[i+1][j+1]==LEICODE) count++;

counts[i][j]=count;

//buttons[i][j].setText(counts[i][j]+"");

}

}

}

@Override

public void actionPerformed(ActionEvent e) {

// TODO Auto-generated method stub

JButton button=(JButton)e.getSource();

if(button.equals(reset)){

for(int i=0;i0 && j>0 && counts[i-1][j-1]!=LEICODE) openCell(i-1, j-1);

if(i>0&&counts[i-1][j]!=LEICODE) openCell(i-1, j);

if(i>0 && j<19 && counts[i-1][j+1]!=LEICODE) openCell(i-1, j+1);

if(j>0 && counts[i][j-1]!=LEICODE) openCell(i, j-1);

if(j<19 && counts[i][j+1]!=LEICODE) openCell(i, j+1);

if(i<19&&j>0&&counts[i+1][j-1]!=LEICODE) openCell(i+1, j-1);

if(i<19&&counts[i+1][j]!=LEICODE) openCell(i+1, j);

if(i<19&&j<19&&counts[i+1][j+1]!=LEICODE) openCell(i+1, j+1);

buttons[i][j].setText(counts[i][j]+"");

}else{

buttons[i][j].setText(counts[i][j]+"");

}

}

void LoseGame(){

for(int i=0;i

大致具体的代码和结果如下

更多精彩游戏,请参考专题《java经典小游戏》

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

java程序扫雷_Java实现简单的扫雷小程序相关推荐

  1. java中斗地主发牌程序代码_java模拟实现斗地主发牌小程序

    java模拟实现斗地主发牌小程序 发布于 2020-8-3| 复制链接 摘记: 一副扑克有54张牌:大小王+4*13,接下来我们来模拟一下斗地主的发牌过程首先,我们需要买牌,新买来的牌都是按顺序摆放的 ...

  2. java小程序扑克牌_java实现扑克牌牌面小程序

    本文实例为大家分享了java实现扑克牌牌面小程序的具体代码,供大家参考,具体内容如下 本周分享一个扑克牌牌面小程序如下: package com.softeem.lmg.one2.work1; imp ...

  3. 用java制作扑克牌_java实现扑克牌牌面小程序

    本文实例为大家分享了java实现扑克牌牌面小程序的具体代码,供大家参考,具体内容如下 本周分享一个扑克牌牌面小程序如下: package com.softeem.lmg.one2.work1; imp ...

  4. python简单图画程序_制作一个简单的画图小程序界面

    1 新建一个文本文档,然后点击重命名,建立一个python文件.后缀为.py.如图所示,系统会提示是否更改后缀,点击是.然后就创建了一个python文件. 2 打开刚才创建的文件,使用idle打开方式 ...

  5. 微信读书登陆界面java_(JAVA后端)微信小程序-毕设级项目搭建-微信阅读小程序(内含源码,微信小程序+java逻辑后台+vue管理系统)~不求完美,实现就好...

    转载地址:(JAVA后端)微信小程序-毕设级项目搭建-微信阅读小程序(内含源码,微信小程序+java逻辑后台+vue管理系统)~不求完美,实现就好 转载请注明出处 一.环境搭建 相关环境软件:JDK1 ...

  6. java基本微信小程序的快递代收派送系统 uniapp小程序

    随着时代的发展,人们生活的节奏越来越快,但是快递已经成为人们生活中的一个重要组成部分,基本每个人都会收发快递,如果这些事情全部都到快递站点进行处理,是很浪费时间和精力的一件事情.为了能够让快递代收和派 ...

  7. Java SpringMVC+H5飞翔的小鸟游戏微信小程序源码

    源码介绍 Java SpringMVC+H5飞翔的小鸟游戏微信小程序源码 试验性质的一个微信小程序,用canvas做的一个类似flappy-bird的小游戏. 包含一些基本的功能:躲避障碍物.计分.排 ...

  8. (微信小程序)微信小程序-毕设级项目搭建-微信阅读小程序(内含源码,微信小程序+java逻辑后台+vue管理系统)~不求完美,实现就好

    转载地址:(微信小程序)微信小程序-毕设级项目搭建-微信阅读小程序(内含源码,微信小程序+java逻辑后台+vue管理系统)~不求完美,实现就好 转载请注明出处 作者:Happy王子乐 个人网站(整理 ...

  9. Java后台实现网站微信扫码登录功能,获取用户openid,及微信用户信息(小程序码方案),关联微信小程序(个人主体小程序也可以)

    目录 前言 操作流程 1.注册微信小程序 2.通过后台获取小程序码 注意事项 时序图理解 方案实现步骤 前言 很多业务场景之下我们需要实现微信扫码登录检测登录状态的需求,或需要同步网站与小程序的用户信 ...

最新文章

  1. [bbk4966]第70集 第8章 -性能维护 01
  2. 居然是Firefox没有抛弃我们
  3. python中用函数货币转换代码_python将人民币转换大写的脚本代码
  4. ubuntu安装配置elasticSearch(vagrant)
  5. 如何使用Spring设置安全的REST API
  6. JS node 后端签名前端文件直传ali-oss解决方案
  7. ios 支付宝支付 回调数据_iOS逆向支付宝
  8. node.js 学习笔记四:读取文件
  9. Linux : Notepad++ 远程连接linux
  10. 局域网技术与组网工程实训
  11. [云计算]两层网络、三层网络的理解
  12. Linux 开机引导与关机过程
  13. 用微PE安装KALI LINUX到U盘,【U盘安装kali】U盘 kali pe三合一教程!装机,存储
  14. 微信小游戏制作坦克大战(二)添加主角坦克
  15. C语言如何实现寻找峰值函数,findpeaks 寻找峰值函数
  16. 极速掌握HTML(一)基础入门
  17. 【QT Graphics/View】简易图元编辑器
  18. 安装matlab 2021 多出来一个 cd 驱动器盘符,删掉这个东西的办法
  19. 【20210910】【机器/深度学习】lightGBM模型训练中报错:“Cannot set reference after freed raw data“
  20. uniapp实现video视频禁止拖拽快进功能,禁止拖动进度条快进

热门文章

  1. 对敏捷开发的误解(转自MBAlib)
  2. Banner——第四阶段考核——仿海尔商城网页
  3. 阿里云 EMAS 旗下低代码平台 Mobi 开放定向内测
  4. Factorio linux 服务器 无法连接到主机问题
  5. 【天光学术】7种mba论文常用研究方法,你会哪几种?
  6. 中国网络不该娱乐化?
  7. 家长控制小孩电脑软件
  8. weblogic10.3.5 内存修改
  9. Android 自定义钟表 表盘 机械表
  10. 拼多多电商玩家快速采集平台数据