如何用C语言快速实现初级版扫雷(步骤详细)(一)

简介: 当你自己完成后一定成就感幸福感满满的!

前言


https://www.saolei123.com/

附上扫雷小游戏链接,先来体味感受下真正的扫雷是怎样的

本文章为手把手讲解实现C语言扫雷(好好看,相信不会太难的说)

当你自己完成后一定成就感幸福感满满的!!

问题描述

用C语言实现小游戏扫雷初级版(9x9棋盘/10个地雷)

工具

vs2019

基本思路和流程


扫雷的规则

尽快找出雷区中的所有不是地雷的方块

根据点击格子出现的数字找出所有非雷格子

同时避免踩雷,踩到一个雷即全盘皆输

代码实现思路

1.菜单选择开始或者退出游戏

2.初始化并打印雷区

3.第一次免雷和周边雷排查

4.雷区展开

5.判断胜利

6.游戏结束后展示玩家用时

实现步骤


模块化

1.test.c :写整个游戏实现思路流程

2.game.c: 写游戏实现思路中的各个函数的定义,完成函数内容实现函数功用

3.game.h :引用需要用到的头文件,以及对各个自定义函数的声明

(其他模板上方只需要加上 #include “game.h”,避免重复引用相同头文件)

注:模块化便于管理和修改

菜单界面

比较简单直接上代码

代码

//菜单界面
void menu()
{
  printf("************************\n");
  printf("*******  1.play  *******\n");
  printf("*******  0.exit  *******\n");
  printf("************************\n");
}

选择的实现

玩家通过输入1/0 来选择是开始游戏还是退出游戏

用do while语句实现比较适合

do
  {
    menu();
    printf("请输入选择:>");
    scanf("%d", &input);
    switch (input)
    {
    case 0:
      printf("成功退出游戏!\n");
      break;
    case 1:
      printf("欢迎进入游戏!\n");
      game();
      break;
    default:
      printf("输入出错,请重新输入\n");
      break;
    }
  } while (input);

初始化和打印雷区


考虑问题

因为我们在设计算法时需要统计坐标周围8个方位雷的个数

假如要统计边界坐标周围雷的个数,那么就会有数组越界的问题

那我们就要在9X9的边界多上一圈元素,也就要定义11X11的数组元素

这些元素我们显示给玩家看就可以了


雷区

使用9行9列的二维数组来表示,元素类型是char

1.  char mine[ROWS][COLS] = { 0 };//存放雷的信息
2.  char show[ROWS][COLS] = { 0 };//存放排查出的雷的信息

使用宏定义

1.推高代码可读性,后续代码中遇到,方便理解含义

2.提高扩展性,如果将来要修改棋盘尺寸,代码修改会很方便


#define ROW 9
#define COL 9//显示规格
#define ROWS ROW+2
#define COLS COL+2//实际规格
#define EASY_COUNT 10//布置雷个数

初始化

棋盘

//初始化棋盘
void InitBoard(char board[ROWS][COLS], int rows,int cols)
{
  int i = 0;
  for (i = 0; i < rows; i++)//行
  {
    int j = 0;
    for (j = 0; j < cols; j++)//列
    {
      board[i][j] = '0';
    }
  }
}

设置雷

//布置雷
void SetMine(char board[ROWS][COLS], int row, int col)
{
  int count = COUNT;
  while (count)
  {
    //生成随机下标
    int x = rand() % row + 1;//取余后的范围是0-8
    int y = rand() % col + 1;//加一后符合游戏范围
    if (board[x][y] != '1')
    {
      board[x][y] = '1';
      count--;//设置10个后 count为0 不再循环
    }
  }
}


相关文章
|
1月前
|
C语言
扫雷游戏(用C语言实现)
扫雷游戏(用C语言实现)
83 0
|
2月前
|
存储 安全 算法
C 语言——实现扫雷小游戏
本文介绍了使用二维数组创建棋盘并实现扫雷游戏的方法。首先,通过初始化数组创建一个9x9的棋盘,并添加行列标识以便操作。接着,利用随机数在棋盘上布置雷。最后,通过判断玩家输入的坐标来实现扫雷功能,包括显示雷的数量和处理游戏胜利或失败的情况。文中提供了完整的代码实现。
43 1
C 语言——实现扫雷小游戏
|
1月前
|
存储 算法 安全
C语言实现扫雷游戏
C语言实现扫雷游戏
|
1月前
|
IDE Unix 开发工具
1.6使用C语言的7个步骤后续
在编程过程中,首先通过不同环境下的方法运行程序,如输入可执行文件名或点击图标。接着测试程序运行情况,查找并修正可能出现的错误,即调试。创建程序后还需根据需求进行维护与修改,如修正错误或添加新功能。整个流程非线性,需反复迭代。
67 8
|
1月前
|
编译器 C语言
1.6 使用C语言的7个步骤
在开发C程序时,首先要明确程序目标,即程序需要处理的信息、计算和输出;接着设计程序实现的方法,包括用户界面、程序结构等;随后用C语言编写程序代码;最后通过编译器将源代码转换为特定机器语言的可执行文件,同时链接C库中的标准函数,形成最终可运行的程序。此过程需根据具体编程环境调整相关设置和操作。
52 7
|
1月前
|
C语言
初学者指南:使用C语言实现简易版扫雷游戏
初学者指南:使用C语言实现简易版扫雷游戏
34 0
|
1月前
|
C语言
C语言扫雷游戏(详解)
C语言扫雷游戏(详解)
38 0
|
1月前
|
存储 编译器 C语言
【C语言篇】数组和函数的实践:扫雷游戏(附源码)
【C语言篇】数组和函数的实践:扫雷游戏(附源码)
35 0
|
1月前
|
C语言 C++
C语言 之 内存函数
C语言 之 内存函数
34 3
|
6天前
|
C语言
c语言调用的函数的声明
被调用的函数的声明: 一个函数调用另一个函数需具备的条件: 首先被调用的函数必须是已经存在的函数,即头文件中存在或已经定义过; 如果使用库函数,一般应该在本文件开头用#include命令将调用有关库函数时在所需要用到的信息“包含”到本文件中。.h文件是头文件所用的后缀。 如果使用用户自己定义的函数,而且该函数与使用它的函数在同一个文件中,一般还应该在主调函数中对被调用的函数做声明。 如果被调用的函数定义出现在主调函数之前可以不必声明。 如果已在所有函数定义之前,在函数的外部已做了函数声明,则在各个主调函数中不必多所调用的函数在做声明
22 6