C语言简单的键盘玩扫雷小游戏(完结)
1:这次我们会将前面的代码进行整合,和整理,最终使我们的程序可以有效的运行起来。
【1】初始化函数。
void GameInit()
{
//随机数种子
srand((unsigned int)time(NULL));
//数组初始化
for(int i = 0;i < ROW+2;i++)
{
for(int j = 0;j < COL+2;j++)
{
map[i][j] = 0;
}
}
//布雷 -1表示雷
int n = 0;
while(n<NUM)
{
int r = rand() % ROW + 1;//1--ROW
int c = rand() % COL + 1;//1--C0L
if(map[r][c] == 0)
{
map[r][c] = -1;
n++;
}
}
//跟据类的分布 填充其他部位雷的数据
for(int i = 1;i <= ROW;i++)
{
for(int j = 1;j <= COL;j++)
{// 遍历二维数组
if(map[i][j] != -1)//找到不为雷的元素
{
//遍历九宫格
for(int m=i-1;m<=i+1;m++)
{
for(int n=j-1;n<=j+1;n++)
{
if(map[m][n]==-1)
{
map[i][j]++;
}
}
}
}
}
}
}
【2】加密。
void GameDraw()
{
//加密
/*
雷-1-----------19
空0------------20
1---------------21
2---------------22
3---------------23
4---------------24
5---------------25
6---------------26
大于等于19的
*/
for(int i = 1;i <= ROW;i++)
{
for(int j = 1;j <= COL;j++)
{
map[i][j]+=20;
}
}
PrintPlay();
}
【3】打印扫雷的界面。
void PrintPlay()
{
//打印
int i,j;
for(i = 1;i <= ROW;i++)
{
for(j = 1;j <= COL;j++)
{
if(map[i][j]>=19)
{
printf(" *");
}
else
{
printf("%2d",map[i][j]);
}
}
printf("\n");
}
}
【4】用户玩输入坐标。
//用户玩输入坐标。
void GameUser()
{
int z;
while(z)
{
int x,y;
printf("请输入坐标:\n");
scanf("%d %d",&x,&y);
if(x<=10&&x>=1&&y<=10&&y>=1)
{
//解密
/*
雷-1-----------19
空0------------20
1---------------21
2---------------22
3---------------23
4---------------24
5---------------25
6---------------26
1 1 1
1 1 1
1 1 1
大于等于19的
*/
if(map[x][y]<19)
{
printf("已翻开。\n");
}
else
{
switch(map[x][y])
{
case 19:
// 游戏结束
map[x][y]-=20;
PrintPlay();//打印
printf("你踩到雷了19!\n");
z=0;
//跳转到结束
break;
case 20:
//空
//解密
//map[x][y]-=20;
//空周围为空的叶打印出来
point(x,y);
PrintPlay();//打印
break;
case 21:
case 22:
case 23:
case 24:
case 25:
case 26:
case 27:
case 28:
//周围有雷
//解密输出就可以
map[x][y]-=20;//解密
PrintPlay();//打印
break;
default :
break;
}
}
}
else
{
printf("您输入错误!");
}
}
}
【5】:打印周围为空的地方
//打印周周围为空的地方void point(int x,int y)
{
//遍历九宫格
for(int m=x-1;m<=x+1;m++)
{
for(int n=y-1;n<=y+1;n++)
{
if(map[m][n]==20)
{
map[m][n]-=20;
point(m,n);
}
}
}
}
【6】主函数。
void main()
{
printf("欢迎来到Q的编程世界:\n");
//初始化函数
GameInit();
//绘制函数 打印二维数组中所有的元素
GameDraw();
//用户玩输入坐标
GameUser();
system("pause");
}
【7】:最后把我们的代码,整合一下就得到如下的,C语言简单的键盘玩扫雷小游戏的完整代码:
/*
Q的编程世界
*/
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
#define ROW 10//行
#define COL 10//列
#define NUM 10//雷的个数
int map[ROW+2][COL+2];
//初始化函数
void GameInit()
{
//随机数种子
srand((unsigned int)time(NULL));
//数组初始化
for(int i = 0;i < ROW+2;i++)
{
for(int j = 0;j < COL+2;j++)
{
map[i][j] = 0;
}
}
//布雷 -1表示雷
int n = 0;
while(n<NUM)
{
int r = rand() % ROW + 1;//1--ROW
int c = rand() % COL + 1;//1--C0L
if(map[r][c] == 0)
{
map[r][c] = -1;
n++;
}
}
//跟据类的分布 填充其他部位雷的数据
for(int i = 1;i <= ROW;i++)
{
for(int j = 1;j <= COL;j++)
{// 遍历二维数组
if(map[i][j] != -1)//找到不为雷的元素
{
//遍历九宫格
for(int m=i-1;m<=i+1;m++)
{
for(int n=j-1;n<=j+1;n++)
{
if(map[m][n]==-1)
{
map[i][j]++;
}
}
}
}
}
}
}
void PrintPlay();
//绘制函数 打印二维数组中所有的元素
void GameDraw()
{
//加密
for(int i = 1;i <= ROW;i++)
{
for(int j = 1;j <= COL;j++)
{
map[i][j]+=20;
}
}
PrintPlay();
}
void PrintPlay()
{
//打印
int i,j;
for(i = 1;i <= ROW;i++)
{
for(j = 1;j <= COL;j++)
{
if(map[i][j]>=19)
{
printf(" *");
}
else
{
printf("%2d",map[i][j]);
}
}
printf("\n");
}
}
//打印周圍為空的
void point(int x,int y)
{
//遍历九宫格
for(int m=x-1;m<=x+1;m++)
{
for(int n=y-1;n<=y+1;n++)
{
if(map[m][n]==20)
{
map[m][n]-=20;
point(m,n);
}
}
}
}
//用户玩输入坐标
void GameUser()
{
int z;
while(z)
{
int x,y;
printf("请输入坐标:\n");
scanf("%d %d",&x,&y);
if(x<=10&&x>=1&&y<=10&&y>=1)
{
//解密
if(map[x][y]<19)
{
printf("已翻开。\n");
}
else
{
switch(map[x][y])
{
case 19:
// 游戏结束
map[x][y]-=20;
PrintPlay();//打印
printf("你踩到雷了19!\n");
z=0;
//跳转到结束
break;
case 20:
//空
//解密
//map[x][y]-=20;
//空周围为空的叶打印出来
point(x,y);
PrintPlay();//打印
break;
case 21:
case 22:
case 23:
case 24:
case 25:
case 26:
case 27:
case 28:
//周围有雷
//解密输出就可以
map[x][y]-=20;//解密
PrintPlay();//打印
break;
default :
break;
}
}
}
else
{
printf("您输入错误!");
}
}
}
void main()
{
printf("欢迎来到Q的编程世界:\n");
//初始化函数
GameInit();
//绘制函数 打印二维数组中所有的元素
GameDraw();
//用户玩输入坐标
GameUser();
system("pause");
}
下面是运行图片:
好嘞,键盘玩扫雷到这里就完结了,拜拜,让我们下次再见吧!!!
C语言简单的键盘玩扫雷小游戏(完结)相关推荐
- 在SAP GUI中玩扫雷小游戏
在GUI中玩扫雷小游戏 ABAP代码: *&---------------------------------------------------------------------* *&a ...
- C语言初学者复刻经典扫雷小游戏(图形界面,非黑白窗口)(含源码)
注:除计时器和剩余雷数显示外,其他功能完美还原. 目录 一.程序演示 二.程序信息 1.基础信息 2.前言 3.所需文件 三.代码解析 1.头文件 2.变量声明 3.随机生成雷 4.生成雷位置矩阵 5 ...
- 【C语言实现】全面的扫雷小游戏(包括空白展开、标记等)具体步骤加代码分析
文章目录 前言 一.问题描述 二.基本框架构思 三.具体实现 1.扫雷接口实现 2.地图初始化 3.设置雷 4.显示界面 5.开始扫雷 6.计算周围雷的数量 7.排查雷 8.空白展开 9.标记雷 10 ...
- 井字棋小游戏c语言简单编码,井字棋小游戏(C语言)
1 #include 2 #include 3 #include 4 #include 5 #include 6 7 void drawBoard(char *board) //绘制棋盘 8 {9 p ...
- 用C语言实现一个简单的扫雷小游戏(附全代码及教程)
本文实例为大家分享了C语言实现扫雷游戏的具体代码,供大家参考,具体内容如下: 首先,创建一个text.c文件: 编写主函数: int main() {test();return 0; } 定义test ...
- C语言实现扫雷小游戏 纯小白 非黑窗口
C语言实现一个普通的扫雷小游戏 纯小白所编(含代码非黑窗口!) 扫雷 主要功能 1.创建一个图形界面 2.了解扫雷游戏的原理 3.随机生成雷的位置 4.为整个数组加密,并在雷周围的位置加一 5.导入图 ...
- 用c语言实现扫雷小游戏。
相信小伙伴在学习c语言的时候想做一些小趣事,下面就是用c语言来实现一个扫雷小游戏,不过是简单的实现扫雷(只是通过数组的方式来实现),适合新手学习. 我用的是vs敲的这个代码,大家可以用vs运行(可能有 ...
- 【C语言】扫雷小游戏详解
[C语言]扫雷小游戏详解 前言: 还记得大明湖畔的夏雨荷,电脑课上的扫雷吗? ---------------------------是 他 吗--------------------------- 没 ...
- 使用C语言写一个扫雷小游戏
前言 相信扫雷游戏小伙伴们肯定都玩过吧,学习了C语言中的数组.函数等基础内容之后就可以自己写一个简易的扫雷小游戏了,今天就我写扫雷小游戏的过程及思路写一篇博客,希望大家看完我的博客能有所收获. 软件及 ...
最新文章
- 最新数据:一图看清全球393家独角兽公司
- Android之靠谱的把图片和视频插入手机系统相册
- 一文读懂 HMM 模型和 Viterbi 算法
- 吴恩达机器学习3-无监督学习
- 帮中国修长城前,英特尔还用AI追踪北极熊、保护鲸鱼
- idea的tomcat实现热部署遇到的问题
- C语言程序设计:图书管理系统(超详细有登录系统,附代码和实验报告)
- 长ping 命令,检测网络连接状态
- dstat 命令详解
- linux数学软件,使用这些Linux应用来征服你的数学学习
- vue解决跨域问题(Vue-CLI)
- Java 操作 Office:POI之word图片处理
- 一个网站直接跳转引起的一些思考
- linux vi回到末行模式,Linux vi/vim 的命令模式,,编辑模式,末行模式
- 手把手教你如何在广交会使用OBS直播丨汇信外贸软件
- ajax里的append,使用AJAX源和appendTo理解和实现jQuery自动完成
- 基金定投是什么?定投的特点?
- 步进电机和伺服电机优缺点
- 华为HCIE RS笔记-17以太网技术PPoE
- w3cshool之JavaScript对象_Date