扫雷,咱就是一扫一大片(C语言完美递归版)

这篇具有很好参考价值的文章主要介绍了扫雷,咱就是一扫一大片(C语言完美递归版)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

扫雷,咱就是一扫一大片(C语言完美递归版)

🤩本文作者:大家好,我是paperjie,感谢你阅读本文,欢迎一建三连哦。

🥰内容专栏:这里是《C语言》专栏,笔者用重金(时间和精力)打造,基础知识一网打尽,希望可以帮到读者们哦。

🥴内容分享:本期会用C语言的知识实现一个扫雷游戏,各位看官姥爷端好小板凳坐好叭

😘:不要998,只要一件三连,三连买不了吃亏,买不了上当(写作不易,求求了💓)。

目录

🍑前言

🍐游戏实现思想

🍏游戏构成

🍎实现思路

🥭代码的具体实现

🍍game.h

 🍌game.c

🍋test.c

🍊 递归的实现

🍉版本一

🍈 版本二

 🍇总结


🍑前言

上期,我们对三子棋游戏进行了详细的介绍和分析,具体的讲述了如何实现三子棋游戏。这期我们来讲解扫雷游戏,还是会用到我们的数组和函数的知识。

扫雷是一款益智小游戏,发行于1992年。

游戏目标是在最短的时间内根据点击格子出现的数字找出所有非雷格子,同时避免踩雷,踩到一个雷即全盘皆输。

扫雷游戏的规则就是,在一块16*30的网格中,点开所有没有雷的网格(雷数默认99颗)。. 所有操作依靠鼠标即可完成。. 左键点开网格,若该网格为雷则失败;若该网格周边八个网格中有雷,则显示雷数,若无雷则直接开启周边网格。

🍐游戏实现思想

🍏游戏构成

这次的扫雷游戏还是和之前的三子棋一样,我们为了代码不会太过冗余,就可以用三个文件test.c, game.c, game.h来封装我们的代码。test.c我们用来测试代码,game.c我们用来是实现游戏需要的函数,game.h我们用来放置头文件和游戏函数的声明。

🍎实现思路

1. 我们需要让游戏可以多次进行

2. 我们需要初始化雷盘,一个放置雷的mine棋盘,一个显示给玩家玩的show棋盘

3. 打印给玩家玩的棋盘

4.将10个雷随机放入mine棋盘中

5.在show棋盘中寻找雷,且需要提醒周边有几个雷,找出所有没有雷的格子则胜利

🥭代码的具体实现

🍍game.h

我们将代码中需要使用库函数的头文件,自定义函数的声明和define的定义放入game.h中扫雷,咱就是一扫一大片(C语言完美递归版)

 🍌game.c

game.cl里面主要就是用4个函数撑起了整个扫雷游戏。

初始化棋盘的函数通过双层for循环将mine棋盘初始化成了0,show函数初始化成了 * 号

打印函数则是每次玩家选择完后将show棋盘显示出来

设置雷的函数则是通过rand函数来生成随机值放入x,y中,再通过x,y作为下标放入mine棋盘中

寻找雷的函数则是通过判断玩家选的是不是1来确定是不是雷扫雷,咱就是一扫一大片(C语言完美递归版)

🍋test.c

 为了好看我们用一个menu函数打印了一个菜单,为了可以多次使用我们用do while 和siwtch来循环,1进入游戏,0退出游戏。扫雷,咱就是一扫一大片(C语言完美递归版)

🍊 递归的实现

如果不用递归的话,游戏就不能出现一片一片的效果了,那排雷的效率太慢了。所以我们用上了递归函数。

🍉版本一

这里线用getmine函数判断附近有没有雷,无雷则将show棋盘里这个坐标变为空格。然后通过for循环来嵌套spread函数,为了不会死递归,这里设置了是'*'才能进行下去。

但是这个代码有一个很大的缺陷,就是不能结束游戏,因为不知道排除了几个没有雷的位子,它不会计数。

扫雷,咱就是一扫一大片(C语言完美递归版)

🍈 版本二

版本二就是为了完美版本一的缺陷,这里通过传址,将计数的地址传进去了,每一次递归计数都会加一次,这样子就可以知道排除了几个位子,可以结束游戏。扫雷,咱就是一扫一大片(C语言完美递归版)


 🍇总结

我们通过函数和数组的知识又一次实现了一个游戏,是不是感到很有成就感呢。这就是我们一路上成长的见证,我们学习后的收获。希望大家可以继续努力下去呀!最后如果你觉得对你有帮助的话,给个一键三连叭!

 文章来源地址https://www.toymoban.com/news/detail-437952.html

