C语言扫雷代码中,以下统计雷区代码看不懂,求解释啊

for(Row=0;Row<N;Row++)for(Col=0;Col<N;Col++){if(mine[Row][Col]==9){if(Row>0&&mine[Row... for(Row=0;Row<N;Row++)
for(Col=0;Col<N;Col++)
{
if(mine[Row][Col]==9)
{
if(Row>0&&mine[Row-1][Col]!=9)
mine[Row-1][Col]++;
if(Row<N-1&&mine[Row+1][Col]!=9)
mine[Row+1][Col]++;
if(Col>0&&mine[Row][Col-1]!=9)
mine[Row][Col-1]++;
if(Col<N-1&&mine[Row][Col+1]!=9)
mine[Row][Col+1]++;
if(Row>0&&Col>0&&mine[Row-1][Col-1]!=9)
mine[Row-1][Col-1]++;
if(Row>0&&Col<N-1&&mine[Row-1][Col+1]!=9)
mine[Row-1][Col+1]++;
if(Row<N-1&&Col>0&&mine[Row+1][Col-1]!=9)
mine[Row+1][Col-1]++;
if(Row<N-1&&Col<N-1&&mine[Row+1][Col+1]!=9)
mine[Row+1][Col+1]++;
}

代码功能是/*计算无地雷格子的周围的地雷数*/

前面两个for是遍历所有格子,然后if(mine[Row][Col]==9)是选出有雷的格子,这我就看不懂了。应该是选出无雷的格子,然后对周围进行统计的啊。

重点是后面那个if(Row>0&&mine[Row-1][Col]!=9) 这个条件判断看不懂,特别是与运算!!
展开
 我来答
cjj796
2013-11-23 · TA获得超过8702个赞
知道大有可为答主
回答量:1.3万
采纳率:68%
帮助的人:3372万
展开全部
你好!
mine 应该是一个递归函数,你的代码不全;
这段代码应该就是,如果点击了一个不是雷的点;
那么程序会采用递归的形式向四周8个方向进行判断;
如果碰到地雷,这个方向的判断就停止,其他的7个方向继续;
一直递归循环到 8个方向都停止的时候,递归结束!
百度网友8fbee656e8
2013-11-23 · TA获得超过1328个赞
知道小有建树答主
回答量:578
采纳率:68%
帮助的人:184万
展开全部
都行。你可以用有雷的格子告诉周围的格子说,我是雷,你们不是雷的(空格子)就自己加1.
你也可以用空格子自己找周围,看看有没有雷,有的话,这个空格子相应增加雷数。看你喜欢。
这些与预算,是边界的判定。存储雷和空格子的信息是在一个二维数组里面,你总不可能跑出这个数组,和数组外的值比较吧。不明白继续追问
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式