C语言实现简易版扫雷

news2024/9/27 5:44:16

扫雷对于很多人是一种回忆,那么我们如何用C语言程序去实现它呢?

这个是在浏览器找到的一个扫雷游戏

我用程序实现它利用到字符数组,将一个类似棋盘的东西打印出来,让人们输入坐标,然后进行扫雷。

为了程序的简易我一共设计了两个字符数组:

字符数组一:里面存放字符1与0,1代表是地雷

字符数组二:里面全部存放*,打印出来让我们扫雷

当然了两个字符数组大小相等,我们判断是否扫到雷,利用字符数组一。

字符数组数组二打印出来,当判断后,我们统计判断坐标周围有多少个雷,雷的个数存放到字符数组二对应的判断坐标。

程序的逻辑很清晰明了,同上次的三子棋游戏一样,我们一共创建三个文件

tese.c文件main函数部分

game.h函数声明部分

game.c游戏的实现

下面我们来结合代码来分析吧

框架部分

tese.c

main函数部分很简单易懂,我就不多做介绍了

通过main函数我们输入1,转跳到game()函数中

我们一步一步来,首先创建两个二维字符数组,然后初始化

布置好了棋盘,我们就到了防雷环节,我们要确保雷的随机性,通过我们熟悉的rand产生随机数

程序怎么实现呢

我们通过宏定义EASY来操作雷的个数,这样可以增加程序可操作性。

接下来我们创建一个打印函数更好的打印我们下面的字符数组

这个就是我们看到的扫雷页面了

雷放好了,页面也打印出来,我们就开始排雷了

我们要排雷的次数等于格子数-雷的个数

以上是分析,我们看到总体代码就很好理解了

不废话,上代码

test.c

game.h

game.c

将三个文件创建在同一个项目内,我们就可以玩我们的扫雷游戏啦

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/129760.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

论文阅读-社交媒体上的谣言检测:数据集、方法和机会

论文链接:https://aclanthology.org/D19-5008.pdf 目录 摘要 引言 1.1谣言检测 1.2 问题陈述 1.3 用户立场 2 数据集和评估指标 2.1 数据集 2.2 评价指标 3 特点和方法 3.1使用内容信息的方法 3.2 利用用户信息的方法 3.3 基于传播路径和网络的方法 3.4…

volatile 禁止指令重排序

计算机在执行程序时,为了提高性能,编译器和处理器常常会对指令重排,一般分为以下三种: 源代码 -> 编译器优化的重排 -> 指令并行的重排 -> 内存系统的重排 -> 最终执行指令单线程环境里面确保最终执行结果和代码顺序的…

AWS人工智能主题学习月:深度学习入门笔记

目录 一、深度学习入门课程的学习重点📕 二、简单介绍一下深度学习和神经网络💡 1.深度学习 2.神经网络 3.深度学习储备知识拓展 三、深度学习生产生活实际案例🚗 四、深度学习的框架介绍🌳 总结 深度学习是机器学习中的一…

Arch/Manjaro安装搜狗输入法

装好系统以后,没有输入法,只能打英文的感觉很难受,现在我们来看看如何给Arch系列的系统安装搜狗输入法。 加入Skype Linux群来这里一起解决问题吧!腾讯不支持Linux,让我们一起抛弃微信~ Join conversationhttps://join…

⌈ 2022杀青 ⌋ 一个普通人的年终总结,这一年我获得了更多的新鲜体验 | 普通而平凡的一年 | 向前走,走到光里 | 2023你好

💛年度总结💛 时间转瞬便是年末,在此写下告别 成长是一场踏实的幻灭 有哭有笑有酸有甜,失去与获得也同在 即使生活再忙,也不要忘记那些美好治愈我们的瞬间 起起伏伏的日子,这依然是很长很好的一年&…

python 爬虫 使用selenium 控制浏览器 进行搜索操作

首先需要安装selenium: 第一种:可以自己下载selenium tar.gz包,下载到python目录下:解压到当前文件夹 在cmd命令行:进入到解压包中,进行安装。安装完成之后,如果是eclipse中,请 clean project之…

APSIM练习3:氮循环

在本练习中,您将观察休耕情况下的氮肥循环;尿素转化为铵,铵转化为硝酸盐,以及土壤硝酸盐通过反硝化作用流失。此模拟将介绍编辑一个简单的管理器规则以及绘制模拟结果的更多高级功能。 开始基于 Continuous Wheat.apsim 的新模拟。…

【20221230】栈和队列的小结

