目录

扫雷游戏::

game.h

game.c

1.打印菜单

2.初始化雷区

3.打印雷区

4.布置雷

5.排查雷

6.统计排查坐标周围雷的个数

test.c


扫雷游戏::

game.h

#pragma once
#include<stdio.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);
void DisplayBoard(char board[ROWS][COLS], int row, int col);
void SetMine(char board[ROWS][COLS], int row, int col);
void FindMine(char mine[ROWS][COLS], char show[ROWS][COLS], int row, int col);

game.c

1.打印菜单

#define _CRT_SECURE_NO_WARNINGS
#include"game.h"
void menu()
{printf("*******************************\n");printf("********   1.play   ***********\n");printf("********   0.exit   ***********\n");printf("*******************************\n");
}
int main()
{int input = 0;do{menu();printf("请选择:->");scanf("%d", &input);switch (input){case 1:game();break;case 0:printf("退出游戏\n");break;default:printf("选择错误\n");break;}} while (input);return 0;
}

2.初始化雷区

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;}}
}

3.打印雷区

void DisplayBoard(char board[ROWS][COLS], int row, int col)
{int i = 0;int j = 0;printf("---------------扫雷游戏------------\n");for (j = 0; j <= col; j++){printf("%d ", j);}printf("\n");for (i = 1; i <= row; i++){printf("%d ", i);for (j = 1; j <= col; j++){printf("%c ", board[i][j]);}printf("\n");}printf("---------------扫雷游戏------------\n");}

4.布置雷

void SetMine(char board[ROWS][COLS], int row, int col)
{int count = EASY_COUNT;while (count){int x = rand() % row + 1;int y = rand() % col + 1;if (board[x][y] == '0'){board[x][y] = '1';count--;}}
}

