The Java Program: E_minesweeper/mines_chinmay.java

  1 import java.util.*;
  2 import java.io.*;
  3 public class mines_chinmay {
  4         public static void main(String[] args) throws Exception{
  5                 int N, M;
  6                 int d[][] = {{0,1},{1,1},{1,0},{1,-1},{0,-1},{-1,-1},{-1,0},{-1,1}};
  7                 Scanner in = new Scanner(new File("mines.in"));
  8                 PrintStream out = new PrintStream(new File("mines.out"));
  9                 while((M = in.nextInt()) > 0)
 10                 {
 11                         
 12                         N = in.nextInt();
 13                         boolean mine[][] = new boolean[M][N];
 14                         for(int j = 0; j < M; j++)
 15                                 {
 16                                 
 17                                         String temp = in.next();
 18                                         for(int i = 0; i < N; i++)
 19                                                 mine[j][i] = temp.charAt(i)=='*'?true:false;
 20                                         
 21                                 }
 22                         
 23                         int table[][] = new int[M][N];
 24                         for(int i = 0; i < M; i++) Arrays.fill(table[i], 0);
 25                         for(int i = 0; i < M; i++)
 26                                 for(int j = 0; j < N; j++)
 27                                         if(mine[i][j])
 28                                 {
 29                                         for(int k = 0; k < 8; k++)
 30                                         {
 31                                                 if(i+d[k][0] >= 0 && i+d[k][0] < M && j+d[k][1] >= 0 && j+d[k][1] < N)
 32                                                         table[i+d[k][0]][j+d[k][1]]++;
 33                                         }
 34                                 }
 35                         
 36                         for(int i = 0; i < M; i++)
 37                         {
 38                                 for(int j = 0; j < N; j++)
 39                                         out.print(mine[i][j]?"*":(""+table[i][j]));
 40                                 out.println();
 41                         }
 42                 }
 43         }
 44 
 45 }