2015扫雷游戏

题目描述 Description

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

输入描述 Input Description

输入文件第一行 是用一个空格隔开的 两个整数n和m, 分别表示雷区的行数和列数。

接下来 n 行,每行 m 个字符,描述了雷区中的地雷分布情况。字符 ‘*‘ 表示相应格子是地雷格,字符 ‘?‘ 表示相应格子是非地雷格。相邻字符之间无分隔符。

输出描述 Output Description

输出文件包含 n 行,每行 m 个字符,描述整个雷区。用 ‘*‘ 表示地雷格,用周围的地雷个数表示非地雷格。相邻字符之间无分隔符。

样例输入 Sample Input

输入样例 1
3 3
*??
???
?*?

输入样例 2
2 3
?*?
*??

样例输出 Sample Output

输出样例 1
*10
221
1*1

输出样例 2
2*1

*21

数据范围及提示 Data Size & Hint

对于 100%的数据,1≤n≤100,1≤m≤100

题解:

模拟(其实noip模拟很多的)。

又是一道noip普及组的送分题,很简单的。

var n,m,i,j,s,k:longint;

a:array[0..101,0..101]of char;

x:array[1..8]of longint=(-1,-1,-1,0,0,1,1,1);

y:array[1..8]of longint=(-1,0,1,-1,1,-1,0,1);

begin

readln(n,m);

for i:=1 to n do

begin

for j:=1 to m do read(a[i,j]);

readln;

end;

for i:=1 to n do

for j:=1 to m do

begin

s:=0;

for k:=1 to 8 do inc(s,ord(a[i+x[k],j+y[k]]=‘*‘));

if a[i,j]=‘*‘ then write(‘*‘)

else write(s);

if j=m then writeln;

end;

end.

时间: 2024-10-13 19:54:52

2015扫雷游戏的相关文章

Noip(pj)2015 t2 扫雷游戏

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

洛谷P2670 扫雷游戏

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

c++ 控制台版 扫雷游戏

白天看了一天书看累了,晚上瞅见扫雷游戏,就自己琢磨着做一个呗.想了一会,也没看别人怎么做的,大概1个多小时完成了这个简单版本的扫雷游戏,由于没怎么学过c#,界面的事情可能迟几天再做,明天要回家啦,哈哈! 先说思路,其实挺简单的. (1) 随机生成10个雷,标记到二维数组里,然后计算八个方向的雷的总数记录下来,这是预处理阶段. (2)输入要翻开的位置的坐标,如果是数字直接显示,是空白的话,这里采用bfs即宽度优先搜索解决,搜到最外层是数字(仅一层)时结束,具体详见代码. // 扫雷程序 #incl

扫雷游戏

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

基于c++控制台的扫雷游戏

Screen   类用于与控制台交互 gotoxy(short x, short y)跳转到控制台的指定位置 void Init() 获取控制台 句柄 bool changeColor(WORD color)变更颜色 /* 0 = 黑色 8 = 灰色搜索 1 = 蓝色 9 = 淡蓝色 2 = 绿色 A = 淡绿色 3 = 浅绿色 B = 淡浅绿色 4 = 红色 C = 淡红色 5 = 紫色 D = 淡紫色 6 = 黄色 E = 淡黄色 7 = 白色 F = 亮白色 FOREGROUND_BLUE

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

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

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

红包扫雷游戏软件开发

微信红包扫雷游戏开发,微信红包扫雷软件开发,联系微电188-2624-7572. 微信扫雷游戏模式介绍:1.选 择做庄家的粉丝,发红包可设置多少金额,多少红包数,多少红包尾数为雷, 2.发出去红包后其它粉丝可抢,如果抢的红包尾数是庄家设置的尾数那则是中雷,则需把庄家发的红包金额发给庄家.   以上是做庄家发红包,庄家不会亏本的,总会有一个中雷的,每做一次庄平台会送相对应的积分,积分可去换购产品,做庄家稳赚不亏 再说说如果你做为玩家抢红包,首先条件是你余额需有你抢庄家红包对等的钱,打个比方,庄家发

javascript模拟Windows系统下的扫雷游戏

javascript模拟Windows系统下的扫雷游戏. 说好的一周一篇随笔的,这才第三周就延迟交作业了,深深的自责中... 先玩一把 demo 很久以前写的 当时都没写注释的 刚加上了 (尼玛,好多自己都不认识了 ... ) 不足的敌方就是本来想写个游戏排名的统计的,等有空了再加上(好像每次都这么说 然后就等好久好久...) 还有就是没有实现:点击第一个格子不能是雷的功能 刚才在手机端 打开了下这篇文章 排版完全乱了... <style> ul{padding:0;list-style:no