UVa10189 - Minesweeper

#include <stdio.h>

#define MAX 101

char a[MAX][MAX];

int main()
{
    int m, n;
    int i, j;
    int nCase = 0;

#ifndef ONLINE_JUDGE
    freopen("d:\\UVa\\uva_in.txt", "r", stdin);
#endif

    while ((scanf("%d%d", &n, &m), m + n)) {
        getchar();
        for (i = 0; i < n; i++) {
            for (j = 0; j < m; j++) {
                scanf("%c", &a[i][j]);
            }
            getchar();
        }


        nCase++;
        if (nCase > 1)
            printf("\n");
        printf("Field #%d:\n", nCase);
        for (i = 0; i < n; i++) {
            for (j = 0; j < m; j++) {
                if (a[i][j] != '*') {
                    a[i][j] = (i - 1 >= 0 && j - 1 >= 0 && a[i - 1][j - 1] == '*') +
                              (i - 1 >= 0 && a[i - 1][j] == '*') +
                              (i - 1 >= 0 && j + 1 < m && a[i - 1][j + 1] == '*') +
                              (j - 1 >= 0 && a[i][j - 1] == '*') +
                              (j + 1 < m && a[i][j + 1] == '*') +
                              (i + 1 < n && j - 1 >= 0 && a[i + 1][j - 1] == '*') +
                              (i + 1 < n && a[i + 1][j] == '*') +
                              (i + 1 < n && j + 1 < m && a[i + 1][j + 1] == '*') + '0';
                    printf("%c", a[i][j]);
                } else
                    printf("%c", a[i][j]);
            }
            printf("\n");
        }


    }

    return 0;
}

你可能感兴趣的:(UVa10189 - Minesweeper)