1-8-14:掃雷游戲地雷數計算


描述

掃雷游戲是一款十分經典的單機小游戲。它的精髓在於,通過已翻開格子所提示的周圍格地雷數,來判斷未翻開格子里是否是地雷。

現在給出n行m列的雷區中的地雷分布,要求計算出每個非地雷格的周圍格地雷數。

注:每個格子周圍格有八個:上、下、左、右、左上、右上、左下、右下。

輸入第一行包含兩個整數n和m,分別表示雷區的行數和列數。1 <= n <= 100, 1 <= m <= 100。
接下來n行,每行m個字符,‘*’表示相應格子中是地雷,‘?’表示相應格子中無地雷。字符之間無任何分隔符。輸出n行,每行m個字符,描述整個雷區。若相應格中是地雷,則用‘*’表示,否則用相應的周圍格地雷數表示。字符之間無任何分隔符。樣例輸入

3 3
*??
???
?*?

樣例輸出

*10
221
1*1
 1 #include<stdio.h>
 2 int s[101][101]={0};
 3 char a[101][101],b;
 4 int main()
 5 {
 6     int n,m,i,j,i1,i2,j1,j2;
 7     scanf("%d%d",&n,&m);
 8     scanf("%c",&b);
 9     for(i=1;i<=n;i++)
10     {
11         for(j=1;j<=m;j++)
12         {
13             scanf("%c",&a[i][j]);
14             if(a[i][j]=='*')
15             {
16                 i1=i-1;i2=i+1;j1=j-1;j2=j+1;
17                 s[i1][j1]++;
18                 s[i1][j2]++;
19                 s[i1][j]++;
20                 s[i2][j1]++;
21                 s[i2][j2]++;
22                 s[i2][j]++;
23                 s[i][j1]++;
24                 s[i][j2]++;
25             }
26         }
27         scanf("%c",&b);
28     }
29     for(i=1;i<=n;i++)
30     {
31         for(j=1;j<=m;j++)
32         {
33             if(a[i][j]=='*')
34                 printf("%c",a[i][j]);
35             else
36                 printf("%d",s[i][j]);
37         }
38         printf("\n");
39     }
40     return 0;
41 }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM