//
// main.cpp
// PC_test
//
// Created by liuyuhan on 17/2/20.
// Copyright (c) 2017年 liuyuhan. All rights reserved.
//
/*
scan every node of the field, when the node is *, let the corresponding place of number metrice plus 1
output the metrice, then
*/
#include <iostream>
#include <string.h>
using namespace std;
void plus_one(int i, int j, int met [][101], int n, int m)
{
if (i >= 0 && i < n && j >= 0 && j < m)
{
if (met[i][j] != -1)
met[i][j] ++;
}
}
int main(int argc, const char * argv[]) {
int n, m; // the row and column number of the field
//char f[101][101]; // the field
char c; // the char of the field
int met[101][101]; // the output metrice
int i, j; // the iterate number of row and column
int qn = 1; // question number
while(cin >> n >> m) {
if (n == 0 || m == 0)
break;
getchar();
memset(met, 0, sizeof(met));
for ( i = 0; i < n; i ++) {
for ( j = 0; j < m; j ++)
{
cin >> c;
if (c == '*')
{
met[i][j] = -1;
plus_one(i - 1, j - 1, met, n, m);
plus_one(i - 1, j + 1, met, n, m);
plus_one(i + 1, j - 1, met, n, m);
plus_one(i + 1, j + 1, met, n, m);
plus_one(i, j - 1, met, n, m);
plus_one(i, j + 1, met, n, m);
plus_one(i - 1, j, met, n, m);
plus_one(i + 1, j, met, n, m);
}
}
getchar();
}
if (qn > 1)
cout << endl;
cout << "Field #" << qn << ":" << endl;
qn ++;
for ( i = 0; i < n; i++)
{
for (j = 0; j < m; j++)
{
if (met[i][j] == -1)
cout << "*";
else
cout << met[i][j];
}
cout << endl;
}
}
return 0;
}
UVA 10189 - Minesweeper(扫雷)
最新推荐文章于 2018-02-01 09:15:55 发布