首页 > 其他分享 >简易扫雷游戏(C语言)

简易扫雷游戏(C语言)

时间:2024-11-03 19:47:17浏览次数:5  
标签:语句 游戏 C语言 简易 扫雷 埋雷 棋盘 函数

扫雷游戏是曾风靡一时的益智小游戏,在此,我们用C语言知识,简单复现一下其基础玩法

————,扫雷游戏的实现,需要以下几个基本功能:

1,打印菜单

2,设置棋盘 ——> 初始化棋盘

3,埋雷

4,找雷

这些功能在下方我将一一为大家讲解,如何用C语言程序来实现

—————

在进行基本的写出主函数之后,我们以一个函数test()来完成游戏的主体实现:

首先,在test函数里创建并调用一个简单的menu函数,打印菜单:

在这之后,考虑到游戏的循环进行以及玩家的选择,我们采用do...while语句以及switch语句:

进行到这一步,游戏的开始选择,就成型了,接下来就是游戏本体game函数的建立,它就包括了扫雷游戏的建立棋盘,初始化棋盘,埋雷,找雷的玩法过程,我们用函数来将其一一实现:

上列包括

定义 - 藏雷棋盘mine & 展示棋盘show 

初始化棋盘IntMine IntShow

埋雷函数HideMine

展示函数Display

寻雷函数FindMine

这些,下文都将为大家呈现:

1,棋盘数组的定义

使用了#define ROWS/ROW以及#define COLS/COL分别表示其本身行列和展示行列

                                                                                                                                                        为后续藏雷操作做铺垫,同时为以后得游戏难度升级等操作带来便利

2,初始化棋盘

初始化较为简单,使用两个for语句循环,将数组每个元素都赋上对应的值(‘0’/‘*’),值得注意的是要防止数组下标访问越界的问题

3,埋雷

埋雷函数使用基本的while语句和if判断语句进行编写,但在此使用到一个库函数rand(),使用需stdlib.h头文件才行.  并且在使用时,该函数还需另两函数进行辅佐,分别是srand()函数以及time()函数,其中后者还需包含time.h头文件.  使用时srand((unsigned int)time(NULL)),使用强制类型转换是因为time函数返回值是time_t类型.  粗略的说明:使用这两个函数是改变rand函数的种子seed使其随机生成的数不会重复,是真随机数

4,找雷

扫雷游戏最重要的过程当然是寻雷,实现这个目的,使用到了if..else语句,并创建调用了一个Add函数用以实现在不是雷时,打印出该位置周围情况的:

此处使用for语句将选择位置周围八个位置的值相加(注意,此处是字符加和,得到的是ASCII码值大小),所以下面我们只需将这八个数之和减去7个'0'的大小,就能得到此处周围情况总共的ASCII码值所代表的数值,在传回,打印出的是该码代表的字符

——————

于此,扫雷游戏的基本逻辑已经完成,简易扫雷也可以实现,在其中,我们使用到了各种语句以及函数知识,总而言之,该程序难度不大,但涵盖知识不少,适合新手上手作为练习

标签:语句,游戏,C语言,简易,扫雷,埋雷,棋盘,函数
From: https://blog.csdn.net/qurhua/article/details/143466818

相关文章

  • 网络编程 TCP编程 Linux环境 C语言实现
    所有基于数据传输通信的程序,都会被分成两种角色:1.服务端:又称为服务器server提供一种通信服务的进程基本工作过程是:1>接收请求数据2>处理请求数据3>发送处理结果2.客户端:client使用一种通信服务的进程基本工作过程是:1>组织请求数据2>发送请求数据3>接收请求回......
  • (2)---【C语言】【GL库】【计算机图形学】DEV C++ 平台openGL库 下的画线图案设计 房
     上篇上手实践  运行结果  实现代码#include<windows.h>#include<GL/glut.h>#defineGLUT_DISABLE_ATEXIT_HACK//处理不同系统宏//星状结构函数,添加了几何中心坐标,半径,叶片宽度占比,叶片数量--------------------------------//绘制内部星状结构基本元素的......
  • C语言:函数
    一.自定义函数自定义函数形式如下:ret_type fun_name(形式参数){}ps:1.ret_type是函数返回类型,有时候是void,表示什么都不返回2.fun_name是函数名,尽量清楚明了3.括号中放的是形式参数,有时候是void,表示没有参数,如果有参数记得加入参数的类型和......
  • C语言简介
    C语言在‌编程中的基础地位‌C语言是一门非常基础的编程语言,具有高效、灵活、可移植等特点。它的语法简单明了,易于学习和理解。C语言的设计思想和编程范式对程序员的编程思路产生了深远的影响,使程序员更加注重程序的结构化设计、效率和性能、可移植性等方面。C语言对编程能力......
  • C语言基础知识学习(7)
    大家好啊,本期和大家分享C语言函数相关知识。1.函数的概念我们早在数学中就接触过函数,比如:一次函数y=ax+b,a、b都是常数,给定任意一个x就可以得到y。在C语言中也引入函数(function)概念,更准确的翻译应该为:子程序。C语言中函数就是完成某一特定功能的一段代码。一个大的任务可以分......
  • 扫雷程序的实现和分析
    昨天下午看了鹏哥的录播课,在自修教室学了一下扫雷,等晚上回到寝室花了一点时间写了一部分扫雷程序,今天早上起来又花了一点时间写了扫雷,终于写完了,我自己比较满意的点是全程都是自己独立完成的,最后程序运行起来也没有问题。接下来主要讲讲我对扫雷这个程序的认识,以及我觉得写扫......
  • 【C语言学习】7步轻松掌握C语言链式结构,你也能成为高手!与数组说拜拜,链表你好
    ......
  • (C语言)指针(全网最详细)
    1)内存和地址内存的使用和管理1.内存划分为一个个的内存单元,每个内存单元的大小是一个字节;而每个内存单元都有自己的编号;内存单元的编号==地址==指针;一个字节相当于8个比特位(就好比一个寝室住8个人一样);在创建变量的本质就是向内存中申请空间,比如inta=10;表示向内存单元......
  • java平方根计算 C语言指针变量
    1.publicstaticvoidmain(String[]args){Scannersc=newScanner(System.in);System.out.println("请输入你的数:");intnum=sc.nextInt();for(inti=1;i<=num;i++){if(i*i==num){System.out.println(i+"就是......