扫雷 java 实现 uva 题号10189

来源:互联网 发布:网络购物用户行为报告 编辑:程序博客网 时间:2024/06/11 12:26

由于我不知道如何读取输入,仅提供一个解决方案。

public class Minesweeper {    public static void main(String args[]){       int n=4, m=4;       char[][] mine_matrix=new char[n][m];       mine_matrix[0][0]='*';       mine_matrix[0][1]='.';       mine_matrix[0][2]='.';       mine_matrix[0][3]='.';       mine_matrix[1][0]='.';       mine_matrix[1][1]='.';       mine_matrix[1][2]='.';       mine_matrix[1][3]='.';      mine_matrix[2][0]='.';       mine_matrix[2][1]='*';       mine_matrix[2][2]='.';       mine_matrix[2][3]='.';       mine_matrix[3][0]='.';       mine_matrix[3][1]='.';       mine_matrix[3][2]='.';       mine_matrix[3][3]='.';       Minesweeper.count_mine(n, m, mine_matrix);       }    public static void count_mine(int n, int m, char[][] mine_matrix){        // n 行 m 列         int[][] output_matrix=new int[n][m];        for (int i=0;i<n;i++){            for (int j=0;j<m;j++){                if(mine_matrix[i][j]=='*'){//如果输入矩阵的元素是*                    output_matrix[i][j]='*';                }                else{//如果输入矩阵的元素不是*,分九种情况讨论,分别是位于矩阵的四个角的四种情况,位于四条边的四种情况,以及除这八种之外的情况,共九种                    int count=0;                    if(i==0 && j==0){                        if(mine_matrix[0][1]=='*'){                            count=count+1;                        }                        if(mine_matrix[1][0]=='*'){                            count=count+1;                        }                        if(mine_matrix[1][1]=='*'){                            count=count+1;                        }                         output_matrix[i][j]=count;                    }                                        if(i==n-1 && j==m-1){                        if(mine_matrix[n-1][m-2]=='*'){                            count=count+1;                        }                        if(mine_matrix[n-2][m-1]=='*'){                            count=count+1;                        }                        if(mine_matrix[n-2][m-2]=='*'){                            count=count+1;                        }                         output_matrix[i][j]=count;                                                                    }                                        if(i==n-1&& j==0){                                                if(mine_matrix[n-1][1]=='*'){                            count=count+1;                        }                        if(mine_matrix[n-2][0]=='*'){                            count=count+1;                        }                        if(mine_matrix[n-2][1]=='*'){                            count=count+1;                        }                         output_matrix[i][j]=count;                                            }                                        if(i==0&& j==m-1){                                                if(mine_matrix[0][m-2]=='*'){                            count=count+1;                        }                        if(mine_matrix[1][m-1]=='*'){                            count=count+1;                        }                        if(mine_matrix[1][m-2]=='*'){                            count=count+1;                        }                         output_matrix[i][j]=count;                                            }                                        if(i==n-1&& j!=0 && j!=m-1){                                                if(mine_matrix[i][j-1]=='*'){                            count=count+1;                        }                        if(mine_matrix[i][j+1]=='*'){                            count=count+1;                        }                        if(mine_matrix[i-1][j]=='*'){                            count=count+1;                        }                        if(mine_matrix[i-1][j-1]=='*'){                            count=count+1;                        }                        if(mine_matrix[i-1][j+1]=='*'){                            count=count+1;                        }                                                 output_matrix[i][j]=count;                                            }                                        if(i==0&& j!=0 && j!=m-1){                                                if(mine_matrix[i][j-1]=='*'){                            count=count+1;                        }                        if(mine_matrix[i][j+1]=='*'){                            count=count+1;                        }                        if(mine_matrix[i+1][j]=='*'){                            count=count+1;                        }                        if(mine_matrix[i+1][j-1]=='*'){                            count=count+1;                        }                        if(mine_matrix[i+1][j+1]=='*'){                            count=count+1;                        }                                                 output_matrix[i][j]=count;                                                                    }                                        if(j==0 && i!=0 && i!=n-1){                                                if(mine_matrix[i-1][j]=='*'){                            count=count+1;                        }                        if(mine_matrix[i+1][j]=='*'){                            count=count+1;                        }                        if(mine_matrix[i][j+1]=='*'){                            count=count+1;                        }                        if(mine_matrix[i-1][j+1]=='*'){                            count=count+1;                        }                        if(mine_matrix[i+1][j+1]=='*'){                            count=count+1;                        }                                                 output_matrix[i][j]=count;                                            }                                        if(j==m-1&& i!=0 && i!=n-1){                        if(mine_matrix[i-1][j]=='*'){                            count=count+1;                        }                        if(mine_matrix[i+1][j]=='*'){                            count=count+1;                        }                        if(mine_matrix[i][j-1]=='*'){                            count=count+1;                        }                        if(mine_matrix[i-1][j-1]=='*'){                            count=count+1;                        }                        if(mine_matrix[i+1][j-1]=='*'){                            count=count+1;                        }                                                 output_matrix[i][j]=count;                                            }                                        if(i!=0&& j!=0 && i!=n-1 && j!=m-1){                        if(mine_matrix[i-1][j]=='*'){                            count=count+1;                        }                        if(mine_matrix[i+1][j]=='*'){                            count=count+1;                        }                        if(mine_matrix[i][j+1]=='*'){                            count=count+1;                        }                        if(mine_matrix[i-1][j+1]=='*'){                            count=count+1;                        }                        if(mine_matrix[i+1][j+1]=='*'){                            count=count+1;                        }                       if(mine_matrix[i][j-1]=='*'){                            count=count+1;                        }                        if(mine_matrix[i-1][j-1]=='*'){                            count=count+1;                        }                        if(mine_matrix[i+1][j-1]=='*'){                            count=count+1;                        }                                                 output_matrix[i][j]=count;                    }                                                                            }            }        }        for (int k=0;k<n;k++){            for(int r=0;r<m;r++){                if(output_matrix[k][r]==42){ //由于 output_matrix是一个整型数组,*对应的是42这个整数,输出时要注意。                    System.out.print('*');                }                else{                  System.out.print(output_matrix[k][r]);                  }            }            System.out.println();        }            }}


原创粉丝点击