CCF NOI1054 扫雷游戏
問題鏈接:CCF NOI1054 掃雷游戲。
時間限制: 1000 ms ?空間限制: 262144 KB
題目描述?
? 掃雷游戲是一款十分經典的單機小游戲。它的精髓在于,通過已翻開格子所提示的周圍格地雷數,來判斷未翻開格子里是否是地雷。
? 現在給出n行m列的雷區中的地雷分布,要求計算出每個非地雷格的周圍格地雷數。
? 注:每個格子周圍格有八個:上、下、左、右、左上、右上、左下、右下。
輸入
? 第一行包含兩個整數n和m,分別表示雷區的行數和列數。1 <= n <= 100, 1 <= m <= 100。
? 接下來n行,每行m個字符,‘*’表示相應格子中是地雷,‘?’表示相應格子中無地雷。字符之間無任何分隔符。
輸出
? n行,每行m個字符,描述整個雷區。若相應格中是地雷,則用‘*’表示,否則用相應的周圍格地雷數表示。字符之間無任何分隔符。
樣例輸入
3 3
*??
???
?*?
樣例輸出
*10
221
1*1
? 1 <= n <= 100, 1 <= m <= 100。
問題分析
? 掃雷游戲是人們熟知的一個計算機游戲,通過這個程序,可以了解其局部的計算是如何實現的。
? 這是一個簡單的計算問題,對于一個位置,直接計算其周圍的地雷數量即可。
程序說明
? 定義二維數組用于存儲掃雷游戲的棋盤時,周圍多出一圈,可以省去數組下標的越界判定。
? 這里給出兩種計算地雷數量的方法,分別編寫程序。
參考鏈接:(略)。
100分通過的C語言程序之一:
#include <stdio.h> #include <string.h>struct _around {int drow;int dcol; } around[] = {{-1, -1}, {-1, 0}, {-1, 1}, {0, 1}, {1, 1}, {1, 0}, {1, -1}, {0, -1}}; #define AN 8#define N 100 char a[N+2][N+2];int main(void) {int n, m, i, j, k;memset(a, 0, sizeof(a));scanf("%d%d", &n, &m);for(i=1; i<=n; i++)scanf("%s", a[i]+1);for(i=1; i<=n; i++) {for(j=1; j<=m; j++) {int count = 0;if(a[i][j] == '*')printf("%c", a[i][j]);else {for(k=0; k<AN; k++)if(a[i + around[k].drow][j + around[k].dcol] == '*')count++;printf("%d", count);}}printf("\n");}return 0; }
100分通過的C語言程序之二:
#include <stdio.h>struct _around {int drow;int dcol; } around[] = {{-1, -1}, {-1, 0}, {-1, 1}, {0, 1}, {1, 1}, {1, 0}, {1, -1}, {0, -1}}; #define AN 8#define N 100char a[N+2][N+2];int main(void) {int n, m, i, j, k;scanf("%d%d", &n, &m);for(i=1; i<=n; i++)scanf("%s", a[i]+1);for(i=1; i<=n; i++)for(j=1; j<=m; j++)if(a[i][j] != '*')a[i][j] = 0;for(i=1; i<=n; i++)for(j=1; j<=m; j++)if(a[i][j] == '*')for(k=0; k<AN; k++)if(a[i + around[k].drow][j + around[k].dcol] != '*')a[i + around[k].drow][j + around[k].dcol]++;for(i=1; i<=n; i++) {for(j=1; j<=m; j++)if(a[i][j] == '*')printf("%c", a[i][j]);elseprintf("%d", a[i][j]);printf("\n");}return 0; }/* 4 4 ?**? *?** ???? ??*? 2**3 *4** 1333 01*1 */
轉載于:https://www.cnblogs.com/tigerisland/p/7563897.html
總結
以上是生活随笔為你收集整理的CCF NOI1054 扫雷游戏的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: angular js一factory,s
- 下一篇: Web API 之SelfHost与Ow