扫雷小程序(C语言)

扫雷小程序(C语言)

       大家还记得学校上机课无聊时玩过的扫雷吗?扫雷是我们这些90年代的青年们玩过最经典的小游戏了吧?大家有木有常对他的工作原理疑惑,那么今天我们来用我们学过的C语言实现一个简单的扫雷小游戏。

       还记的扫雷的规则吗?

       当你第一次点击时,永远不会踩到雷(小伙伴们有木有发现呢)

       以后点击的时候,如果以点击位置为中心的3*3的格子里有雷,则显示3*3格子里的雷数;

       雷盘(实在想不出点击的n*n的格子叫啥,就叫雷盘吧 /手动滑稽 )

       若没有雷则会递归的帮你把周围的也全部展开,如果设置的雷比较少而雷盘比较大时,是不是差不多会给你把大部分的都展开呢?

       那么,如何实现呢?

1、雷盘的设计(分析)

       比如我们要做一个雷盘大小为10 * 10的一个扫雷游戏,理论上我们需要一个10 * 10 的数组,那么问题来了,那么边缘的雷数怎么算呢?所以我们需要一个比雷盘大小要大2的一个数组,比如10*10的扫雷就需要一个12*12的数组;这样一来,本来数组列是从 0~11 但是我们只用 1~10,这样用户在输入的时候好输入,我们在计算边缘雷数的时候也非常好判断,一举两得。大致的结构是这样的。

       但是就仅仅一个雷盘够吗?答案是当然不够的,总不可能把雷盘直接显示给用户,这里我们还需要一个显示数组,大小和雷盘数组一样大。

       我们先定义出棋盘大小和雷的个数

  #define ROW 12
  #define COL 12
  #define MINE_NUM 20

2、主函数的实现

       直接让主函数调用实现扫雷的函数 Mine();

 #include "mine.h"   
  ​
  void menu(){
      printf("******************************\n");
      printf("*****      1、扫雷       *****\n");
      printf("*****      2、退出       *****\n");
      printf("******************************\n");
      printf("请输入选项<1/2>:");
  }
  ​
  int main(){
      int select = 0;
      menu();
      scanf("%d", &select);
      switch (select){
          case 1: Mine();
              break;
          case 2:exit(0);
              break;
          default:
              break;
      }
      system("pause");
      return 0;
  • 0
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值