本文实例为大家分享了C语言扫雷小游戏的具体实现代码,供大家参考,具体内容如下

一、分析游戏步骤:

具体步骤如图:

二、代码实现:

游戏步骤想好之后,就是用代码把步骤一步一步的实现。具体代码如下:

1、游戏主要实现: game.c

#define _CRT_SECURE_NO_WARNINGS 1

#include"game.h"

void game()

{

char mine[ROW + 2][COL + 2]; //记录地雷的数组

char show[ROW + 2][COL + 2]; //展示给玩家的数组

Init(mine, show, ROW + 2, COL + 2); //初始化

set_mine(mine, MINE_NUM); //布雷

//print_show(mine, ROW, COL); //打印布雷的棋盘

print_show(show, ROW, COL); //打印棋盘

int ret = -1; //用于游戏中判断是否是第一步

while (1) //玩家进行游戏

{

int x, y;

int num = -1;

printf("请输入坐标< x y >:\n");

scanf("%d%d", &x, &y);

if (x < 1 || x>10 || y < 1 || x>10)

{

printf("输入的坐标有误,请重新输入:\n");

}

else

{

if (ret == -1 && mine[x][y] == '1') //第一步踩雷

{

mine[x][y] = '0'; //除掉这个雷

set_mine(mine, 1); // 再布一颗雷

}

if (mine[x][y] == '0') //没有踩雷

{

ret = 0;

num = get_round_mine(mine, x, y);

if (num != 0)

{

show[x][y] = num + '0';

}

else //周围一圈都没有雷

{

open_show(mine, show, x, y); //展开函数 (连续展开)

}

print_show(show, ROW, COL); //打印棋盘

}

else // 踩雷了

{

printf("少侠,你踩到雷了!!!\n");

print_show(mine, ROW, COL); //打印棋盘

return;

}

}

if (Is_win(show))

{

printf("恭喜!!!您胜利啦!!!\n");

break;

}

}

}

void Init(char mine[ROW + 2][COL + 2], char show[ROW + 2][COL + 2], int row, int col)

{

memset(mine, '0', row*col * sizeof(mine[0][0]));

memset(show, '*', row*col * sizeof(show[0][0]));

}

void print_show(char show[ROW + 2][COL + 2], int row, int col) //打印棋盘

{

int i;

int j;

printf(" ");

for (i = 1; i <= col; i++)

{

printf("%2d", i);

}

printf("\n ");

for (i = 0; i < col; i++)

{

printf("--");

}

printf("\n");

for (i = 1; i <= row; i++)

{

printf("%2d|", i);

for (j = 1; j <= col; j++)

{

printf("%2c", show[i][j]);

}

printf("\n");

}

printf("\n");

}

void set_mine(char mine[ROW + 2][COL + 2], int mineNumber) //布雷

{

int x = -1;

int y = -1;

while (mineNumber)

{

x = rand() % ROW + 1;

y = rand() % COL + 1;

if (mine[x][y] == '0')

{

mine[x][y] = '1';

--mineNumber;

}

}

}

int get_round_mine(char mine[ROW + 2][COL + 2], int x, int y) //获取周围雷的个数;

{

return (mine[x - 1][y - 1]) + (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]) - 8 * '0';

}

void open_show(char mine[ROW + 2][COL + 2], char show[ROW + 2][COL + 2], int x, int y) //展开函数

{

if (x >= 1 && x <= 10 && y >= 1 && y <= 10 && (mine[x][y] != 1) && (show[x][y] == '*'))

{

if (get_round_mine(mine, x, y) > 0)

{

show[x][y] = get_round_mine(mine, x, y) + '0';

}

else

{

show[x][y] = ' ';

open_show(mine, show, x - 1, y - 1);

open_show(mine, show, x - 1, y);

open_show(mine, show, x - 1, y + 1);

open_show(mine, show, x, y + 1);

open_show(mine, show, x, y - 1);

open_show(mine, show, x + 1, y - 1);

open_show(mine, show, x + 1, y);

open_show(mine, show, x + 1, y + 1);

}

}

}

int Is_win(char show[ROW + 2][COL + 2]) //判赢

{

int count = MINE_NUM;

int i;

int j;

for (i = 1; i <= ROW; i++)

{

for (j = 1; j <= ROW; j++)

{

if (show[i][j] == '*')

{

count--;

}

}

}

if (count == 0) //雷全部找到

{

return 1;

}

else

{

return 0;

}

}

