代码

package com.atguigu.java4;/*** @author zyz* @version 1.0* @data 2023/2/20 14:55* @Description:*/import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Random;class MineSweeper extends JFrame { private JButton[][] buttons; private int[][] mines; private int[][] counts; private int row; private int col; private int mineNum; private int count; private boolean isGameOver;public MineSweeper(int row, int col, int mineNum) {this.row = row;this.col = col;this.mineNum = mineNum;this.count = 0;this.isGameOver = false;this.buttons = new JButton[row][col];this.mines = new int[row][col];this.counts = new int[row][col];initMines();initCounts();initFrame();}private void initMines() {Random random = new Random();int num = 0;while (num < mineNum) {int x = random.nextInt(row);int y = random.nextInt(col);if (mines[x][y] == 0) {mines[x][y] = 1;num++;}}}private void initCounts() {for (int i = 0; i < row; i++) {for (int j = 0; j < col; j++) {if (mines[i][j] == 1) {counts[i][j] = -1;} else {int count = 0;if (i > 0 && j > 0 && mines[i - 1][j - 1] == 1) {count++;}if (i > 0 && mines[i - 1][j] == 1) {count++;}if (i > 0 && j < col - 1 && mines[i - 1][j + 1] == 1) {count++;}if (j > 0 && mines[i][j - 1] == 1) {count++;}if (j < col - 1 && mines[i][j + 1] == 1) {count++;}if (i < row - 1 && j > 0 && mines[i + 1][j - 1] == 1) {count++;}if (i < row - 1 && mines[i + 1][j] == 1) {count++;}if (i < row - 1 && j < col - 1 && mines[i + 1][j + 1] == 1) {count++;}counts[i][j] = count;}}}}private void initFrame() {this.setTitle("扫雷");this.setSize(col * 50, row * 50);this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);this.setLayout(new GridLayout(row, col));for (int i = 0; i < row; i++) {for (int j = 0; j < col; j++) {buttons[i][j] = new JButton();buttons[i][j].setBackground(Color.GRAY);buttons[i][j].addActionListener(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent e) {JButton button = (JButton) e.getSource();int x = 0;int y = 0;for (int i = 0; i < row; i++) {for (int j = 0; j < col; j++) {if (buttons[i][j] == button) {x = i;y = j;break;}}}if (mines[x][y] == 1) {button.setBackground(Color.RED);isGameOver = true;} else {button.setText(String.valueOf(counts[x][y]));button.setEnabled(false);count++;}if (count == row * col - mineNum) {JOptionPane.showMessageDialog(null, "恭喜你,你赢了!");isGameOver = true;}if (isGameOver) {for (int i = 0; i < row; i++) {for (int j = 0; j < col; j++) {if (mines[i][j] == 1) {buttons[i][j].setBackground(Color.RED);}buttons[i][j].setEnabled(false);}}}}});this.add(buttons[i][j]);}}this.setVisible(true);}public static void main(String[] args) {new MineSweeper(10, 10, 10);}
}

测试

踩到雷会爆红

