扫雷游戏

本文介绍了如何设计一个扫雷游戏,包括模块化编程、使用二维数组存储雷区和计数、利用Switch语句处理游戏流程,以及使用rand()和srand()函数随机布雷。着重讲解了函数封装和循环结构的运用。
摘要由CSDN通过智能技术生成

这是一篇关于如何设计扫雷游戏的文章,接下来请看详情

构思:扫雷游戏是一个代码量比较大的游戏,所以我们在设计的时候,可以创建多个文件进行写代码,游戏设计的每一步用函数进行封装,这样代码看起来就会简洁,整体更加美观。

主体:第一步搭建好main函数的主体

进行一个程序设计的时候,需考虑玩家要不要玩,所以可以写一个输入让玩家选择

这一步需要设计一个菜单 用函数封装

玩一把之后考虑是不是在玩一把,我们采用do while 循环结构 

选择玩游戏后,就是进入到游戏设计的代码里,这里我们采用Switch语句 进行选择

 游戏设计,我们用game()函数封装

游戏设计的主体思想:扫雷游戏 我们可以用二维数组进行编写,需要两个数组 一个是用来存储累的个数,一个是用来显示给玩家看的

棋盘的大写我们可以写一个 头文件定义,方便以后修改 我这里写的是9x9的大小

扫雷游戏 当选择一个坐标后,要计算他周围8个坐标位置累的个数,为了边边的位置越界导致计算错误 我们在9x9的外边加上一个外框 只用来存储,不放雷,这里我们用字符0表示没有雷 字符1表示雷(方便后面我们计算累的个数,如果你有更好的方法,也可以优化一下),加上外框之后就变成11x11的棋盘了,这里我们也定义一下

接下来我们对棋盘初始化

布置好之后我们可以打印出来看看对不对

布置雷

每一次游戏开始类都是随机布置的 我们可以用rand()函数,由于rand函数是基于一个种子然后生成的伪随机数 只要种子不便他每次生成的随机数都是不变的,这时候我们就要调用srangd()函数(头文件 #include <stdlib.h>)srand()也有他的种子,我们可以用时间作为他的种子,让每一次的随机数都是随机的 时间的头文件(#include <time.h>)时间的返回值是unsigned int 

srand()函数只需在整个代码中调用一次就可以了,

int x = rand() % row + 1;
int y = rand() % col + 1;

做到每次坐标都是随机的

count代表累的个数 布置成功之后,count--,直至循环结束

最后一步 排雷

排查雷 直至把雷排完游戏结束,所以我们这里用while循环 定义一个变量 int win

每排出一个雷 win++ 当win==10 跳出循环 排雷成功 游戏结束

排雷写入输入的坐标表,并且判断是否合格

否则提示玩家

输入正确 判断是不是雷

是雷游戏结束

否则进入下一步排雷

Get_Ray()用于计算此坐标周围累的个数,

            十      八     十六

这里的计算原理是 字符的ASCLL码十进制的值进行计算 '1'-'0'=1

循环直到win==71 排雷成功 游戏结束

知识总结 这里用到知识有 二维数组 函数 循环 (这三个为重点)代码有瑕疵 希望大佬能帮我指正 万分感谢

整个代码参见

头文件

main函数

游戏函数

  • 8
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值