一、栈(stack) 栈是先进后出的(FILO)的数据结构,它只有一个出口。 二、队列 队列是一种先进先出(FIFO)的数据结构,它有两个出口。 栈和队列是STL(C标准库)里面…

【攻防世界】Web easyupload

知识点讲解 本题的主要考点为利用fastcgi的.user.ini特性进行任意命令执行 关于.user.ini文件是怎么利用的,可以点此查看非常详细,我这里截取一段 .user.ini实际上就是一个可以由用户“自定义”的php.ini,我们能够自定义的设置是模式为“PHP…

创作者身份认证申请规则及审核标准

当前创作者身份主要包括优质创作者、新星创作者、其他(特殊情况)。 有一些身份认证,比如:企业员工认证、学生认证等,不属于创作者身份认证范畴,申请的时候需要找到对应的认证进行申请(https://…

python【多态特性】

多态:同样的行为(函数),传入不同的对象,得到不同的状态 特点:通过继承的方式体验抽象动作相同而具体实现细节不同细节的特性 如,定义函数(方法),通过类型注…

NetInside帮助IT提高应用性能分析能力(一)

前言 某大学信息中心老师反应,用户反馈科研创新服务器平台有访问慢的情况,需要通过流量分析系统来了解系统的运行情况,此报告专门针对系统的性能数据做了分析。 信息中心已部署NetInside流量分析系统,使用流量分析系统提供实时和…

进销存管理系统哪个比较好?

在如今互联网的刺激之下,企业之间的竞争逐渐加剧,很多企业之所以会逐渐被市场淘汰,主要原因都来源于管理上的混乱,而进销存软件的出现可以帮助企业解决管理难题。 选择一款合适的省心的进销存软件,有效提升企业的核心…

Redis中缓存穿透、击穿、雪崩以及解决方案

缓存穿透 理解: 缓存穿透是指查询一个根本不存在的数据,缓存层和持久层都不会命中。在日常工作中出于容错的考虑,如果从持久层查不到数据则不写入缓存层,缓存穿透将导致不存在的数据每次请求都要到持久层去查询,失去…

【正点原子FPGA连载】第八章使用Vitis开发Linux应用摘自【正点原子】DFZU2EG_4EV MPSoC之嵌入式Linux开发指南

1)实验平台:正点原子MPSoC开发板 2)平台购买地址:https://detail.tmall.com/item.htm?id692450874670 3)全套实验源码手册视频下载地址: http://www.openedv.com/thread-340252-1-1.html 第八章使用Vitis…

日本知名汽车零部件公司巡礼系列之株式会社140

株式会社140 业务内容: ・特殊切削工具汽车零件加工用特殊工具的设计、制作・特殊零件海斯、超硬、陶瓷、cBNCD工具的设计与制作・制造用夹具、安装用具、检查用具、定位用具、消耗工具等一制造装饰零件相关的装置或专用机的构成零件等・模具零件制作…钳子、模具…

Spring Boot整合MyBatis(保姆级教程)

前言 MyBatis 是一款优秀的持久层框架,它支持自定义 SQL、存储过程以及高级映射。MyBatis 免除了几乎所有的 JDBC 代码以及设置参数和获取结果集的工作。MyBatis 可以通过简单的 XML 或注解来配置和映射原始类型、接口和 Java POJO(Plain Old Java Objec…

【正点原子FPGA连载】第九章Linux图形界面的搭建摘自【正点原子】DFZU2EG_4EV MPSoC之嵌入式Linux开发指南

1)实验平台:正点原子MPSoC开发板 2)平台购买地址:https://detail.tmall.com/item.htm?id692450874670 3)全套实验源码手册视频下载地址: http://www.openedv.com/thread-340252-1-1.html 第九章Linux图形…

单片机之震动传感器、继电器、433M无线发射接收等模块介绍及应用

目录 一、震动传感器模块 二、继电器介绍 三、433M无线发射接收模块 1、 无线控制报警器代码 2、电动车简易防盗器代码实现 一、震动传感器模块 单片机供电VCC GND接单片机 产品不震动,输出高电平、模块上的AO口 产品震动,输出低电平&#xff0c…

Python使用库(一)

Python使用库 库 就是是别人已经写好了的代码, 可以让我们直接拿来用. 荀子曰: “君子性非异也,善假于物也” 一个编程语言能不能流行起来, 一方面取决于语法是否简单方便容易学习, 一方面取决于生态是否完备. 所谓的 “生态” 指的就是语言是否有足够丰富的库, 来…