如何用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语言 扫雷详解
|
1天前
|
C语言
以c语言为基础实现的简易扫雷游戏(游戏代码附在文章最后,如有需要请自取)
以c语言为基础实现的简易扫雷游戏(游戏代码附在文章最后,如有需要请自取)
48 1
|
1天前
|
C语言
爱上C语言:扫雷小游戏,展开一片功能实现
爱上C语言:扫雷小游戏,展开一片功能实现
爱上C语言:扫雷小游戏,展开一片功能实现
|
1天前
|
编译器 定位技术 C语言
【C语言实战项目】扫雷游戏
【C语言实战项目】扫雷游戏
28 0
|
1天前
|
存储 Serverless C语言
C语言第十二弹--扫雷
C语言第十二弹--扫雷
|
1天前
|
存储 定位技术 C语言
基于C语言实现扫雷小游戏
本文介绍了使用C语言实现扫雷小游戏的过程。扫雷是一款经典的单机游戏,玩家需要通过点击方格来揭示数字或地雷,最终清除所有非地雷方格。实现过程中,首先定义了游戏所需的数据结构,如游戏地图、玩家信息等。然后,实现了游戏的初始化、渲染、输入处理等核心功能。在游戏逻辑方面,处理了点击事件、数字计算和胜负判断等。通过不断优化和完善,最终完成了基于C语言的扫雷小游戏实现,为玩家提供了一种简单有趣的游戏体验。
28 0
|
1天前
|
机器学习/深度学习 小程序 C语言
C语言初学者:原来我也可以实现扫雷小游戏(简易版)!
C语言初学者:原来我也可以实现扫雷小游戏(简易版)!
|
机器学习/深度学习 人工智能 C语言
C语言简单实现14个例题(谭浩强第四版)
版权声明:转载请注明出处:http://blog.csdn.net/dajitui2024 https://blog.csdn.net/dajitui2024/article/details/79396241 1、仅供学习交流参考。
1133 0
|
1天前
|
C语言
C语言:内存函数(memcpy memmove memset memcmp使用)
C语言:内存函数(memcpy memmove memset memcmp使用)
|
1天前
|
存储 编译器 C语言
C语言:字符函数 & 字符串函数 & 内存函数
C语言:字符函数 & 字符串函数 & 内存函数
15 2

热门文章

最新文章