题目 : http://acm.tju.edu.cn/toj/showp1330.html
之前做过一道关于扫雷的,题目还可以,这一道就太水了......
#include "cstdio"
using namespace std;
int n;
char g1[11][11], g2[11][11];
int dir[8][2] = {1, 0, -1, 0, 0, 1, 0, -1, 1, 1, 1, -1, -1, 1, -1, -1};
int main() {
bool flag = true;
scanf("%d", &n);
for (int i = 0; i < n; i++)
scanf("%s", g1[i]);
for (int i = 0; i < n; i++)
scanf("%s", g2[i]);
for (int i = 0; i < n; i++)
for (int j = 0; j < n; j++)
if (g1[i][j] == '*' && g2[i][j] == 'x') flag = false;
if (!flag) {
for (int i = 0; i < n; i++)
for (int j = 0; j < n; j++)
if (g1[i][j] == '*') g2[i][j] = '*';
}
for(int i = 0; i < n; i++)
for(int j = 0; j < n; j++)
if(g2[i][j] == 'x') {
int cont = 0;
for(int k = 0; k < 8; k++) {
int x = i + dir[k][0];
int y = j + dir[k][1];
if(x >= 0 && x < n && y >= 0 && y < n && g1[x][y] == '*') cont++;
}
g2[i][j] = '0' + cont;
}
for (int i = 0; i < n; i++) printf("%s\n", g2[i]);
}