描述

扫雷游戏是一款十分经典的单击小游戏。
在n行m列的雷区中有一些格子含有地雷(称之为地雷格),其他格子不含地雷(称之为非地雷格)。
玩家翻开一个非地雷格时,该格将会出现一个数字——提示周围格子中有多少个是地雷格。
游戏的目标是在不翻出任何地雷格的条件下,找出所有的非地雷格。

现在给出n行m列的雷区中的地雷分布,要求计算出每个非地雷格周围的地雷格数。

注:一个格子的周围格子包括其上、下、左、右、左上、左下、右上、右下八个方向上与之直接相邻的格子。

格式

输入格式

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

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

输出格式

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

样例1

样例输入1

3 3
*??
???
?*?

样例输出1

*10
221
1*1

样例2

样例输入2

2 3
?*?
*??

样例输出2

2*1
*21

限制

对于所有的数据,1≤n≤100, 1≤m≤100。

来源

NOIP 2015 普及组 第二题
数据由AHdoc生成

问题链接: Vijos P1975 扫雷游戏

问题分析

扫雷游戏是人们熟知的一个计算机游戏,通过这个程序,可以了解其局部的计算是如何实现的。

这是一个简单的计算问题,对于一个位置,直接计算其周围的地雷数量即可。

定义二维数组用于存储扫雷游戏的棋盘时,周围多出一圈,可以省去数组下标的越界判定。

程序说明

函数memset()用于给大量的存储空间设置初始值是方便快捷的。

数组around[]存储周围元素的相对下标,使得无序变有序,可以用循环来处理。

这个是程序是之前写的,直接拿过来用就AC了,参见参考链接。

题记

游戏无所不在。

参考链接:CCF NOI1054 扫雷游戏

AC的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;  }  

Vijos P1975 扫雷游戏【谜题】相关推荐

  1. JSK-16501 扫雷游戏【谜题】

    扫雷游戏 扫雷游戏是一款十分经典的单机小游戏.在 n 行 m 列的雷区中有一些格子含有地雷(称之为地雷格),其他格子不含地雷(称之为非地雷格).玩家翻开一个非地雷格时,该格将会出现一个数字--提示周围 ...

  2. 【C语言基础学习---扫雷游戏】(包含普通版+递归炼狱版)

    游戏背景介绍 扫雷游戏是一款大众类的益智小游戏,于1992年发行.游戏目标是在最短的时间内根据点击格子出现的数字找出所有非雷格子,同时避免踩雷,踩到一个雷即全盘皆输. 扫雷在科技历史上也扮演了相似的角 ...

  3. 小心踩雷!手把手教你制作扫雷游戏简单版本

    扫雷游戏----C语言必写游戏之一 扫雷游戏 背景 起源与玩法 基本实现思路 涉及语言的主要内容 具体实现步骤 1.基本框架 2.菜单页面的实现 3.初始化棋盘 4.在屏幕中显示棋盘 5.布置好棋盘中 ...

  4. c语言游戏 人物素材,代码女神编写的C语言版本扫雷游戏,场面失控,速来围观...

    前言: <扫雷>是一款大众类的益智小游戏,于1992年发行.游戏目标是在最短的时间内根据点击格子出现的数字找出所有非雷格子,同时避免踩雷,踩到一个雷即全盘皆输.扫雷在科技历史上也扮演了相似 ...

  5. python扫雷 广度优先_Leetcode之广度优先搜索(BFS)专题-529. 扫雷游戏(Minesweeper)...

    Leetcode之广度优先搜索(BFS)专题-529. 扫雷游戏(Minesweeper) BFS入门详解:Leetcode之广度优先搜索(BFS)专题-429. N叉树的层序遍历(N-ary Tre ...

  6. 一步一步实现扫雷游戏(C语言实现)(三)

    使用WIN32API连接窗口 此项目相关博文链接 一步一步实现扫雷游戏(C语言实现)(一) 一步一步实现扫雷游戏(C语言实现)(二) 一步一步实现扫雷游戏(C语言实现)(三) 一步一步实现扫雷游戏(C ...

  7. python扫雷游戏_python实现扫雷小游戏

    前面我们用python实现了贪吃蛇.坦克大战.飞船大战.五子棋等游戏 今天我们用python来实现一下扫雷游戏 本游戏代码量和源文件较多 可以从我的GitHub地址中获取 构建地雷区 import r ...

  8. 使用 python 的单人AI 扫雷游戏

    运行扫雷 1.确保安装了Python 3.6+. 2.安装Pygame. 3.克隆这个存储库: 设置 minesweeper.py ⚓ 扫雷游戏表示 class Minesweeper():def _ ...

  9. python3扫雷代码_GitHub - pantaduce/minesweeper: Python代码编写的扫雷游戏

    Minesweeper(扫雷) 这是一个由Python编写的扫雷游戏,基于tkinter/Tkinter开发,支持python2和python3. 功能 概述 基本功能:左键扫雷,右键标记 记录游戏步 ...

最新文章

  1. 优惠劵系统库存设计浅谈
  2. Java 理论与实践: JDK 5.0 中更灵活、更具可伸缩性的锁定机制--转载
  3. 贩卖知识的“成功学”,大师“卖拐”几时休?
  4. PHP的strlen与mb_strlen
  5. trident State应用指南
  6. 使用Apache Camel通过soap添加WS-Security
  7. 五个案例让你明白GCD死锁
  8. ruby 疑难点之—— attr_accessor attr_reader attr_writer
  9. python连接postgis_python连接postgres方法
  10. html5液体效果,HTML5/CSS3/SVG实现的液体掉落(滑落)动画
  11. 初级程序员面试不靠谱指南(二)
  12. Maven:Maven基础
  13. Gartner报告:多数CIO还未对数字化做好准备
  14. 信捷XC系列PLC-编程
  15. python如何进行人口预测_如何使用matlab建立人口预测模型
  16. 资源利用率提高67%,腾讯实时风控平台云原生容器化之路
  17. 如何安装 Simscape Multibody Link
  18. 杨洋江疏影封面照合体,《全职》诠释衣品即人品
  19. BUUCTF中的reverse2
  20. nginx基础:nginx访问限制

热门文章

  1. Web请求响应编码问题详解
  2. golang操作mongodb的驱动mongo-go-driver的事务支持和访问控制(mongodb4.0)
  3. JS中prototype、__proto__以及原型链
  4. 2.窗口大小改变和侧边栏收缩的时候,echarts图表的自适应
  5. 快速确定HIve表中数据是否重复
  6. HUE与YARN的集成
  7. 台式计算机日历表,Windows台式电脑怎么设置添加桌面日历透明便签?
  8. python面向对象遇见问题
  9. OpenCV精进之路(三):图像处理——形态学滤波(膨胀、腐蚀、开闭运算)
  10. newgrp - 登录到新的用户组中