使用ChatGPT实现可视化操作扫雷小游戏 【java代码实现】相关推荐

  1. 贪吃蛇小游戏--Java代码

    贪吃蛇游戏 图纸设计 按帧动 静态页面绘制 让小蛇动起来 吃豆豆 积分展示 展望 难点:计算坐标 package comleo.snake;import javax.swing.*;public cl ...

  2. 21点 小游戏 java代码_基于Java的21点扑克游戏的实现

    在上次写的比较牌点的扑克游戏上Java扑克游戏(多人多牌数比较游戏)的实现中,添加21点游戏规则,实现21点牌类游戏.具体实现步骤如下:[需要源代码的留QQ,大家一起探讨探讨哈,谢谢啦!] 抽象出规则 ...

  3. 弹球小游戏java代码_java实现简单的弹球游戏

    弹球游戏实现原理: 隔一定时间(小于1秒)重新绘制图像,因为Graphics类是一个抽象类,创建子类的时候需要把所有涉及的方法都得重写,所以这里使用的是创建Canvas的子类,只需要重写它的paint ...

  4. 弹球小游戏java代码_android 发射弹球小游戏 附完整源码下载

    [实例简介]android 弹球游戏制作 [实例截图]  [核心代码] package wyf.ytl; //声明包语句 public class BallGoThread extends Threa ...

  5. 21点 小游戏 java代码_21点游戏java实现

    21点的基本知识 21点是世界上比较流行的扑克游戏项目 除掉大小王的一副扑克牌,共计52张牌 21点不区分花色,其中A----10均代表扑克牌本身的点数J Q K代表10点 区分庄家和闲家,其中闲家可 ...

  6. 在SAP GUI中玩扫雷小游戏

    在GUI中玩扫雷小游戏 ABAP代码: *&---------------------------------------------------------------------* *&a ...

  7. STM32单片机扫雷游戏TFT触摸操作单片机小游戏

    实践制作DIY- GC0015-怀旧扫雷小游戏 一.功能说明: 基于STM32单片机设计-扫雷游戏 功能介绍: 1.基于STM32F103R系列单片机,2.4寸电阻触摸屏,24c02存储器,. 2.1 ...

  8. ChatGPT实现用C语言写一个扫雷小游戏

    前几天我们利用 ChatGPT实现用C语言写一个学生成绩管理系统 其过程用时不到30秒,速度惊人 今天又让ChatGPT用C语言写了一个扫雷小游戏,它的回答是:抱歉,我是AI语言模型,无法编写程序. ...

  9. 人工智能ChatGPT 体验案例:使用ChatGPT实现java扫雷小游戏

    前言 火了很长一段时间的ChatGPT.注册使用需要国外的手机号 3.1 计算机专业知识类问题 - 3.2 生活常识类 3.3 情感类 3.4 扫雷小游戏案例 package com.atguigu. ...

最新文章

  1. 利用现有资源快速实现汉语专用分词系统
  2. K - FatMouse and Cheese
  3. 1.2 什么是神经网络-深度学习第一课《神经网络与深度学习》-Stanford吴恩达教授
  4. 微服务API模拟框架frock介绍
  5. OSI七层网络模型与TCP/IP四层网络
  6. 基于ssm框架和freemarker的商品销售系统
  7. MFC新建文件夹、打开文件夹的实现方法
  8. ansible的delegate_to、connection、和local_action
  9. Windows定时自动执行python脚本2(自动运行问题已解决)
  10. gain在matlab里什么意思,gain gray是什么意思
  11. 实战:借助ucloud镜像加速功能下载镜像(亲测成功)-2022.1.1
  12. inflect java_Python lemminflect包_程序模块 - PyPI - Python中文网
  13. 计算机毕业设计之全网独家Spark租房爬虫数据分析与推荐系统 租房大数据 租房app 租房数据分析 租房爬虫 房源推荐系统 房源数据分析 房源可视化
  14. 百度大脑营业执照识别使用攻略
  15. P1472 奶牛家谱 Cow Pedigrees
  16. 一文搞懂“正态分布”所有重要知识点
  17. 聊聊语音聊天室app源码实时音视频中的技术难点:回声消除+噪声消除
  18. 使用 MediaSource 搭建流式播放器
  19. [cx32] jlink烧录脚本使用
  20. p50, p90, p99 (pct 50, pct 90, pct 99)指什么?

热门文章

  1. 《类和对象》-析构函数
  2. death coming一直连接服务器,死神来了Death Coming手游全关卡通关攻略汇总
  3. Linux上无法杀掉redis、redis-sentinel进程
  4. php开发微信公众号,接收粉丝过来的小视频
  5. 用python给女朋友画素描_【python小工具】不给你的女朋友来张素描吗?使用python将图片转素描...
  6. Android Sokect 一对多~ 服务端对多个客户端(个人笔记)
  7. 转:性能测试解惑之并发压力
  8. 我面试的人成了我的领导,我该不该离职?
  9. softmax loss对输入的求导推导
  10. 汽车制造业大量采用自动化焊接机器人