c语言循环写回合制小游戏_【网协小课堂】学会C语言,编译小游戏不再是梦!...

a4e5701c319b3bc3f5e6dc2fb76df710.png

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

423d4d49bb821f750524440c7d1edfb7.png

话不多说,直接上思路

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

80c4d4c4677a820a490d9ec71fe97ad3.png

扫雷

OUR CHILDHOOD

d003e11ee4b8c3ec925b36a7ee7fbc56.png

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

b8fee5baf698e1d748acb6732b13202b.gif

那要怎么玩呐

d36a3692bfd8d103c85c8f2942a70377.gif 156ebfc1f6be6dbbcd864f82bbe89738.png

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

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

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

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

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

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

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

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

cfc248e1b7fb5bb4941b4fff56239ef2.png

1.头文件的定义

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

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

54573b85da23835a9ec3353473133de3.png

头文件

a6d955f1aa756180552ad5d3223810aa.png

2.创建扫雷的外壳

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

357ef05a8947ccbd46163dc78cf4b75a.png

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

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

c86cf885c962f3bc6edc3d9ae48f197b.png 487f82e7af8b2dae99a673bd1d4afeeb.png

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

c2299287625af26411b6347e6c92215a.gif c73a8d847f73dc39dd189a848a608b87.png f45150efbe0cfc7eae5f3c1aa432ce50.png c73a8d847f73dc39dd189a848a608b87.png

5.成果展示

e9ce5f8fdf5afa99ebc013122d1850f1.png a1eea10c8e2d75c04fbea11d61336581.gif a1eea10c8e2d75c04fbea11d61336581.gif 106eb4f1a91c9625ac1fe8f8b953caa3.png a1eea10c8e2d75c04fbea11d61336581.gif a1eea10c8e2d75c04fbea11d61336581.gif 1f78d93ce9fed43c372624babeefb14e.png

咳咳,总结一下

693304544fb5b3513afa317403b6e217.png

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

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

emmmm

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

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

文案:唐洛神 

排版:滕蕊茜 

711934b6d5156e4fdb0e311d0d2a0b3f.png
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值