到了这里,关于扫雷,咱就是一扫一大片(C语言完美递归版)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 分享个好用的在线翻译器拍照扫一扫方法

    在如今的数字化世界中,智能手机已成为人们生活中必不可少的工具之一。除了通讯和娱乐功能外,手机还可以实现在线拍照翻译。这一新功能的出现让人们的生活更加便捷和高效。   什么是在线拍照翻译? 在线拍照翻译是指使用手机相机拍摄文字图片,然后通过相关应用

    2024年02月13日
    浏览(27)
  • h5端调用手机摄像头实现扫一扫功能

     一、前言         最近有遇到一个需求,在h5浏览器中实现扫码功能,其本质便是打开手机摄像头定时拍照,特此做一个记录。主要技术栈采用的是vue2,使用的开发工具是hbuilderX。         经过测试发现部分浏览器并不支持打开摄像头,测试了果子,华子和米,发现

    2024年03月14日
    浏览(76)
  • 实现微信扫一扫跳转到小程序指定页面

    使用场景:例如我们经常用到的共享充电宝,首先我们需要使用手机上的微信,打开微信扫一扫,扫描共享充电宝上的二维码,当我们扫描二维码后微信会直接跳转到小程序内的某个页面(不一定是首页)。像其他的一些共享设备也是一样的运行模式。那么怎么样才能通过微

    2024年02月02日
    浏览(46)
  • 微信小程序扫一扫左上角按钮返回指定页面

           微信小程序官方文档中有两个参数,success就是正常扫一扫之后要执行的操作,如果进入到扫一扫页面想要点击左上角返回指定页面,可以在fail中书写页面跳转。  

    2024年02月16日
    浏览(46)
  • uniapp实现扫一扫功能,扫码成功后跳转页面

    uniapp官方有提供的相关api实现跳转到web网页(h5)的功能,在开发小程序中,是一项很常见的功能开发。该功能使用到的api uni.scanCode 详细步骤如下: 1.在ui库中找到扫码icon,以uViewUI为例 绑定点击事件@click 2. 在事件clickScan中处理逻辑 3. 在src文件夹中写一个组件,我定义为w

    2024年02月07日
    浏览(31)
  • 如何生成WIFI二维码供手机扫一扫连接WIFI

    用户到线下实体商家消费时有连接商家WiFi需求,传统的方式是商家直接告诉你WiFi密码或者将WiFi密码贴在墙上,你在手机上找到商家对应的WiFi输入密码进行连接(这种方式费时费力,密码复杂点的还容易输入错)。 WIFI 表示这个是一个连接 WiFi 的协议 S 表示后面是 WiFi 的 S

    2024年02月09日
    浏览(37)
  • C语言实现扫雷(包含递归展开)

    目录 一:扫雷游戏的基础逻辑 二:关于扫雷相关的信息存储 三:游戏大体实现逻辑 四:具体实现 (1)初始化 (2)打印 (3)布置雷 (4)查雷 五:全部代码 (1)game.h (2)game.c (3)test.c 六:实际效果演示 扫雷游戏逻辑如下: 1. 游戏开始时,玩家将看到一个方格棋盘,每个方格上有一个数

    2024年02月05日
    浏览(34)
  • 教你简单搞定小程序扫一扫以及生成普通二维码功能

    在生活中时常需要用小程序扫描识别相应的二维码(不包含小程序二维码),通过进入到相应的小程序,然后调起手机的相机进行扫一扫。那么将会更加方便简单的实现相应的功能。生成普通的二维码用weapp-qrcode.js来实现,识别二维码用wx.scanCode()或camera来实现,下面下面将

    2024年02月07日
    浏览(27)
  • uniapp微信小程序实现调用摄像头扫一扫的功能

    在小程序项目中,经常会用到扫码的功能,比如收集表单信息、或者内部自定义的二维码等。下面为大家介绍使用uniapp开发微信小程序时如何调用摄像头(注意:调用摄像头功能在微信开发者工具的模拟器中无法调用,需要真机模拟) 上代码: 在需要扫码的地方调用该方法

    2024年01月20日
    浏览(47)
  • VUE html5-qrcode H5扫一扫功能

    官方文档  html5-qrcode 安装   npm i html5-qrcode 1、新建一个组件  2、引入 3、获取摄像权限在created调用 4、获取扫码内容 5、必须在销毁页面前关闭扫码功能否则会报错   could not start video source 6、在扫码页面引用组件 组件完整代码 引用组件页面

    2024年02月16日
    浏览(37)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包