欢迎使用CSDN-markdown编辑器

来源:互联网 发布:米思奇软件下载 编辑:程序博客网 时间:2024/06/09 17:12

背景

你玩儿过扫雷游戏吧?有个操作系统中带了这个小游戏,那个系统叫什么来着?;-)在游戏中要想过关,就必须要在一个 NxM 的区域上找出所有的地雷。游戏过程中,计算机会在地图上显示一些数字从而帮助你确定哪里有地雷。例如,在下面这个有两颗地雷的 4x4 的地图(*表示地雷):
*…
….
.*..
….

根据上面的地图,可以计算出应该提供给游戏者的数字如下所示:
*100
2210
1*10
1110

每个数字表示了该方格周围到底有几个地雷,当然,一个方格周围最多的时候只会有八个。

输入

输入中将包括一系列的地图,每个地图的第一行有两个整数 n 和 m(0

#include<stdio.h>int main(){    int a[103][103]={0},i,j,m,n,k;    char b[103][103];    for(k=1;k<=10;k++)    {   scanf("%d%d",&m,&n);    if(m<=0||n==0) break;        for(i=0;i<103;i++)        {            for(j=0;j<103;j++)            {                a[i][j]=0;            }        }    for(i=0;i<m;i++)    {        scanf("%s",b[i]);    }    for(i=0;i<m;i++)    {        for(j=0;j<n;j++)        {            if(b[i][j]=='*')             {                a[i+1][j]++;                a[i+2][j]++;                a[i][j+1]++;                a[i][j]++;                a[i+2][j+1]++;                a[i][j+2]++;                a[i+1][j+2]++;                a[i+2][j+2]++;            }        }    }        if(k==1) printf("Field #%d:\n",k);         else printf("\nField #%d:\n",k);     for(i=0;i<m;i++)    {        for(j=0;j<n;j++)        {            if(b[i][j]=='*') printf("*");            else printf("%d",a[i+1][j+1]);         }        printf("\n");     }    }}