博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
2021-05-14
阅读量:2086 次
发布时间:2019-04-29

本文共 1591 字,大约阅读时间需要 5 分钟。

5.9-C语言课程-第二次月考

有同学问我搜了一下网上不太能找得到就上传一下,听老师说做的情况不好= =

7-4 扫雷 (100 分)

《扫雷》是一款大众类的益智小游戏,于1992年发行。

游戏目标是在最短的时间内根据点击格子出现的数字找出所有非雷格子,同时避免踩雷。扫雷最初的流行伴随着1992年发布的windows 3.1,之后迅速成为了各种操作系统中必不可少的一款游戏(包括windows的winmine, KDE桌面环境下的KMines,GNOME桌面环境下的gnome-mines等),也出现于一些智能手机平台(比如Android系统的Minesweeper Classic,苹果ios系统的Minesweeper Q)。同时,Minesweeper Clone等功能更为丰富的“专业”扫雷软件也应时而生。

以windows XP自带扫雷为例(其它版本的扫雷游戏与之大同小异)。游戏区包括雷区、地雷计数器(位于左上角,记录剩余地雷数)和计时器(位于右上角,记录游戏时间),定大小的矩形雷区中随机布置一定数量的地雷(初级为9*9个方块10个雷,中级为16*16个方块40个雷,高级为16*30个方块99个雷,自定义级别可以自己设定雷区大小和雷数,但是雷区大小不能超过24*30),玩家需要尽快找出雷区中的所有不是地雷的方块,而不许踩到地雷。

1.png

游戏的基本操作包括左键单击(Left Click)右键单击(Right Click)双击(Chording)三种。其中左键用于打开安全的格子,推进游戏进度;右键用于标记地雷,以辅助判断,或为接下来的双击做准备;双击在一个数字周围的地雷标记完时,相当于对数字周围未打开的方块均进行一次左键单击操作:

左键单击:在判断出不是雷的方块上按下左键,可以打开该方块。如果方块上出现数字,则该数字表示其周围3×3区域中的地雷数(一般为8个格子,对于边块为5个格子,对于角块为3个格子。所以扫雷中最大的数字为8);如果方块上为空(相当于0),则可以递归地打开与空相邻的方块;如果不幸触雷,则游戏结束。如图所示。

2.png

现在请你写一段程序,来计算某个格子上的数字应该是多少。

输入格式:

前9行为9X9的矩阵,代表雷区。雷区中1表示该处为地雷,0表示该处不是雷。第10行为一个整数T(0<T<10),表示测试数据组数。后边跟T组测试数据。每组数据为两个整数,代表要计算的格子的坐标。(1 1 表示左上角,1 2表示1 1右边一格,1 9 表示右上角,其他依次类推。测试数据保证所有输入合法,且所给坐标点一定不是雷)。

输出格式:

为T行,依次对应每行测试数据所指定的格子里应显示的数字(0个时就输出0)。

输入样例:

1 0 1 0 0 0 0 0 00 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 00 0 0 0 0 0 1 0 00 0 0 0 0 0 1 0 00 0 0 0 0 0 0 1 10 0 1 0 0 0 1 0 00 0 1 0 0 0 0 0 00 0 0 0 0 0 0 0 142 26 78 82 4

输出样例:

2321
#include
int main(){ int arr[9][9]; int c[200],r[200]; int i,j,k; int cnt[200]={0}; for(i=0; i<9; i++) { for(j=0; j<9; j++) { scanf("%d",&arr[i][j]); } } int t=0; scanf("%d",&t); for(i=0; i
8||j>8) cnt[k]+=0; else cnt[k]+=arr[i][j]; } } } for(k=0; k

转载地址:http://tssqf.baihongyu.com/

你可能感兴趣的文章