一.基本实现功能

1.建立一个游戏菜单

2.创建游戏盘,一个埋雷,一个显示。

3.打印游戏盘。

4.翻开坐标如若没踩到雷显示周围一圈8个有几个雷。

5.判断胜利 翻开的格子数等于没埋雷的个数。

二.源代码展示

1.头文件  minesweep.h

#pragma once
#include <stdio.h>
#include <Windows.h>
#include <string.h>
#include <time.h>
#include <stdlib.h>
#define _CRT_SECURE_NO_WARNINGS
#define ROW 12
#define COL 12
#define NUM 10
#define BOOM '1'
void Game();
int Login();

2.游戏逻辑 game.c

#include "minesweep.h"
void Menu() {printf("*------------------*\n");printf("|    1.开始游戏    |\n");printf("|    2.退出游戏    |\n");printf("*------------------*\n");printf("请输入你的选择:");
}
int main()
{int flag = 0;int sclect = 0;srand((unsigned long)time(NULL));Menu();while (!flag) {scanf_s("%d", &sclect);switch (sclect) {case 1:Game();break;case 2:flag = 1;break;default:printf("你输入的数据不合法,请重新输入!");break;}}printf("下次再来玩吧!再见!");return 0;
}

3.实现函数 mysweep.c

#include "minesweep.h"
void SetBoom(char board[][COL],int row,int col) {//埋雷int i = 0;while (i < NUM) {int _x = rand() % 10 + 1;                //我们的棋盘是10*10 那就模10+1 xy 对应放雷int _y = rand() % 10 + 1;if (board[_x][_y] == BOOM) {             //可能随机是重复那就不放了continue;}board[_x][_y] = BOOM;i++;}
}void Showboard(char board[][COL], int row, int col) {//棋盘的打印printf("     ");for (int i = 1; i < col - 1; i++){printf("%d ", i);}printf("\n");for (int j = 1; j < row - 1; j++){printf("%2d  ", j);printf("|");for (int k = 1; k < col - 1; k++){printf("%c|", board[j][k]);}printf("\n");}printf("\n");
}int CountSweeps(char board[][COL], int x, int y) {  //我们存的是字符数组哦 return board[x - 1][y - 1] + board[x - 1][y] + \board[x - 1][y + 1] + board[x][y - 1] + \board[x][y + 1] + board[x + 1][y - 1] + \board[x + 1][y] + board[x + 1][y + 1] - 8 * '0';
}void Game() {char show_board[ROW][COL];char sweep_board[ROW][COL];int clear = 0;int sum = (ROW - 2) * (COL - 2) - NUM;memset(show_board, '*', sizeof(show_board));memset(sweep_board, '0', sizeof(sweep_board));SetBoom(sweep_board, ROW, COL);while (1) {int x = 0;int y = 0;system("cls");Showboard(show_board,ROW,COL);printf("请输入你要翻开的坐标:");scanf_s("%d %d", &x, &y);if (!(x >= 1 && x <= ROW - 2 && y >= 1 && y <= COL - 2)) {printf("你输入的数据不合法!请重新输入!");}if (show_board[x][y] != '*') {printf("扫雷的位置已经被排除!\n");continue;}if (sweep_board[x][y] == '1') {printf("对不起,你被炸死了!\n");break;}else {int count = CountSweeps(sweep_board,x,y);//翻开没有被炸死而且合法那就根据判断胜利因数咱就空白++show_board[x][y] = count + '0';clear++;}if (clear >= sum) {                          //++=就是原本设置除雷剩下的刚好相等就胜利printf("恭喜你,你赢了!\n");break;}}
}

三.小结

这次的扫雷还是很初阶的没有图形操作界面 而且和我们老xp上面的扫雷不一样很多功能还没有实现比如插旗排雷 还有点开一个·周围还能展开很多格子,还是有待提高希望各路大神前来指证谢谢!!!

C语言小项目 扫雷游戏相关推荐

  1. C语言小项目 -- 扫雷游戏完整代码(递归展开 + 选择标记)

    大家好,今天我们将一起用C语言实现一个经典小游戏 – 扫雷,Let is go ! 文章目录

  2. C语言入门项目——扫雷游戏(ege图形库+codeblocks)

    扫雷游戏适合C练手,会C基本语法就可以尝试.需要导入ege图形库(文章后半部分写了ege如何导入codeblocks,以及我用到的ege函数) 一.先介绍如何将ege图形库导入codeblocks: ...

  3. c语言为什么要建项目,一个C语言小项目为什么都说牛逼

    原标题:一个C语言小项目为什么都说牛逼 意在鼓励C语言学者.更有兴趣,学习更富有创业和乐趣! 推荐加学习交流群:658807522 可以在一起学习交流,既是参赛选手,又是学者,也可以先学习再参赛,反正 ...

  4. C语言小项目——走迷宫

    C语言小项目--走迷宫 设计方向: 1.定义二维字符数组作为迷宫 2.定义变量记录老鼠的位置 3.判定移动后位置的变化 4.记录游戏时长 5.判定到达终点的条件 总体设计: 1.用不同字符代表墙.老鼠 ...

  5. Java语言实现的扫雷游戏(一)

    Java类库中提供了用于GUI的swing开发工具包,我们可以利用swing设计出一些简单的经典小游戏,如扫雷,推箱子,俄罗斯方块等.接下来我就简单分享一下用Java设计扫雷游戏的思路与过程. 首先, ...

  6. C语言小项目之“究极无敌螺旋丸极爆炸狂拽炫酷五彩棒的”通讯录之*派小猩*作品

    C语言小项目之"究极无敌螺旋丸极爆炸狂拽炫酷五彩棒的"通讯录之派小猩作品 项目概述 基于C语言开发一个多功能的通讯录 功能目录 1.增加 2.删除 3.查找 4.修改 5.显示 6 ...

  7. c语言小项目(排雷游戏实现)

    文章目录 1.了解项目搭建 2.了解扫雷游戏 3.游戏主逻辑 4.玩游戏实现逻辑 4.1 前提 4.1.1 棋盘越界问题的解决 4.1.2 置雷棋盘和排雷棋盘的设置 4.2 玩游戏主逻辑 4.3 游戏 ...

  8. 【C语言】实现扫雷游戏(详解篇)

    大家好,我是Abert. 这篇文章将分享利用C语言实现扫雷的全过程及其讲解. 文章目录 1.进行程序环境的配置 2.各种功能的实现及逻辑关系的整理 2.1 创建游戏初始界面(进入\退出 游戏) 2.2 ...

  9. C语言实现简单扫雷游戏

    前言: 相信大家对于扫雷都不陌生,但如果用C语言该如何实现呢? 原理介绍: 首先我们得了解扫雷游戏的原理,在一个格子数长宽相同的大正方形中随机布置雷,当我们点开一个小方格时如果此小格不是雷将显示以此方 ...

最新文章

  1. 如何用JavaScript手动实现一个栈
  2. SAP云平台上应用的HTTPS证书
  3. 习题1083字符转换
  4. bootstrap table无法服务器分页_layui分页的大坑,RequestPayload和FormData
  5. MongoDB 事务,复制和分片的关系
  6. postgresql基本使用(一)
  7. ArcGIS 导出点图层的中的XY坐标
  8. flutter initializing gradle终极解决方案
  9. html微数据,HTML5之 Microdata微数据
  10. 移动端向上滑动整个屏幕
  11. Win10 专业版激活!
  12. 用javascript实现一个打乱文字小程序
  13. Hexo添加Icarus主题
  14. 完整的OpenDDS的发布订阅编写及源码(Windows)
  15. 电脑现在找不到驱动器,设备管理器显示DVD/CD-ROM驱动器是黄色感叹号
  16. arctanx麦克劳林公式推导过程_实用反三角函数运算公式
  17. 京东购物车(html+css+js)
  18. 【R语言】dplyr包
  19. 单独使用elementui_Vue在单独引入js文件中使用ElementUI的组件
  20. 【视频分类】3D-ResNets-PyTorch复现

热门文章

  1. 暗黑修仙 页游 架设教程 单机 自玩 一键端
  2. 什么是Transformer
  3. Java中的对象类型像引用还是指针,谁是谁非?
  4. 国际电话区号--各国或地区电话国际区号对照表
  5. UVA 1455 Kingdom 线段树+并查集
  6. 东京工业大学 计算机 大学院,2020年东京工业大学计算机科学硕士申请条件
  7. 大学生简单个人静态HTML网页设计作品 DIV布局个人介绍网页模板代码 DW学生个人网站制作成品下载 HTML5期末大作业
  8. 微搭低代码入门教程01
  9. java继承链中方法调用优先级.顺序:this.show(object)super.show(object)this.show((super)object)super.show((super))
  10. ANSYS|workbench输出梁的剪力图和弯矩图