5.排查雷

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 (show[x][y] != '*'){printf("该坐标被排查过了,不能重复排查\n");}else{如果是雷if (mine[x][y] == '1'){printf("很遗憾,你被炸死了!\n");DisplayBoard(mine, ROW, COL);break;}如果不是雷else{win++;统计mine数组中x,y坐标周围有几个雷int count = get_mine_count(mine, x, y);show[x][y] = count + '0';//转换成数字字符DisplayBoard(show, ROW, COL);}}}else{printf("输入坐标非法,请重新输入!\n");}}if (win == row * col - EASY_COUNT){printf("恭喜你,排雷成功\n");DisplayBoard(mine, ROW, COL);}
}

6.统计排查坐标周围雷的个数

int get_mine_count(char board[ROWS][COLS], int x, int y)
{return (board[x - 1][y] +board[x - 1][y - 1] +board[x][y - 1] +board[x+1][y-1]+board[x + 1][y] +board[x + 1][y + 1] +board[x][y + 1] +board[x - 1][y + 1] - 8 * '0');
}

test.c

#define _CRT_SECURE_NO_WARNINGS
#include"game.h"
void menu()
{printf("*******************************\n");printf("********   1.play   ***********\n");printf("********   0.exit   ***********\n");printf("*******************************\n");
}
void game()
{存放布置好的雷的信息char mine[ROWS][COLS] = { 0 };存放排查出的雷的信息char show[ROWS][COLS] = { 0 };初始化数组的内容为指定内容mine 数组在没有布置雷的时候,都是'0'InitBoard(mine, ROWS, COLS,'0');show 数组在没有排查雷的时候,都是'*'InitBoard(show, ROWS, COLS,'*');//DisplayBoard(mine, ROW, COL);//DisplayBoard(show, ROW, COL);设置雷SetMine(mine,ROW,COL);DisplayBoard(show, ROW, COL);//DisplayBoard(mine, ROW, COL);排查雷FindMine(mine, show, ROW, COL);
}
int main()
{设置随机数的生成起点srand((unsigned int)time(NULL));int input = 0;do{menu();printf("请选择:->");scanf("%d", &input);switch (input){case 1:game();break;case 0:printf("退出游戏\n");break;default:printf("选择错误\n");break;}} while (input);return 0;
}

[C语言]扫雷游戏(Mine Sweeper)相关推荐

  1. c语言扫雷源代码简单版,C语言扫雷游戏源代码

    C语言扫雷游戏源代码 /* 模拟扫雷游戏 */ #include #include #include #include #include #include #include union REGS re ...

  2. c语言扫雷游戏构成原理,扫雷游戏的C语言实现

    在学习C语言初期,我们可以找一些平常玩的游戏进行简单的C语言实现.今天就和大家分享一下关于windows中扫雷游戏的实现. 在正式写代码前,简单说一下对这个游戏的分析: 1.先提示的应该是一个简单的m ...

  3. C语言扫雷游戏(简易版)

    前言 经过学习数组.函数.循环语句.选择语句等C语言的一些基础知识后,我想借助编写扫雷小游戏来对所学知识进行一个巩固.游戏只会实现一些基本的功能,展开.标记雷.取消雷等不实现(还不会). 1.游戏编写 ...

  4. C语言 —— 扫雷游戏

    ▏扫雷是款极其经典的游戏,以下就来描述用C语言实现初级扫雷游戏(9*9)的实现  ▏ 目录 写这个游戏的思路 玩法介绍 思考过程 实现过程 主函数 游戏函数 游戏函数的头文件  写这个游戏的思路  玩 ...

  5. c语言扫雷游戏代码_C语言游戏详解---扫雷游戏

    扫雷游戏大家应该都不陌生,一个扫雷游戏要满足的基本要求是: 1. 第一次扫的位置不能是雷 2. 每展开一个位置要显示该位置周围雷的个数 3. 若该位置周围没雷,要把周围展开 该游戏的界面是10X10的 ...

  6. c语言扫雷游戏计时功能_C语言实现扫雷游戏(可以自动展开)

    前言 本篇博客主要介绍如何使用C语言实现扫雷游戏. 一.游戏规则 在一张ROW行COL列的地图上存在MINE_COUNT个地雷.玩家输入坐标翻开格子,若没有踩雷,则计算此格子周围8个格子的地雷总数,并 ...

  7. c语言扫雷游戏计时功能_做游戏,学编程(C语言) 20 扫雷

    应 @姑娘的衣扣 同学的要求,分享16级同学大一上学期实现的扫雷游戏.分步骤代码.可执行程序.录屏效果可以从百度网盘下载:http://pan.baidu.com/s/1gf6AHKv 开局画面: 胜 ...

  8. c语言扫雷游戏策划文档,扫雷游戏程序设计课设计报告.doc

    扫雷游戏程序设计课设计报告 课 程 设 计 扫雷游戏程序设计 2013 年 11 月 5 日 设计题目扫雷游戏程序设计成绩课 程 设 计 主 要 内 容 扫雷游戏是Windows操作系统自带的一款小游 ...

  9. 【C语言扫雷游戏详解及如何实现递归展开】

    提示:全文已采用物理深色模式,请放心观看 文章目录 一.整体框架 1.设计思路 2.实现细节 二.主要函数 1.打印棋盘 2.递归展开 三.其他函数 一.整体框架 1.设计思路 基础难度的扫雷游戏含有 ...

最新文章

  1. 明天又回LOVO了!
  2. 语音识别可以直接编码吗
  3. 妙招避免网络IP地址被非法修改
  4. Linux下tomcat安装及优化
  5. AtCoder AGC009E Eternal Average (DP)
  6. [入门]理想的小白程序员成长曲线
  7. 【C】KoobooJson在asp.net core中的使用
  8. ubuntu安装mysql_Ubuntu18.04下安装MySQL
  9. 一分钟了解阿里云产品:RDS概述
  10. vba数组dim_NDArray — —一个基于Java的N-Dim数组工具包
  11. 那些年开发中遇到的坑。。。
  12. 争取来的酷狗前端面试 共勉之
  13. 实验记录一 初步接触cortex-M3
  14. Python编写微信打飞机小游戏(一)
  15. python层次分析法案例_在R语言中使用层次分析法-案例1
  16. 用php表示掷骰子两次比大小,[宜配屋]听图阁
  17. 15.Elasticsearch 7.15 Query DSL 之 Wildcard查询、Regexp查询
  18. ZStack基于华芯通打造ARM国产云平台 助力云上贵州多项应用
  19. 华为任正非:实事求是的科研方向与二十年的艰苦努力
  20. 《SolidWorks 2014中文版机械设计从入门到精通》——1.4 操作环境设置

热门文章

  1. 快速学习nodejs系列:微信公众号开发一之环境准备
  2. 4大私域流量体系(个人号、公众号、社群和小程序)全方面价值对比:私域流量,企业保命之本爆发之源!...
  3. 鸿蒙应用开发培训笔记01:HarmonyOS介绍
  4. LPMS-CU2 IMU在 Nvidia Xavier安装配置
  5. Day25|组合板子|216. 组合总和 III| 17. 电话号码的字母组合
  6. HTML+CSS实战(哈罗单车首页)
  7. 运动用什么听歌好,推荐运动骨传导耳机
  8. 机器学习基石2-Learning to Answer Yes-No
  9. 电脑为何连不上手机开的热点
  10. ​2022年个税专项附加扣除,开始确认,​拿到软考证书即可抵扣