java程序扫雷_Java实现简单的扫雷小程序
前两天看了个扫雷的视频,于是自己跟着做了下,感觉还不是很难。
初学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实现简单的扫雷小程序相关推荐
- java中斗地主发牌程序代码_java模拟实现斗地主发牌小程序
java模拟实现斗地主发牌小程序 发布于 2020-8-3| 复制链接 摘记: 一副扑克有54张牌:大小王+4*13,接下来我们来模拟一下斗地主的发牌过程首先,我们需要买牌,新买来的牌都是按顺序摆放的 ...
- java小程序扑克牌_java实现扑克牌牌面小程序
本文实例为大家分享了java实现扑克牌牌面小程序的具体代码,供大家参考,具体内容如下 本周分享一个扑克牌牌面小程序如下: package com.softeem.lmg.one2.work1; imp ...
- 用java制作扑克牌_java实现扑克牌牌面小程序
本文实例为大家分享了java实现扑克牌牌面小程序的具体代码,供大家参考,具体内容如下 本周分享一个扑克牌牌面小程序如下: package com.softeem.lmg.one2.work1; imp ...
- python简单图画程序_制作一个简单的画图小程序界面
1 新建一个文本文档,然后点击重命名,建立一个python文件.后缀为.py.如图所示,系统会提示是否更改后缀,点击是.然后就创建了一个python文件. 2 打开刚才创建的文件,使用idle打开方式 ...
- 微信读书登陆界面java_(JAVA后端)微信小程序-毕设级项目搭建-微信阅读小程序(内含源码,微信小程序+java逻辑后台+vue管理系统)~不求完美,实现就好...
转载地址:(JAVA后端)微信小程序-毕设级项目搭建-微信阅读小程序(内含源码,微信小程序+java逻辑后台+vue管理系统)~不求完美,实现就好 转载请注明出处 一.环境搭建 相关环境软件:JDK1 ...
- java基本微信小程序的快递代收派送系统 uniapp小程序
随着时代的发展,人们生活的节奏越来越快,但是快递已经成为人们生活中的一个重要组成部分,基本每个人都会收发快递,如果这些事情全部都到快递站点进行处理,是很浪费时间和精力的一件事情.为了能够让快递代收和派 ...
- Java SpringMVC+H5飞翔的小鸟游戏微信小程序源码
源码介绍 Java SpringMVC+H5飞翔的小鸟游戏微信小程序源码 试验性质的一个微信小程序,用canvas做的一个类似flappy-bird的小游戏. 包含一些基本的功能:躲避障碍物.计分.排 ...
- (微信小程序)微信小程序-毕设级项目搭建-微信阅读小程序(内含源码,微信小程序+java逻辑后台+vue管理系统)~不求完美,实现就好
转载地址:(微信小程序)微信小程序-毕设级项目搭建-微信阅读小程序(内含源码,微信小程序+java逻辑后台+vue管理系统)~不求完美,实现就好 转载请注明出处 作者:Happy王子乐 个人网站(整理 ...
- Java后台实现网站微信扫码登录功能,获取用户openid,及微信用户信息(小程序码方案),关联微信小程序(个人主体小程序也可以)
目录 前言 操作流程 1.注册微信小程序 2.通过后台获取小程序码 注意事项 时序图理解 方案实现步骤 前言 很多业务场景之下我们需要实现微信扫码登录检测登录状态的需求,或需要同步网站与小程序的用户信 ...
最新文章
- [bbk4966]第70集 第8章 -性能维护 01
- 居然是Firefox没有抛弃我们
- python中用函数货币转换代码_python将人民币转换大写的脚本代码
- ubuntu安装配置elasticSearch(vagrant)
- 如何使用Spring设置安全的REST API
- JS node 后端签名前端文件直传ali-oss解决方案
- ios 支付宝支付 回调数据_iOS逆向支付宝
- node.js 学习笔记四:读取文件
- Linux : Notepad++ 远程连接linux
- 局域网技术与组网工程实训
- [云计算]两层网络、三层网络的理解
- Linux 开机引导与关机过程
- 用微PE安装KALI LINUX到U盘,【U盘安装kali】U盘 kali pe三合一教程!装机,存储
- 微信小游戏制作坦克大战(二)添加主角坦克
- C语言如何实现寻找峰值函数,findpeaks 寻找峰值函数
- 极速掌握HTML(一)基础入门
- 【QT Graphics/View】简易图元编辑器
- 安装matlab 2021 多出来一个 cd 驱动器盘符,删掉这个东西的办法
- 【20210910】【机器/深度学习】lightGBM模型训练中报错:“Cannot set reference after freed raw data“
- uniapp实现video视频禁止拖拽快进功能,禁止拖动进度条快进