c++ 지뢰찾기
#include <algorithm>
#include <vector>
#include <string>
#include <iostream>
using namespace std;
int main(){
int n, m;
int i, j, ii, jj;
int f(1);
// f=1;
while(cin >> n >> m){
//행렬의 크기를 받아 들인다.
//n x m 행렬
if (n==0) break;
if(f>1) cout << endl;
cout << "Field #" << f++ << ":" << endl;
//f를 사용해서 필드를 1 ,2 출력한다.
vector mine(n);
//지뢰
vector<vector> board;
//주변에 잇는 지뢰
for (i =0; i<n; i++){
cin >> mine[i];
board.push_back(vector(m,0));
//n열의 m행의 값에 m,0으로 채워 준다.
}
//자료형 준비 끝.
for (i =0; i<n; i++){
for (j =0; j<m; j++){
if(mine[i][j] != '*') continue;
for (ii = max(0, i-1); ii<=min(n-1, i+1); ii++){
for(jj = max(0, j-1); jj<=min(n-1, i+1); jj++){
//경계값을 벗어나지 않기 위한 것
board[ii][jj]++;
}
}
}
}
for (i =0; i<n; i++){
for(j=0; j<m; j++){
if (mine[i][j] == '*') cout << "*";
else cout << board[i][j];
}
cout << endl;
}
return 0;
}
}