扫雷游戏(C语言)(超详细!新手小白入!)

2024-06-08 1616阅读

扫雷游戏详细过程

  • 一.前言
    • 二.游戏的分析和设计
    • 1.厘清整体思路
    • 2.棋盘的构建与思路
    • 3.初始化及打印棋盘
    • 4.布置雷
    • 5.排查雷
      • 三.扫雷游戏的扩展

        一.前言

        游戏介绍

        这是一款经典的扫雷游戏,玩家可以任意点击一个小方框,若不是雷,则会显示周边有几个雷,并把雷的个数显示出来,若是雷,则被炸死,游戏结束。目前我们可以用已知的C语言知识来编写这样一个小游戏。

        扫雷游戏(C语言)(超详细!新手小白入!)

        二.游戏的分析和设计

        1.厘清整体思路

        (1)首先我们要明确使用到的C语言知识,不难想象我们可以用二维数组建立棋盘,再在此基础上实现雷的布置,雷的排查等,用到的C语言知识会有函数的调用以及声明、随机数的生成、各类循环的用法等等

        (2)为了方便我们写程序,我们可以使用多文件的方法,在test.c文件中实现代码的测试,在game.h和game.c文件中进行扫雷功能的实现,如下:

        扫雷游戏(C语言)(超详细!新手小白入!)

        2.棋盘的构建与思路

        (1)在构建棋盘之前,我们要进行一个游戏的开始,也就是制作一个菜单(制作菜单很容易想到switch语句),如下:

        扫雷游戏(C语言)(超详细!新手小白入!)

        扫雷游戏(C语言)(超详细!新手小白入!)

        扫雷游戏(C语言)(超详细!新手小白入!)

        (2)使用二维数组建立棋盘,我们要构建一个9乘9的棋盘,进行雷的布置和雷的排查,如果一个位置是雷我们就放上1,不是雷就存放0:扫雷游戏(C语言)(超详细!新手小白入!)

        (3)A如上图所示,这样我们就想到一个问题,如果我们要计算一个非雷处周围有几个雷,我们就需要计算它的一周相加是几,如果在中间我们可以计算它一周的值,但如果是边缘呢,这样我们就想到将棋盘扩大一圈,但是外围的一圈我们不放雷,也就不影响最终结果,还可以方便计算,但是我们打印出来的可以只是9乘9的棋盘;B我们不妨再想一些问题,我们将一个棋盘布置好雷之后,我们要怎样知道被排查后的雷的信息呢?如果放在一个棋盘中那么整个信息就会有点混乱,而且不方便打印,如此一来,我们可以想到,使用两个棋盘来打印,一个用来存放雷,一个用来存放排查出的雷的信息 ;C ROW代表行,COL代表列,ROW和COL就代表布置雷的范围,ROWS和COLS代表扩大范围的棋盘,这样我们的棋盘最初始的形式就形成了。为了后期方便使用,我们可以在game.h头文件中定义这些变量,并且可以声明后面使用的函数:

        下面展示一些 内联代码片。

         
        
        char mine[ROWS][COLS]={0};//存放雷的信息
        char show[ROWS][COLS]={0};//存放排查出的雷的信息
        

        扫雷游戏(C语言)(超详细!新手小白入!)

        3.初始化及打印棋盘

        如图所示:

        扫雷游戏(C语言)(超详细!新手小白入!)

        第一个是mine数组,布置雷;第二个是show数组,存放被排查出的雷的信息,同时为了保持神秘,show数组最开始用字符‘*’初始化,为了可以使用同一套函数,将mine数组初始化为‘0’和‘1’ 下面展示一些 内联代码片。

         
        
        IintBoard(mine, ROWS, COLS,'0');//初始化棋盘
        IintBoard(show, ROWS, COLS,'*');
        DisplayBoard(show,ROW,COL);//打印棋盘,因为我们只需要展示9*9的棋盘,打印ROW COL即可
        DisplayBoard(mine,ROW,COL);
        

        我们在game.c的文件中实现函数,在test.c文件中调用,在game.h的文件中进行声明,下面给出我们头文件中的声明,我们要注意的是,在上面的代码片中我们在初始化棋盘时候传入的参数是ROWS和COLS,但是打印棋盘的时候传入的是ROW和COL,这一点我们要明确清楚。另外为了方便我们的行和列,我们在打印棋盘时候也可以将行和列直接打印出来,下面是我们利用循环的知识打印出具体的初始化和棋盘的代码:扫雷游戏(C语言)(超详细!新手小白入!)

        扫雷游戏(C语言)(超详细!新手小白入!)

        初始化打印如下:

        扫雷游戏(C语言)(超详细!新手小白入!)

        4.布置雷

        首先我们要明确一点,我们是在mine棋盘中布置雷,在show棋盘中将雷的信息展示出来,下面我们就要思考如何去布置10个雷进去,同时要注意的是我们布置雷要在9乘9的棋盘中布置,所以我们传入的参数应该是ROW和COL,不难想象我们可以利用随机数的方法,我们要注意的是随机数的用法和它所需要的头文件(要生成1到100的随机数:rand()%100+1,%100的余数是0到99,在加1就是0到100):扫雷游戏(C语言)(超详细!新手小白入!)

        扫雷游戏(C语言)(超详细!新手小白入!)

        扫雷游戏(C语言)(超详细!新手小白入!)

        5.排查雷

        在雷都布置好的基础之上,我们就要开始排查雷,我们要如何排查雷,我们不妨认真思考一下,我们很容易想到用坐标的方式表示我们要排查的雷,那么我们要如何计算我们排查的位置周围有几个雷呢,给大家展示一张图说明清楚以及代码展示:扫雷游戏(C语言)(超详细!新手小白入!)

        扫雷游戏(C语言)(超详细!新手小白入!)

        扫雷游戏(C语言)(超详细!新手小白入!)

        三.扫雷游戏的扩展

        我们在已有的C语言基础上可以在尝试更高难度的扫雷游戏,大家可以自己尝试挑战自己!

        • 是否可以选择游戏难度

        简单99棋盘,10个雷

        中等1616棋盘,40个雷

        困难30*16棋盘,99个雷

        • 如果排查位置不是雷,周围也没有雷,可以展开周围的⼀⽚

        • 是否可以标记雷

        • 是否可以加上排雷的时间显示

        在线扫雷游戏:http://www.minesweeper.cn/

VPS购买请点击我

免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理! 图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库和百度,360,搜狗等多加搜索引擎自动关键词搜索配图,如有侵权的图片,请第一时间联系我们,邮箱:ciyunidc@ciyunshuju.com。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!

目录[+]