深度剖析扫雷游戏的各个知识点(2)

news2025/1/19 2:09:13

小伙伴们,大家好。这次继续上次的剖析扫雷游戏的知识点。


 那么本次咱们主要是讲扫雷中的宏定义,也就是#define这些

首先#define是用来定义一个宏,后面就是类似于和变量一样的常量名,以及最后的数字就是它的值。

定义规则  

#define    +    定义名   +  函数、语句等等  (注意不需要添加“+”哦) 

举个例子:#define  printf("hello world\n");

之后,只需在代码中使用到这一串代码时直接定义的名字将其替换即可

优势与劣势

优势:

1.当我们写好这一行代码后,后面需要使用以及修改时比较方便

当然啦vs里面也有一键替换功能,但是在我们写完代码后若是哪里需要修改并且使用了一键替换,只会使bug越来越多

2.在运行内存上,宏的运行速度要比函数快,效率上也更高

劣势:

1.存在副作用:当写成#define   A      a++时会出现副作用

                       正确写法:#define   A    a+1

2.宏可以完成的,函数也可以完成,但是函数可以完成的,宏不一定能完成


本篇文章的主要内容已经结束,最后再给大家讲解一下为什么ROW+2  和  COL+2,以及若是两者都+1会怎么样。

首先从上面的图片中,大家可以看到我们最初定义的扫雷盘是9*9的大小,那么为什么后面ROW以及COL后面要+2,首先我们设置的排雷方式是显示输入坐标以及该坐标的四周,所以当遇到这种情况时难免会出现bug,如图所示

也许有人会说:那我们加一行不就行了吗,那么是否如此呢,我们实践出真知。

20240419_103407

由此可见:ROW和COL在定义了初值后需要 +2


那么本篇文章的内容就先到这了,当然我们的深度剖析扫雷游戏的各个知识点系列的文章还没结束,大家敬请期待

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

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

相关文章

被Claude3的图生代码技术秀到了,前端开发效率,提升到秒级

被Claude3的图生代码技术秀到了!前端开发效率,提升到秒级 上传一张网站图片,用Claude3 生成实现这个网站的代码的教程来啦! 在Claude3 的中文网站上一分钟就能实现,生成前端代码。中文网站地址是https://askmanyai.c…

【银角大王———Django学习DAY0——基础准备】

银角大王——Django学习前情提要 (1)在pycharm中下载Flask(2)使用Flask(3)下载BootStrap框架(4) 使用BootStrap框架 (1)在pycharm中下载Flask 在设置——项目…

【cmu15445c++入门】(14)C++的 =delete和=default

一、定义 (1)default 在C中, default 是一种特殊的语法,用于显式地请求编译器生成一个函数的默认实现。当应用于构造函数时, default 告诉编译器生成一个默认构造函数。默认构造函数是一个不接受任何参数的构造函数。…

Linux给磁盘扩容(LVM方式)

Linux给磁盘扩容(LVM方式) 最近测试性能,在本地打数据时,发现磁盘空间不足,于是想手动给/挂载点添加空间。这里介绍通过LVM方式快速给磁盘扩容。 LVM:是一种技术,方便管理磁盘。如果不用LVM,那…

经典网络解读—IResNet

论文:Improved Residual Networks for Image and Video Recognition(2020.4) 作者:Ionut Cosmin Duta, Li Liu, Fan Zhu, Ling Shao 链接:https://arxiv.org/abs/2004.04989 代码:https://github.com/iduta…

IK分词器安装、配置、分词自定义、Rest使用、SpringBoot使用

文章目录 1. 概述2. 安装配置3. 自定义拆分文本4. 调用4.1 拆分规则4.2 Rest 调用4.3 SpringBoot 调用 1. 概述 IK分词器是ElasticSearch(es)的一个最最最有名插件,能够把一段中文或者别的语句划分成一个个的关键字,进而在搜索的时候对数据库中或者索引库…

并发场景下 缓存击穿 穿透 雪崩如何解决

最近建了一个技术交流群,欢迎志同道合的同学加入,群里主要讨论:分享业务解决方案、深度分析面试题并解答工作中遇到的问题,同时也能为我提供写作的素材。 群号 208236931,欢迎进群交流学习,一起进步、进步、…

