c语言扫雷(自动展开,计时) | 您所在的位置:网站首页 › 扫雷用时 › c语言扫雷(自动展开,计时) |
目录
整体思路一、关键解析棋盘分析:雷的布置递归展开计时功能
二、具体实现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。(具体如下) 代码如下: void InitBoard(char board[Rows][Cols], int r, int c,char set) { for (int i = 0; i |
CopyRight 2018-2019 实验室设备网 版权所有 |