扫雷小游戏 C语言从入门到入土(入门特别篇)(二)

简介: 1.游戏基本流程 2.打印菜单 3.游戏的实现 4.创建数组 5.初始化数组 6.打印棋盘 7.布置雷 8.排雷

game.h:

#pragma once
#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
//初始化数组声明
void InitBoard(char Board[ROWS][COLS], int rows, int cols, char set);
//打印棋盘声明
DisplayBoard(char Board[ROWS][COLS], int row, int col);
//布置雷声明
void Set_mine(char Board[ROWS][COLS],int row,int col);
//排查雷的声明
void FindMine(char mine[ROWS][COLS],char show[ROWS][COLS],int row,int col);


game.c:

#define _CRT_SECURE_NO_WARNINGS 1
#include"game.h"
//创建数组
//初始化数组
//打印棋盘
//布置雷
//排雷
void InitBoard(char Board[ROWS][COLS], int rows, int cols, char set)
{
  int i = 0;
  int j = 0;
  for (i = 0; i < rows; i++)
  {
    for (j = 0; j < cols; j++)
    {
      Board[i][j] = set;
    }
  }
}
DisplayBoard(char Board[ROWS][COLS], int row, int col)
{
  int i = 0;
  int j = 0;
  for (i = 0; i <= row; i++)
  {
    printf("%d ",Board[i][j] = i );
  }
  printf("\n");
  for (i = 1; i<= row; i++)
  {
    printf("%d ", i);
    for (j = 1; j <= col; j++)
    {
      printf("%c ", Board[i][j]);
    }
    printf("\n");
  }
}
void Set_mine(char mine[ROWS][COLS], int row, int col)
{
  int count = 10;
  while (count)
  {
    int x = rand() % row + 1;
    int y = rand() % col + 1;
    if (mine[x][y] == '0')
    {
      mine[x][y] = '1';
      count--;
    }
  }
}
int set_min_count(char mine[ROWS][COLS],int x,int y)
{
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';
}
void FindMine(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)
    {
      if (mine[x][y] == '1')
      {
        printf("很遗憾,你被炸死了\n");
        DisplayBoard(mine, row, col);
        break;  
      }
      else
      {
        int n = set_min_count(mine, x, y);
        show[x][y] = n + '0';
        DisplayBoard(show, row, col);
        win++;
      }
    }
    else
    {
      printf("输入坐标非法,无法排雷,请重新输入\n");
    }
  }
  if (win == row * col - EASY_COUNT)
  {
    printf("恭喜你,排雷成功!\n");
    DisplayBoard(mine, row, col);
  }
}
void game()
{
  //创建数组
  char mine[ROWS][COLS] = { 0 };
  char show[ROWS][COLS] = { 0 };
  //初始化数组  mine
  InitBoard(mine,ROWS,COLS,'0');
  //初始化数组  show
  InitBoard(show, ROWS, COLS, '*');
  //打印棋盘
  //DisplayBoard(mine, ROW, COL);
  DisplayBoard(show, ROW, COL);
  //布置雷
  Set_mine(mine, ROW, COL);
  //DisplayBoard(mine, ROW, COL);
  //DisplayBoard(show, ROW, COL);
  //排雷
  FindMine(mine, show, ROW, COL);
  DisplayBoard(show, ROW, COL);
}


今天的内容就到这里了哈!!!

要是认为作者有一点帮助你的话!

就来一个点赞加关注吧!!!当然订阅是更是求之不得!

最后的最后谢谢大家的观看!!!

你们的支持是作者写作的最大动力!!!

下期见哈!!!

相关文章
|
C语言
扫雷游戏(用C语言实现)
扫雷游戏(用C语言实现)
258 0
|
11月前
|
定位技术 C语言
c语言及数据结构实现简单贪吃蛇小游戏
c语言及数据结构实现简单贪吃蛇小游戏
|
存储 NoSQL 编译器
【C语言】指针的神秘探险:从入门到精通的奇幻之旅 !
指针是一个变量,它存储另一个变量的内存地址。换句话说,指针“指向”存储在内存中的某个数据。
461 7
【C语言】指针的神秘探险:从入门到精通的奇幻之旅 !
|
存储 编译器 C语言
【C语言程序设计——入门】C语言入门与基础语法(头歌实践教学平台习题)【合集】
本文档介绍了C语言环境配置和编程任务,主要内容包括: - **C语言环境配置**:详细讲解了在Windows系统上配置C语言开发环境的步骤。 - **第1关:程序改错**:包含任务描述、相关知识(如头文件引用、基本语法规则)、编程要求、测试说明及通关代码。 - **第2关:scanf函数**:涉及`scanf`和`printf`函数的格式与使用方法,提供编程要求、测试说明及通关代码。 文档结构清晰,涵盖从环境搭建到具体编程任务的完整流程,适合初学者学习和实践。
407 4
|
C语言
【C语言程序设计——入门】基本数据类型与表达式(头歌实践教学平台习题)【合集】
这份文档详细介绍了编程任务的多个关卡,涵盖C语言的基础知识和应用。主要内容包括: 1. **目录**:列出所有关卡,如`print函数操作`、`转义字符使用`、`数的向上取整`等。 2. **各关卡的任务描述**:明确每关的具体编程任务,例如使用`printf`函数输出特定字符串、实现向上取整功能等。 3. **相关知识**:提供完成任务所需的背景知识,如格式化输出、算术运算符、关系运算符等。 4. **编程要求**:给出具体的代码编写提示。 5. **测试说明**:包含预期输入输出,帮助验证程序正确性。 6. 文档通过逐步引导学习者掌握C语言的基本语法和常用函数,适合初学者练习编程技能。
322 1
|
C语言 C++
【C语言】编写“猜数字“小游戏
【C语言】编写“猜数字“小游戏
239 1
|
C语言
初学者指南:使用C语言实现简易版扫雷游戏
初学者指南:使用C语言实现简易版扫雷游戏
210 0
|
C语言
回溯入门题,数据所有排列方式(c语言)
回溯入门题,数据所有排列方式(c语言)
166 0
|
C语言
C语言扫雷游戏(详解)
C语言扫雷游戏(详解)
124 0
|
4月前
|
存储 C语言
`scanf`是C语言中用于按格式读取标准输入的函数
`scanf`是C语言中用于按格式读取标准输入的函数,通过格式字符串解析输入并存入指定变量。需注意输入格式严格匹配,并建议检查返回值以确保读取成功,提升程序健壮性。
1109 0