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 }
时间: 2024-11-06 17:18:19

1-8-14:扫雷游戏地雷数计算的相关文章

扫雷游戏

扫雷游戏 发布时间: 2017年8月15日 22:17   最后更新: 2017年8月15日 22:21   时间限制: 1000ms   内存限制: 128M 描述 扫雷游戏是一款十分经典的单机小游戏.在n行m列的雷区中有一些格子含有地雷(称之为地雷格),其他格子不含地雷(称之为非地雷格).玩家翻开一个非地雷格时,该格将会出现一个数字--提示周围格子中有多少个是地雷格.游戏的目标是在不翻出任何地雷格的条件下,找出所有的非地雷格. 现在给出n行m列的雷区中的地雷分布,要求计算出每个非地雷格周围的

洛谷P2670 扫雷游戏

题目描述 扫雷游戏是一款十分经典的单机小游戏.在n行m列的雷区中有一些格子含有地雷(称之为地雷格),其他格子不含地雷(称之为非地雷格).玩家翻开一个非地雷格时,该格将会出现一个数字--提示周围格子中有多少个是地雷格.游戏的目标是在不翻出任何地雷格的条件下,找出所有的非地雷格. 现在给出n行m列的雷区中的地雷分布,要求计算出每个非地雷格周围的地雷格数. 注:一个格子的周围格子包括其上.下.左.右.左上.右上.左下.右下八个方向上与之直接相邻的格子. 输入输出格式 输入格式: 输入文件第一行是用一个

很久木来博客园了,今天献上周末撸的扫雷游戏咯~~

下面先上效果图 上图为最终效果,界面没美化,有点丑将就将就,,,,哈哈 不多说,上代码看注释已经注释好多,扫雷主要难度在于计算但前点击周围你的安全区域,我的想法是:递归循环计算当前点击的上.下.左.右4个格子,如果遇到空白则继续,如果遇到周围有雷则停止. 由中心点往外扩散,在扩散中肯定回遇到已经处理过的格子,则跳过continue.... html代码 <!doctype html> <html> <head> <meta charset="UTF-8&

2015扫雷游戏

题目描述 Description 扫雷游戏是一款十分经典的单机小游戏. 在 n 行 m 列的雷区中有一些格子含有地雷(称之为地雷格) ,其他格子不含地雷(称之为非地雷格) .玩家翻开一个非地雷格时,该格将会出现一个数字——提示周围格子中有多少个是地雷格. 游戏的目标是在不翻出任何地雷格的条件下,找出所有的非地雷格.现在给出n行m列的雷区中的地雷分布, 要求计算出每个非地雷格周围的地雷格数.注:一个格子的周围格子包括其上.下.左.右.左上.右上.左下.右下八个方向上与之直接相邻的格子. 输入描述 

Noip(pj)2015 t2 扫雷游戏

题目描述 扫雷游戏是一款十分经典的单机小游戏.在n行m列的雷区中有一些格子含有地雷(称之为地雷格),其他格子不含地雷(称之为非地雷格).玩家翻开一个非地雷格时,该格将会出现一个数字--提示周围格子中有多少个是地雷格.游戏的目标是在不翻出任何地雷格的条件下,找出所有的非地雷格. 现在给出n行m列的雷区中的地雷分布,要求计算出每个非地雷格周围的地雷格数. 注:一个格子的周围格子包括其上.下.左.右.左上.右上.左下.右下八个方向上与之直接相邻的格子. 输入输出格式 输入格式: 输入文件第一行是用一个

WINAPI实现简易扫雷游戏

1 //扫雷 2 //-1为雷 3 #include <windows.h> 4 #include <windowsx.h> 5 #include <strsafe.h> 6 #include <time.h> 7 //格子区域大小(DIVISIONS * DIVISIONS) 8 #define DIVISIONS 10 9 //地雷数 10 #define MINECOUNT 10 11 12 //消息处理 13 LRESULT CALLBACK Dea

编写扫雷游戏提高 Bash 技巧

那些令人怀念的经典游戏可是提高编程能力的好素材.今天就让我们仔细探索一番,怎么用 Bash 编写一个扫雷程序. 我在编程教学方面不是专家,但当我想更好掌握某一样东西时,会试着找出让自己乐在其中的方法.比方说,当我想在 shell 编程方面更进一步时,我决定用 Bash 编写一个扫雷游戏来加以练习. 如果你是一个有经验的 Bash 程序员,希望在提高技巧的同时乐在其中,那么请跟着我编写一个你的运行在终端中的扫雷游戏.完整代码可以在这个 GitHub 存储库中找到. 做好准备 在我编写任何代码之前,

P2690 扫雷游戏

P2690  扫雷游戏(此为超链接) 扫雷游戏非常经典解压,通过观察多个数字,最终判断雷的位置. (图为扫雷游戏) 本题目要求将非雷格周围的雷用数字写出:需要先定义二维字符数组(我也不知道怎么叫):运用循环将其输入,进行判断,然后输出结果. 代码如下: 1 #include<iostream> 2 #include<cstdio> 3 using namespace std; 4 int main() 5 { 6 int m,n; 7 char a[101][101];//定义二维

C++实现简单的扫雷游戏(控制台版)

C++新手的代码,请各位多包涵. 用C++写的一个简单的控制台版扫雷游戏.玩家通过输入方块的坐标来翻开方块. 只是一个雏形,能够让玩家执行翻开方块的操作并且判断输赢,还未添加标记方块.游戏菜单.记录游戏时间.重新开一局等等的功能. 玩家输入坐标的方式来翻开方块只适用于小型的“雷区”,若“雷区”大了,用坐标会变得很不方便. 代码片段扫雷V1.1 ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28