扫雷 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(); } }}
阅读全文
0 0
- 扫雷 java 实现 uva 题号10189
- uva 10189 扫雷
- java实现简单扫雷
- 扫雷java实现代码
- java 实现扫雷算法
- java 实现简单扫雷
- java实现扫雷游戏
- UVA 10189 - Minesweeper(扫雷)
- UVA 10189 - Minesweeper(扫雷)
- Uva 10189 Minesweeper 扫雷游戏
- java扫雷游戏的实现
- Java扫雷游戏实现参考
- java扫雷的简单实现
- Java利用递归实现扫雷
- java利用递归实现扫雷
- java实现扫雷+AI自动扫雷策略及实现
- UVa Problem 10189 Minesweeper (扫雷)
- UVa Problem 10189 Minesweeper (扫雷)
- 典型的找不到mapper映射文件的异常 Invalid bound statement 异常
- Android transaction Fragment时按返回键直接退出,没有返回到上一个Fragment
- HDU 3076 ssworld VS DDD (概率dp)
- JAVA多线程
- 我的python进阶之路,开始
- 扫雷 java 实现 uva 题号10189
- Teradata
- A. Pythagorean Theorem II(血的教训)
- sevlet 表单数据
- tf教程(三):Writing a tf listener
- git 上传代码到远程仓库
- deepin15官方源更细特别慢,换阿里云的记录
- 客户端监听器创建和配置
- 用两个栈实现队列