过7游戏c语言,C语言实现扫雷小游戏相关推荐

  1. C语言大一课设 扫雷小游戏

    目录 [题    目]扫雷小游戏 [项目简介] [总体功能结构流程图] 登录和注册流程图: 打印棋盘流程图: 计算周围雷的个数流程图: test.c game.h game.c 运行结果 (1)注册运 ...

  2. c语言小游戏 精简_C语言开发简易版扫雷小游戏

    C 语言开发简易版扫雷小游戏 本文给大家分享的是一个使用 C 语言开发的命令行下的简易版扫雷小游戏, 本身没有什么太 多的技术含量, 只不过是笔者的处女作, 所以还是推荐给大家, 希望对大家学习 C ...

  3. C语言实现扫雷小游戏 纯小白 非黑窗口

    C语言实现一个普通的扫雷小游戏 纯小白所编(含代码非黑窗口!) 扫雷 主要功能 1.创建一个图形界面 2.了解扫雷游戏的原理 3.随机生成雷的位置 4.为整个数组加密,并在雷周围的位置加一 5.导入图 ...

  4. 用c语言实现扫雷小游戏。

    相信小伙伴在学习c语言的时候想做一些小趣事,下面就是用c语言来实现一个扫雷小游戏,不过是简单的实现扫雷(只是通过数组的方式来实现),适合新手学习. 我用的是vs敲的这个代码,大家可以用vs运行(可能有 ...

  5. ChatGPT实现用C语言写一个扫雷小游戏

    前几天我们利用 ChatGPT实现用C语言写一个学生成绩管理系统 其过程用时不到30秒,速度惊人 今天又让ChatGPT用C语言写了一个扫雷小游戏,它的回答是:抱歉,我是AI语言模型,无法编写程序. ...

  6. html实现扫雷小游戏(附源码)

    文章目录 实现功能 1.扫雷设计 1.1 主界面 1.2 扫雷难度 1.3 附带功能 2.效果和源码 2.1 动态效果 2.2 源代码 源码下载 作者:xcLeigh 文章地址:https://blo ...

  7. 使用C语言写一个扫雷小游戏

    前言 相信扫雷游戏小伙伴们肯定都玩过吧,学习了C语言中的数组.函数等基础内容之后就可以自己写一个简易的扫雷小游戏了,今天就我写扫雷小游戏的过程及思路写一篇博客,希望大家看完我的博客能有所收获. 软件及 ...

  8. c语言自动按键脚本,C语言键盘控制走迷宫小游戏

    本文实例为大家分享了C语言键盘控制走迷宫小游戏的具体代码,供大家参考,具体内容如下 在看了<啊哈C语言>之后想写一个游戏demo 游戏的截图 首先是启动界面 然后是初始化 接下来是键盘操控 ...

  9. c语言设置一个选择数字的程序,C语言编一个数字益智小游戏

    程序功能及运行情况 设计的程序是一个数字益智游戏,旨在培养小朋友玩家的数学思维,提高玩家的数学能力.游戏共设有四个不同的小游戏,分别是一位数四则运算.两位数四则运算.找最值游戏.排序游戏.程序能实现产 ...

  10. C语言射击类打飞机小游戏

    使用c语言编写一个打飞机小游戏,使用键盘按键来进行游戏,击中敌机可获得积分,被敌机撞中死亡一次,每次游戏有3次机会. 在网上查询资料并且和同学讨论之后,对原来的代码有了一些改进, 改进:增加了颜色函数 ...

最新文章

  1. jQuery Pagination分页插件--无刷新
  2. Ubuntu14.04安装nvidia-docker2
  3. shell脚本逻辑判断,文件目录属性判断,if,case用法
  4. php 读取 linux 文件,PHP读取大文件,linux读取日志
  5. 安卓java模拟器_用大白话告诉你:Java 后端到底是在做什么?
  6. 企业形象广告的几个突破要点
  7. 前端学习(2001)vue之电商管理系统电商系统之获取商品分类数据
  8. 【Flink】Flink 多并行度下的 watermark触发机制
  9. 删除MyEclipse 6.5.1自带的Maven4MyEclipse
  10. 机器学习 - 支持向量机
  11. Objective-C中ORM的运用:实体对象和字典的相互自动转换
  12. 清华大学陈渝老师操作系统课程笔记整理
  13. 贝叶斯网络经典matlab源代码解析
  14. STM32使用M/T法检测单路脉冲
  15. 【Vue】基础系列(八)数据绑定以及姓名案例的三种写法
  16. 尚硅谷 硅谷外卖_关于多样性,硅谷未能想到与众不同
  17. SAP S4 会计科目表的设计
  18. C语言怎么才能让末尾没有多余的空格_C语言干货分享
  19. 浙江小学python教材_PPT、H5、Python、大数据……浙江中小学新教材9月投用!
  20. ARM学习之基本概念

热门文章

  1. win10网络计算机删除,手把手教你彻底删除win10系统自带的微软拼音输入法-网络教程与技术 -亦是美网络...
  2. rm -rf —— 删库跑路教程详解
  3. 布莱克曼哈尔窗matlab,基于matlab的布莱克曼窗函数法设计的低通滤波器
  4. mysql服务什么意思_mysql数据库服务是什么意思
  5. 矩阵知识:线性变换、相似矩阵、对角矩阵、逆矩阵
  6. Mysql-explain-Impossible WHERE noticed after reading const tables
  7. 1matlab像素值及统计
  8. 概率论复习笔记一——伯努利实验及相关的概率分布
  9. 现在国内程序员的工资是什么行情?
  10. 职高计算机班主任工作计划,教学工作计划:高职班主任工作计划