iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > 其他教程 >C语言数组怎么实现扫雷游戏
  • 297
分享到

C语言数组怎么实现扫雷游戏

2023-06-30 01:06:13 297人浏览 八月长安
摘要

本篇内容主要讲解“C语言数组怎么实现扫雷游戏”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“C语言数组怎么实现扫雷游戏”吧!1、扫雷是什么?百度百科:《扫雷》是一款大众类的益智小游戏,于1992年

本篇内容主要讲解“C语言数组怎么实现扫雷游戏”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“C语言数组怎么实现扫雷游戏”吧!

    1、扫雷是什么?

    百度百科:《扫雷》是一款大众类的益智小游戏,于1992年发行。游戏目标是在最短的时间内根据点击格子出现的数字找出所有非雷格子,同时避免踩雷,踩到一个雷即全盘皆输。

    C语言数组怎么实现扫雷游戏

    2、程序框架

    程序整体的框架可以搬用上篇三子棋的,这种框架也可以当作一种通用的形式,加以运用。

    2.1 主函数

    int main(){int input = 0;srand((unsigned int)time(NULL));//产生随机数do{menu();//菜单提示printf("请输入 ==> ");//输入1或0,scanf("%d", &input);switch (input)//根据输入选择是否玩游戏{case 1:game();//玩游戏的具体实现break;case 0:printf("退出游戏\n");break;default:printf("选择错误,重新选择!\n");break;}} while (input);return 0;}

    2.2 函数menu

    输出提示菜单,提醒玩家,1是玩游戏,0是退出游戏

    void menu(){printf("******************************\n");printf("*********  1. play    ********\n");printf("*********  0. exit    ********\n");printf("******************************\n");}

    2.3 函数game

    数组mine,初始化后放入字符 ‘0’

    • mine数组后续放入10个雷,有雷的位置用字符 ‘1’ 表示,没有雷的位置仍然是字符 ‘0’

    • 10个雷的位置随机生成

    数组show,初始化后放入字符 ‘*’

    • 字符 ‘*’ 是将生成雷的位置遮挡住,不让玩家看见

    • show数组放入棋盘中关于具体坐标周围的雷的信息

    • 如果坐标周围有雷,将统计雷的个数,并显示在这个坐标上

    void game(){printf("开始玩游戏!\n");//扫雷游戏的实现//mine数组是用来存放布置好的雷的信息//就10个雷在什么位置char mine[ROWS][COLS] = { 0 };//'0'//show数组是用来存放排查出的雷的信息//坐标周围有几个雷char show[ROWS][COLS] = { 0 };//'*'//初始化棋盘init_board(mine, ROWS, COLS, '0');init_board(show, ROWS, COLS, '*');//打印棋盘//show_board(mine, ROW, COL);//全是字符'0'//show_board(mine, ROW, COL);//全是'*'//布置雷set_mine(mine, ROW, COL);//雷的数组//show_board(mine, ROW, COL);这是显示10个雷在哪里show_board(show, ROW, COL);//输出*暂时掩盖雷在哪里//排查雷find_mine(mine, show, ROW, COL);}
    2.3.1 函数init_board

    init_board初始化参数是将棋盘初始化,让整个棋盘显示字符 ‘0’ 和 ‘*’

    //初始化棋盘    参数:行数 列数  行数 列数 字符0或* void init_board(char arr[ROWS][COLS], int rows, int cols, char set){//set表示初始化传进来的字符是0 还是 *int i = 0;int j = 0;for (i = 0; i < rows; i++){for (j = 0; j < cols; j++){arr[i][j] = set;}}}
    2.3.2 函数show_board

    show_board是展示棋盘的,可以看到棋盘里面雷的信息,以及后续扫雷时,棋盘的具体状态

    //展示棋盘void show_board(char arr[ROWS][COLS], int row, int col){int i = 0;int j = 0;printf("------------扫雷------------\n");for (i = 0; i <= col; i++){printf("%d ", i);//列号,棋盘首先打印列数}printf("\n");for (i = 1; i <= row; i++){printf("%d ", i);//行前面的数字,行号for (j = 1; j <= col; j++){printf("%c ", arr[i][j]);//打印棋盘每个元素}printf("\n");}printf("------------扫雷------------\n");}
    2.3.3 函数set_mine

    函数set_mine是布置雷的,会在棋盘内随机在10个坐标位置产生雷

    //布置雷void set_mine(char mine[ROWS][COLS], int row, int col){int count = EASY_COUNT;//布置10个雷int x = 0;//行坐标int y = 0;//列坐标while (count)//直到10个雷布置完成,退出循环{x = rand() % row + 1;//取模是0-8,加1就是1-9y = rand() % col + 1;if (mine[x][y] == '0')//是空的,就放雷,否则重新随机产生坐标位置{mine[x][y] = '1';//布置雷count--;}}}
    2.3.4 函数find_mine

    函数find_mine是排查雷,每次玩家排雷都先输入一个坐标,然后判断坐标上的字符是否为1:

    • 1为雷,游戏结束

    • 不是1,统计坐标周围8个位置雷的个数,以字符放入形式显示在坐标上

    //排查雷void find_mine(char mine[ROWS][COLS], char show[ROWS][COLS], int row, int col){int x = 0;int y = 0;int win = 0;//代表玩家排雷的次数while (win < row*col - EASY_COUNT)//小于雷的个数,说明雷还没排完{printf("请输入要排查的坐标 ==> ");scanf("%d %d", &x, &y);//玩家输入坐标if (x >= 1 && x <= row && y >= 1 && y <= col)//在1-9的坐标范围内{if (mine[x][y] == '1')//确定坐标为字符'1',就是雷{printf("很遗憾,被炸死了\n");show_board(mine, ROW, COL);//显示所有雷的位置break;}else//不是字符1,坐标就不是雷,显示坐标周围有雷的个数{int count = get_mine_count(mine, x, y);//函数计算类的个数show[x][y] = count + '0';//周围有雷的个数+'0'就转换成字符了show_board(show, ROW, COL);//打印出来,每次扫雷后的棋盘win++;//扫了一次雷就++}}else//超过坐标范围{printf("坐标非法,重新输入\n");}}if (win == row * col - EASY_COUNT)//扫雷次数==9*9-10 71次就结束{printf("恭喜你,排雷成功\n");show_board(mine, ROW, COL);//显示雷的信息}}
    2.3.5 函数get_mine_count

    函数get_mine_count统计雷的个数:

    • 字符 &rsquo;1&lsquo;代表有雷,字符 &rsquo;0&lsquo;代表没有, &rsquo;1&lsquo;- &rsquo;0&lsquo;为数字1,代表1个雷

    • 坐标周围8个坐标上的字符相加 - 8 * &lsquo;0&rsquo;,结果就是有雷的个数,是整形

    //统计坐标周围有雷的个数int get_mine_count(char mine[ROWS][COLS], int x, int y){//坐标周围的8个地方减去'0',再相加的个数就是类的个数return mine[x - 1][y] +mine[x - 1][y - 1] +mine[x][y - 1] +mine[x + 1][y - 1] +mine[x + 1][y] +mine[x + 1][y + 1] +mine[x][y + 1] +mine[x - 1][y + 1] - 8 * '0';}

    3、头文件.h

    #include <stdio.h>#include <stdlib.h>//库函数#include <time.h>//与系统时间相关#define ROW 9//棋盘真实的行数#define COL 9#define ROWS ROW+2 //棋盘放大范围,便于棋盘边的位置遍历#define COLS COL+2#define EASY_COUNT 10 //10个雷的个数//初始化void init_board(char arr[ROWS][COLS], int rows, int cols, char set);//打印void show_board(char arr[ROWS][COLS], int row, int col);//布置雷void set_mine(char mine[ROWS][COLS], int row, int col);

    4、游戏试玩

    运行结果见下图,基本满足了游戏功能。

    C语言数组怎么实现扫雷游戏

    到此,相信大家对“C语言数组怎么实现扫雷游戏”有了更深的了解,不妨来实际操作一番吧!这里是编程网网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

    --结束END--

    本文标题: C语言数组怎么实现扫雷游戏

    本文链接: https://www.lsjlt.com/news/327056.html(转载时请注明来源链接)

    有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

    本篇文章演示代码以及资料文档资料下载

    下载Word文档到电脑,方便收藏和打印~

    下载Word文档
    猜你喜欢
    • C语言数组实现扫雷游戏
      本文实例为大家分享了C语言数组实现扫雷游戏的具体代码,供大家参考,具体内容如下 游戏界面展示: 一开始菜单界面: 选择 0 退出程序: 选择 1 开始游戏: 输入要排查雷的坐标...
      99+
      2024-04-02
    • C语言数组怎么实现扫雷游戏
      本篇内容主要讲解“C语言数组怎么实现扫雷游戏”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“C语言数组怎么实现扫雷游戏”吧!1、扫雷是什么?百度百科:《扫雷》是一款大众类的益智小游戏,于1992年...
      99+
      2023-06-30
    • 怎么使用C语言数组实现扫雷游戏
      本篇内容主要讲解“怎么使用C语言数组实现扫雷游戏”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么使用C语言数组实现扫雷游戏”吧!游戏界面展示:一开始菜单界面:选择 0 退出程序:选择 1 开始...
      99+
      2023-07-02
    • C语言数组应用实现扫雷游戏
      本文实例为大家分享了C语言数组应用实现扫雷游戏的具体代码,供大家参考,具体内容如下 扫雷游戏(10×10的面板): 1.定义两个12×12的字符型数组;2.s...
      99+
      2024-04-02
    • C语言怎么实现扫雷小游戏
      本篇内容介绍了“C语言怎么实现扫雷小游戏”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!本文实例为大家分享了C语言实现扫雷小游戏的具体代码,供...
      99+
      2023-06-20
    • C语言怎样实现扫雷游戏
      这篇文章主要介绍了C语言怎样实现扫雷游戏,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。概述扫雷是一款大众类的益智小游戏。游戏目标是根据点击格子出现的数字找出所有非雷格子,同时...
      99+
      2023-06-15
    • C语言版扫雷游戏怎么实现
      这篇文章主要介绍C语言版扫雷游戏怎么实现,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!用c语言做一个扫雷功能的简单实现,首先创建一个test.c来用于在写代码的途中测试扫雷代码,game.h来存放实现扫雷函数需要用到...
      99+
      2023-06-25
    • 用C语言实现扫雷游戏
      用C语言实现扫雷游戏,因为代码会比较多,所以采用多文件的方式,使代码看起来更好。 一.main.c 在主调函数中首先要提供一个给用户选择的界面,在这里我们假定选择1为开始游戏,0为退...
      99+
      2024-04-02
    • C语言二维数组怎么应用实现扫雷游戏
      本篇内容介绍了“C语言二维数组怎么应用实现扫雷游戏”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!游戏简介:电脑随机设置10个雷,用户输入坐标...
      99+
      2023-07-02
    • C语言二维数组应用实现扫雷游戏
      本文实例为大家分享了C语言二维数组应用实现扫雷游戏的具体代码,供大家参考,具体内容如下 游戏简介: 电脑随机设置10个雷,用户输入坐标,若坐标下是雷则结束游戏,不是则该位置显示周围的...
      99+
      2024-04-02
    • C语言二维数组运用实现扫雷游戏
      作为80后、90后的老年人,想必对扫雷游戏都不陌生。扫雷,是微软在win8版本之前系统自带的一款游戏——现在已经被下架了,童年的回忆,很难受。游戏操作很简单,...
      99+
      2024-04-02
    • 怎么用C语言实现扫雷小游戏
      这篇文章主要讲解了“怎么用C语言实现扫雷小游戏”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么用C语言实现扫雷小游戏”吧!具体内容如下经典扫雷游戏规则:当玩家点击游戏区域,该处周围的八个位...
      99+
      2023-06-25
    • C语言编程怎么实现扫雷游戏
      这篇文章主要讲解了“C语言编程怎么实现扫雷游戏”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“C语言编程怎么实现扫雷游戏”吧!在我们熟知的扫雷中,我们点击小方块,小方块要么出现数字,要么遇到地...
      99+
      2023-06-20
    • C语言编程实现扫雷游戏
      本文实例为大家分享了C语言实现扫雷游戏的具体代码,供大家参考,具体内容如下 在我们熟知的扫雷中,我们点击小方块,小方块要么出现数字,要么遇到地雷。我打算,使用数组的方式来完成扫雷游戏...
      99+
      2024-04-02
    • 使用C语言实现扫雷游戏
      目录一、游戏介绍二、实现模块三、实现原理四、实现逻辑五、全部代码六、运行结果本文实例为大家分享了C语言实现扫雷游戏的具体代码,供大家参考,具体内容如下 一、游戏介绍 扫雷游戏是在一个...
      99+
      2022-11-13
      C语言 扫雷
    • C语言实现扫雷经典游戏
      C语言实现扫雷游戏,供大家参考,具体内容如下 实现扫雷游戏 与三子棋游戏类似,为了便于后期对于代码的阅读、理解与地图大小和地雷的数量变更,先用#define定义一个标识符表示一个常量...
      99+
      2024-04-02
    • 利用C语言实现扫雷游戏
      通过一段时间的C语言学习,想必小伙伴们也想跃跃欲试的编写一些小程序,这个扫雷简易游戏,非常适合C语言初学者去实践。 实现扫雷,首先要有两个棋盘,一个棋盘放置着雷的信息,另个用于展示到...
      99+
      2024-04-02
    • 用C语言实现扫雷小游戏
      本文实例为大家分享了C语言实现扫雷小游戏的具体代码,供大家参考,具体内容如下 1. 规则 随便点一个格子,会有一块,上面的数字就代表数字周围八个格子会有几个雷,是1他周围就只有1个雷...
      99+
      2024-04-02
    • C语言递归实现扫雷游戏
      前言 首先要实现扫雷原理上同三子棋,都是通过一个二维数组来实现游戏主题功能那么这里有几个值得注意的点 1、初级扫雷我们知道是九乘九数组实现,那么在这里我们创建的是11乘11的数组,目...
      99+
      2024-04-02
    • C语言怎么实现简易版扫雷游戏
      这篇文章将为大家详细讲解有关C语言怎么实现简易版扫雷游戏,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。C语言是什么C语言是一门面向过程的、抽象化的通用程序设计语言,广泛应用于底层开发,使用C语言可以以简易...
      99+
      2023-06-14
    软考高级职称资格查询
    编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
    • 官方手机版

    • 微信公众号

    • 商务合作