【网协小课堂】学会C语言,编译小游戏不再是梦!

来源:互联网 编辑:wan玩得好手游小编更新:2024-11-05 15:34:03 人气:

        Hello大家好,本次在网协小课堂中,我打算展示一次新的推送内容,一点点的教会大家用C语言写一个扫雷的初始化原理用来给大家增添一下编程的乐趣(不会C语言的小伙伴可以在推送下方留言,我会视情况推出python版)


话不多说,直接上思路

在编写扫雷小游戏之前,我们先站在程序猿的角度再重新审视一下这款小游戏吧~



扫雷

OUR CHILDHOOD


(是不是有一种回到童年的赶脚呐)

那要怎么玩呐

结合我们今天的主题数组的小秘密,大家在看到这个熟悉的扫雷框框的时候,是不是有一种新的理解呢?

其实,扫雷小游戏,是基于一个叫做二维数组的结构上,加上了一些图形界面化编程从而展现出来的一款小游戏,如果我们细细分析,很容易就可以找到其中的奥秘.

首先,我们要明确扫雷的初始化主题功能:

1.游戏的初始化,包含行列的个数,雷的个数分别有多少个

2.雷的随机分布.我们总是希望游戏是有乐趣的,而扫雷小游戏的乐趣就在于你不知道你将要点下的方块是否是雷,这个需要我们从其他方块下隐藏的数据进一步推算才能得知

3.如果点击的方块不是雷,他应该显示要不就是空格,说明周围都不是雷;要不就是数字,方块中的数字说明了你所点击的这个方块的周围格中,存在雷的个数

 

好了,既然我们已经理清楚了扫雷小游戏的初始化所需要的步骤,那么我们就可以直接写代码了

在这里我所使用的编译器是visual studio 2017 (dev c++也可以,主要根据大家的习惯来就好)

1.头文件的定义

这是头文件定义以及一些数据的宏定义.其中前4行都是C语言的头文件定义,time.h的作用是与stdlib.h配合用于取随机数,Windows.h是用于system(“pause”);暂停程序运行的一个头文件

剩下的四行则是用来对扫雷数组的宏观定义了,其中COL是列数,ROW是行数,NUM是含有的雷数,map是二维数组,主要的是用来创建一个新的二维数组

头文件

2.创建扫雷的外壳

在这个环节中,我们将设置一个10*10的方阵,并赋予他们初始值0,然后根据随机数,随机挑选行列的值,然后将其赋值为-1(雷),这样我们的初始扫雷模板就诞生了



3.遍历数组每一个元素,查看元素周围的9宫格里面有几个雷

采用了遍历数组的方式来查看二维数组中每一个值是否是雷,不是雷的话,周围9宫格中,会有多少雷


4.输出遍历的数组,并结束程序


5.成果展示

咳咳,总结一下

细心的小伙伴们应该发现了一个问题,就是我们明明是设计了一个10*10的方阵,但是在最后输出的时候,我们却输出了一个12*12的方阵,这是为什么呢?

原理是这样子的,在我们的第三部的中,如果我们想要去遍历数组,查看每一个值得周围9宫格中是否有雷的话,很容易出现一个问题,就是原来方阵的四条边上的值不可以求其9宫格,因为它自己就是边缘。我们为了解决这个问题,简化程序的书写,我们人为的在其10*10的方阵中加上一个边框,将我们想要的值很容易的展现出来。


emmmm

自己做出来的游戏是不是格外有意思呐


本次网协小课堂的内容就到这里啦~
如果有感兴趣的小伙伴们可以积极转发推送
并配上文字数组应用之扫雷的诞生”
将转发截图发给我们后台
我们会根据转发量的高低准备下一期的
“数组应用之扫雷的界面化”的推送嗷~
好啦~
我们下期再见啦~


文案:魏洪志 

排版:滕蕊茜 

欢迎玩家到【wan玩得好手游】查看最新变态版手游攻略,只需要在百度输入【wan玩得好手游】就可以浏览最新上线送满vip的变态手游攻略了,更多有关BT手游的攻略和资讯,敬请关注玩得好手游!

更多...

热门推荐

更多...

相关文章