扫雷模型(非完全一样)

 1 package top.dreamcenter.core;
 2 
 3 import java.util.Random;
 4 
 5 public class Saolei {
 6     
 7     /**
 8      * 获得矩阵
 9      * @param width    矩阵尺寸
10      * @param num    矩阵雷数
11      */
12     public static int[][] get(int width,int num) {
13         //+2是为了简化后面检测雷数,坐标x,y都要+1
14         //0-9 显示的数字,-1雷
15         int space[][] = new int[width+2][width+2];
16         //0掩盖,1揭露
17 //        int cover[][] = new int[width+2][width+2];
18         
19         //随机类对象
20         Random rm = new Random();
21         
22         //部署雷
23         for (int i = 0; i < num; i++) {
24             int x = rm.nextInt(width);
25             int y = rm.nextInt(width);
26             if(space[x+1][y+1] != -1) {
27                 space[x+1][y+1] = -1;
28             }else {
29                 i--;
30             }
31         }
32         
33         //检测雷数量
34         for (int i = 0; i < width; i++) {
35             for (int j = 0; j < width; j++) {
36                 if(space[i+1][j+1]!=-1) {
37                     //小范围检测
38                     for(int sy = 0;sy <3;sy++) {
39                         for(int sx = 0;sx <3;sx++) {
40                             if(space[i+sy][j+sx]==-1) {
41                                 space[i+1][j+1]++;
42                             }
43                         }
44                     }
45                 }
46             }
47         }
48         
49         return space;
50     }
51 
52 }

 

posted @ 2020-04-22 17:49  时光潜流  阅读(305)  评论(0编辑  收藏  举报