扫雷小游戏的初次尝试--1.游戏的基本逻辑

本文详细介绍了游戏整体框架,包括外壳逻辑(菜单处理和函数调用)、游戏内部实现(二维数组用于存储雷和状态,雷的安置与排雷过程,以及边界检查和用户交互机制)和关键点概述,为初学者提供了游戏开发的基础架构指南。
摘要由CSDN通过智能技术生成

文章目录

    • 游戏的整体框架梳理
    • 游戏代码的过程分享
    • 小结

1、游戏的基本逻辑

1.1游戏的外壳逻辑

一个游戏有开始,有结束,所以,游戏一开始,就要先把菜单打印一遍,上来先打印,所以选择do while循环。输入正确的数字便可以进入游戏,错误的话,要提醒一下,再次输入正确的数字。

将菜单用函数进行编写调用,外壳就可以结束了

1.2游戏的内部实现逻辑

当玩家选择进入游戏的时候,可以进入游戏的正式大门game函数内部,进入游戏。

首先我们要先了解一下这个游戏,因为目录与游戏无关,所以放在这进行了解,也是没有关系的。

首先,这个界面有三种形态

一个是没有启动时候,也就是进去游戏的时候,会出现一个什么信息都没有的界面

(我们不包括做页面设计,所以,这个界面可以不像这个游戏一样,这些方块可以用 其他的代替)

二是玩游戏中途的形态(成功的跟这个差不多,可以自行加入一个终极显示,显示所有雷的位置),这个形态主要是由 数字 和 代替 构成的,元素有两个,一个是数字,一个是未被排查的地方,也就是 代替。

三是玩游戏失败的形态,这个时候,会显示所有的雷,包括未被排查的雷的身影。

分析完他的三种形态,我们发现,需要一个二维数组将这个信息放置进去,放置的信息有   数字  和  代替(代替的方块),因为,同一个数组里面类型是一致的,所以这里不是数字类型,就是字符类型。

假如是数字类型,我们需要将 代替 也换成数字,但是,这个数字必须大于8,因为周围是雷的话,中间的数字会达到8,小于8的话,会产生歧义,是周围有8个雷呢,还是这个地方就是个没有被排查的方块呢

(因为我们此时不是用数字将方块代替了)

假如是字符类型,我们需要将 代替 也换成字符,同时,数字也需要换成字符型数字,要是字符的话,便可以在识别性高一点,可以弄成符号什么的,比如 * ,将 代替 换成 * ,也更有神秘感。

综上,两者皆可以,但是要是说便捷性的话,还是字符类型的话,比较方便一点,所以以下我会用字符类型的数组。

用字符的话,游戏开始便是这个界面

游戏中,有按雷,有排雷这两个过程,所以得现有雷,再有排雷过程。

安置雷的话,需要将这些棋盘中随机安置雷,雷的话,用字符1表示,此时,表盘上有两个字符 * 和 1 ,这些是玩家可以看到的,所以此时感觉只有一个盘似乎不太够,毕竟安置雷的话,必须放在游戏盘上。但是,游戏盘得公布给玩家,盘上,全部都是 * 。没办法在 * 后面,在放置一个字符啊。

所以还得在需要一个游戏盘,一个盘在明处,一个盘在暗处,这个明面的游戏盘,和暗处的游戏盘相对应,暗处的盘负责放置雷的位置,明面的盘负责显示 代替* 和 雷的个数。

暗处放置雷的方法可以用循环,随机函数进行放置。

明处的雷的数量需要另外一个函数,进行查询,并改变对应明面游戏盘的字符。需要注意的是,当查询的是四个角的位置,或者边上的位置时,若是只有这么大的游戏盘恐怕是不太简洁,要不然,每次查询到边缘都需特殊对待,我们可以将表盘扩大一圈,但是使用的还是内层的游戏盘,外扩一圈完全是为了四个边的计算方便。

接下来,是输入要查询的坐标,分支语句 if 可以提供帮助

1.要保证重复查询的话,会有提示出现,

2.要保证不能访问越界-----超出游戏盘本身的大小

3.要是是雷,直接结束,打印被炸死,挑战失败

4.若不是雷,就要计算并改变这个位置的字符,看周围有几个雷

这样,基本的框架,就出来了,再次看一遍,可以记下关键点准备开始写第一个游戏了。

  • 19
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值