扫雷小游戏纯后端版

java 复制代码
package com.wind;

import java.util.Random;
import java.util.Scanner;

public class ResultLei {

	static Random random = new Random();

	public static void main(String[] args) {
		boolean end = true;
		while (end) {
			System.out.println("请输入你选择的难度对应的数字:" + '\n' + "简单:1" + '\n' + "中等:2" + '\n' + "困难:3" + '\n' + "退出:4");
			Scanner sc = new Scanner(System.in);
			int t = sc.nextInt();
			switch (t) {
			case 1:
				result(9, 9, 10);
				break;
			case 2:
				result(16, 16, 40);
				break;
			case 3:
				result(16, 30, 100);
				break;
			case 4:
				end = false;
				break;
			default:
				break;
			}
		}
	}

	public static void result(int q, int w, int e) {

		// 定义一个二维数组用来存储地雷的数据
		int[][] arr = new int[e][e];

		// 定义一个变量存储随机出来的数据比较唯一性
		int x, y;

		// 随机出雷的数据并保证唯一性
		for (int i = 0; i < e; i++) {
			boolean one = true;
			x = random.nextInt(q) + 1;
			y = random.nextInt(w) + 1;
			for (int j = 0; j <= i; j++) {
				if (x == arr[1][j] && y == arr[2][j]) {
					one = false;
					i--;
					break;
				}
			}
			if (one) {
				arr[1][i] = x;
				arr[2][i] = y;
			}
		}

		// 计算非雷格的数字,并将数据输出
		for (int i = 1; i <= q; i++) {
			for (int j = 1; j <= w; j++) {

				boolean lei = true;

				for (int t = 0; t < e; t++) {
					if (i == arr[1][t] && j == arr[2][t]) {
						System.out.print("* ");
						lei = false;
					}
				}
				if (lei) {
					int count = 0;
					for (int t = 0; t < e; t++) {
						if (i - 1 == arr[1][t] && j - 1 == arr[2][t]) {
							count++;
						}
						if (i - 1 == arr[1][t] && j == arr[2][t]) {
							count++;
						}
						if (i - 1 == arr[1][t] && j + 1 == arr[2][t]) {
							count++;
						}
						if (i == arr[1][t] && j - 1 == arr[2][t]) {
							count++;
						}
						if (i == arr[1][t] && j + 1 == arr[2][t]) {
							count++;
						}
						if (i + 1 == arr[1][t] && j - 1 == arr[2][t]) {
							count++;
						}
						if (i + 1 == arr[1][t] && j == arr[2][t]) {
							count++;
						}
						if (i + 1 == arr[1][t] && j + 1 == arr[2][t]) {
							count++;
						}
					}
					System.out.print(count + " ");
				}
			}
			System.out.println();
		}
	}
}
相关推荐
不是万能的豆学长6 分钟前
排查Go服务40天后的内存泄漏问题
开发语言·后端·golang·go
阿狗童鞋7 分钟前
SpringSecurity权限认证实战指南
java·后端·spring
码匠许师傅9 分钟前
【C++三方组件】libpqxx:PostgreSQL 的 C++ 客户端
开发语言·c++·postgresql
Wang's Blog11 分钟前
Java 项目部署之 Docker工具快速入门: 学习路径与命令速查导引
java·学习·docker
H.莓飛20 分钟前
【C++】内存管理
linux·开发语言·jvm·c++·visual studio
tachibana223 分钟前
Go 语言 Map 的底层实现原理
开发语言·后端·golang·make
Wang's Blog33 分钟前
Java 项目部署之 Docker工具快速入门: Docker 镜像仓库
java·docker
心仪久了会沦陷41 分钟前
C语言数据结构入门——队列补充:循环队列的数组实现
c语言·开发语言·数据结构·笔记
企智汇-项目管理软件41 分钟前
离散制造管理系统怎么选?一套系统管住从研发到交付的全周期
java·人工智能·制造·项目经理·项目管理软件·项目管理系统·项目管理软件工程
源图客1 小时前
Python环境安装与PyCharm的第一个项目
开发语言·python·pycharm