3.4 海思SS928开发 - 烧写工具 - BurnTool Emmc 烧写

3.4 烧写工具 - BurnTool Emmc 烧写 BurnTool 工具提供了多种烧写方式,这里只介绍最常用的 烧写emmc方式。 环境准备 PC 与单板之间连接好调试串口以及网线。 将厂商提供的出厂镜像拷贝至 PC 硬盘上,解压后得到的文件如下: . ├── boot_…

ARM学习(26)链接库的依赖查看

笔者今天来聊一下查看链接库的依赖。 通常情况下,运行一个可执行文件的时候,可能会出现找不到依赖库的情况,比如图下这种情况,可以看到是缺少了license.dll或者libtest.so,所以无法运行。怎么知道它到底缺少什么dll呢&…

收藏这份方案,制造业营销管理快人一步【内附下载链接】

随着“中国制造2025”等政策的实施,制造业正经历着技术革新和产业升级,尤其在智能化和绿色制造领域取得了显著进展。 然而, 制造业面临着消费者需求日益多样化和个性化的挑战,迫切需要从生产导向转变为市场导向。与此同时&#…

Transformer中的位置编码详解

什么是位置编码 位置编码概述 位置编码的目的是为了补充序列的位置信息,这是因为自注意力机制本身不包含位置的概念(例如顺序信息)。位置编码的具体作用是,对于不同的输入序列成分,赋予其不同的位置标识,确…

RIP小实验配置及缺省路由下发

配置如下: IP配置: IP配置完先查看RIP协议学习到的路由表,没有内容则代表没有开启RIP 启用RIP:这里的rip后跟的ID只具有本地意义,可以在1-65535之间随便取,不同路由器之间都可以取用不同的,为了…

宿舍预付费管控云平台

1.宿舍预付费管控云平台概述 宿舍预付费管控云平台是一种创新的智能管理系统,专为学校、公寓等住宿环境设计,旨在提升管理效率,优化用户体验,并实现资源的高效利用。通过云端技术,该平台可以实现远程充值、实时消费记…

Day 30 回溯总结

重新安排行程(*) 给定一个机票的字符串二维数组 [from, to],子数组中的两个成员分别表示飞机出发和降落的机场地点,对该行程进行重新规划排序。所有这些机票都属于一个从 JFK(肯尼迪国际机场)出发的先生,所以该行程必…

设置表格高度后,数值改变但实际不变

1.选中表格 2.点击“开始”——>“段落设置”的选项启动按钮,设置为单倍行距 3.可以看到,表格的行高被调小了。

【SLAM】在Win10上实现Nerf-Pytorch【GPU版】

文章目录 ReadMe安装依赖运行下载两个示例数据集:lego和fern训练一个低分辨率的Lego NeRF:训练一个低分辨率蕨类植物NeRF:更多数据集预训练模型可复现实现1、下载nerf-pytorch工程2、安装依赖3、下载数据4、运行lego NeRF:ReadMe Github链接 NeRF (神经辐射场)是一种在合成…

prompt问题【中间不好】

问题1:longchain 关键词在中间容易被忽略掉 Found in the Middle: How Language Models Use Long Contexts Better via Plug-and-Play Positional Encoding 论文对大模型在长文本情况下的性能做了一系列实验研究,发现了一个有趣的“Lost in the middle”现象&#x…

理解Docker容器和镜像的区别

容器镜像读写层 容器最上边那一层是可读可写的。 镜像可以看作是面向对象编程中的类。 文章目录 一、镜像(只读层的集合) 二、容器(多层只读层一层读写层) 三、镜像层 一、镜像(只读层的集合) 镜像&…

Vue3从入门到实战:深度了解相关API

shallowRef 作用:创建一个响应式数据,但只对顶层属性进行响应式处理。 用法: let myVar shallowRef(initialValue); 特点:只跟踪引用值的变化,不关心值内部的属性变化。 shallowReactive 作用:创建一个…

ASPICE 追溯性实践分享

01前言 接着之前的分享,遗留的追溯性ASPICE 认证实践及个人理解分享-CSDN博客文章浏览阅读961次,点赞22次,收藏17次。ASPICE是Automotive 和SPICE的组合,全英文为(Automotive Software ProcessImprovement and Determ…