c语言扫雷(自动展开,计时) 您所在的位置:网站首页 扫雷用时 c语言扫雷(自动展开,计时)

c语言扫雷(自动展开,计时)

2024-03-03 01:35| 来源: 网络整理| 查看: 265

目录 整体思路一、关键解析棋盘分析:雷的布置递归展开计时功能 二、具体实现1.初始化棋盘2.打印棋盘设置雷开始扫雷计算雷数递归展开 完整代码game.hgame.ctest.c 总结

整体思路

1.字符数组存放棋盘,初始化并打印 2.存储雷的信息 3.获取坐标进行排雷 4.统计当前坐标周围雷的数量,若8个单元内都没雷递归展开 5.统计未展开的坐标与雷数是否相同,判断输赢。

一、关键解析 棋盘分析:

我们定义两个数组,一个存放雷的信息,一个用于用户排雷。 因为涉及到统计周围雷的数量,处于边缘的单元,可能会造成溢出,所以我们定义的数组比实际的大一圈。(如下图,实际使用9x9,定义时使用11x11)

打印效果如下

雷的布置

进入while循环,每成功布置一个雷,count–,直到布置完成。

递归展开

展开需要满足两个条件: 1.坐标不是雷 2.该坐标周围也没雷 把该坐标 改成’ ’后,再递归调用判断周围八个坐标。 (具体效果,如下,周围没雷置空格)

计时功能

1.开始时定义dauble start,finish;进入game()时,获取开始时间start=clock(); 判定出结果后获取结束时间finish = clock();,调用库函数计算时间 (finish - start) / CLOCKS_PER_SEC。(具体如下)

二、具体实现 1.初始化棋盘

代码如下:

void InitBoard(char board[Rows][Cols], int r, int c,char set) { for (int i = 0; i


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有