Javaaoleibb

本文介绍了如何使用Java实现扫雷游戏,包括随机埋雷、地图操作、雷数统计和用户交互。核心部分展示了如何通过`mai_lei`函数生成随机雷区,并通过`maine_map`函数计算相邻雷点数量。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

package sll;

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

import static java.lang.System.out;

public class sl{
    //埋地雷
    private static void mai_lei(char[][] d, int row, int col,int num) {
        int i = 0,j = 0,x = 0,y =0;
        for (int k = 0; k <num ; k++) {
            x=new Random().nextInt(row);  //这儿是生成的小于row的整数,nextInt方法的参数值要是大于0的整数
            y=new Random().nextInt(col);  //这儿是生成的小于col的整数,nextInt方法的参数值要是大于0的整数
            if (d[x][y] == '0')
            {
                d[x][y] = '1';
            }
            else {
                k--;
            }
        }

    }
    //打印x
    private static void da_yin(char[][] c, int row, int col,int num) {
        int i = 0, j = 0;
        out.print("\n");
        for (i = 0; i < row ; i++) {

            for (j = 0; j < col ; j++) {

                out.print(c[i][j]);
            }
            out.print("\n");
        }
        out.print("\n");
    }
    //统计剩余雷的个数
    private static int suan_lei(char[][] c, int row, int col) {
        int i = 0, j = 0, count = 0;
        for (i = 0; i < row; i++)
        {
            for (j = 0; j < col; j++)
            {
                if (c[i][j] == '*')
                {
                    count++;
                }
            }
        }
        return count;
    }
    private static int maine_map(char[][] map, int xx, int yy,int A,int B) {
    	int num=0;
    	if((xx-1>0)&&(xx+1<A)&&(yy-1>0)&&(yy+1<A)) {
    	if((xx-1>=0)&&(yy-1>=0)&&(map[xx-1][yy-1]=='1')) num++;
    	if((xx-1>=0)&&(yy+0>=0)&&(map[xx-1][yy]=='1')) num++;
    	if((xx-1>=0)&&(yy+1<B) &&(map[xx-1][yy+1]=='1')) num++;
    	if((xx+0>=0)&&(yy-1>=0)&&(map[xx][yy-1]=='1')) num++;
    	if((xx+0>=0)&&(yy+1<B) &&(map[xx][yy+1]=='1')) num++;
    	if((xx+1<A)&&(yy-1>=0) &&(map[xx+1][yy-1]=='1')) num++;
    	if((xx+1<A)&&(yy+0>=0) &&(map[xx+1][yy]=='1')) num++;
    	if((xx+1<A)&&(yy+1<B)  &&(map[xx+1][yy+1]=='1')) num++;}
    	
    	return num;
   
    }


    public static void main(String[] args) {
        while (true){
            Scanner in = new Scanner(System.in);
            int ROW;
            int COL;
            int NUM;

            System.out.println("**********扫雷游戏********");
            System.out.println("请输入地雷区域的高(5-10):");
            ROW = in.nextInt();
            System.out.println("请输入地雷区域的宽(5-10):");
            COL = in.nextInt();
            out.println("请输入地雷的数量(少于高X宽):");
            NUM= in.nextInt();
            out.println("地雷已经埋好了,开始游戏吧");

            char a[][]=new char[ROW][COL];
            int i = 0;
            int j = 0;
            int row = ROW+2;
            int col = COL+2;
            int num = NUM;
            int x = 0;
            int y = 0;
            char [][] xian=new char [row][col];
            char[][] ying=new char[row][col];
            for (i = 1; i < row-1; i++)
                for (j = 1; j < col - 1; j++)   //给两个函数初始化赋值
                {
                    xian[i][j] = '*';
                    ying[i][j] = '0';
                }
            while (true) {
                mai_lei(ying, row, col, num);
                //da_yin(ying, row, col);        //嗯~为了方便调试,偷看雷的实际位置
                da_yin(xian, row, col,num);       //玩家看到的界
                while (true) {
                    out.print("请输入你要扫的X坐标:");
                    x = in.nextInt();
                    out.println();
                    out.print("请输入你要扫的Y坐标:");
                    y = in.nextInt();
                    if (ying[x][y] == '1') {
                        out.print("恭喜你!你被炸死了\n");
                        da_yin(ying, row, col, num);
                        out.print("是否继续y/n ");
                        String pan=in.next();
                        if (pan.equalsIgnoreCase("y")){
                            break;
                        }else {
                            return;
                        }
                    } else {
                        out.println("恭喜你,请继续游戏!");
                        int num_map=maine_map(ying, row, col,ROW,COL);
                        xian[x][y] = (char)num_map;
                        da_yin(xian, row, col,num_map);
                    }
                    if ((suan_lei(xian, row, col)) == row - 2) {
                        out.print("恭喜你,你已获胜\n");
                        return;
                    }
                    da_yin(xian, row, col,num);
                }
            }
        }

    }




}







资源下载链接为: https://pan.quark.cn/s/67c535f75d4c 《一芯量产工具 FirstChip MpTools 20211024 详解及应用》 在数字存储领域,U 盘作为便携式存储设备的典型代表,其稳定性和可靠性极为关键。而 “FirstChip_MpTools_20211024” 正是专为一芯(FirstChip)芯片打造的 U 盘量产工具,主要用于 FC1178 和 FC1179 系列芯片的 U 盘生产、测试与修复工作。本文将深入剖析该工具的功能、使用方法以及其在 U 盘量产过程中的重要作用。 一芯(FirstChip)是一家专注于存储控制器研发的企业,其 FC1178 和 FC1179 芯片被广泛应用于众多 U 盘产品中。这些芯片具备高性能、低功耗以及高兼容性等诸多优点,但在少数情况下,也可能会出现诸如数据丢失、无法识别等故障,此时就需要借助专业的量产工具来进行修复。 “FirstChip MpTools” 是一款功能强大的一芯 U 盘量产管理软件,具备以下功能:一是进行初始化与格式化操作,能够清除 U 盘中的所有数据,并且可以设置不同的文件系统格式,比如 FAT32、NTFS 或 exFAT,以满足不同用户的多样化需求;二是开展性能测试,通过读写速度测试来评估 U 盘的实际性能,帮助用户判断 U 盘的读写速度是否达到了预期的标准;三是进行坏块检测与修复,扫描 U 盘中可能存在的坏块,并尝试对其进行修复,从而确保 U 盘能够稳定运行;四是实现容量调整,允许用户根据实际需求对 U 盘的可用容量进行调整,在处理扩容盘或者修复容量异常的 U 盘时极为实用;五是进行安全擦除,能够彻底删除 U 盘上的所有数据,确保信息安全无虞;六是开展固件升级,对 U 盘的固件进行更新,以此提高兼容性、修复已知问题或者解锁新的功能。 使用 “FirstChip M
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值