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

主函数:main.c

#include "game.h"

void Menu()

{

printf("##########################\n");

printf("##1.play 0.exit##########\n");

printf("##########################\n");

printf("## Please Enter select! ##\n");

}

int main()

{

Menu();

srand((unsigned int)time(NULL));

int quit = 0;

while (!quit)

{

int select = 0;

printf("请输入你的选择:\n");

scanf("%d", &select);

switch (select)

{

case 1:

game();

break;

case 2:

quit = 1;

break;

default :

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

break;

}

}

printf("Bye Bye!\n");

system("pause");

return 0;

}

子函数:game.c

#include "game.h"

void game()

{

char mine[ROWS][COLS] = { 0 };

char show[ROWS][COLS] = { 0 };

memset(mine, '0', sizeof(mine));//初始化数组置为0

memset(show, '*', sizeof(show));//初始化数组置为*

int no_y, no_x;

set_mine(mine,ROWS,COLS,&no_x,&no_y);//布雷 ‘1'表示雷

int x = 0;

int y = 0;

int time = 100 - NUM;

while (time > 0)

{

system("cls");//清屏

Show(show, ROWS, COLS);//打印 棋盘

printf("请输入坐标:\n");

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

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

{

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

continue;

}

if (show[x][y] != '*')

{

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

continue;

}

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

{

if (time == 80)//如果第一次有雷,用一个没雷的与这个交换

{

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

mine[no_y][no_y] = '1';

}

else

{

printf("game over!\n");

Show(mine, ROWS, COLS);

break;

}

}

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

Expand(mine, show, x, y);

time--;

}

}

void set_mine(char mine[ROWS][COLS],int col,int row,int *no_x,int *no_y)//声明布雷函数

{

int count = NUM;//设置计数器,统计布雷的个数

while (count > 0)

{

int x = rand() % (col-2) + 1;

int y = rand() % (col-2) + 1;

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

{

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

count--;

}

}

for (int i = 1; i <= 10; i++)

{

for (int j = 1; i <= 10; j++)

{

if (mine[i][j] == '0')

{

no_x = i;

no_y = j;

return;

}

}

}

}

void Show(char mine[ROWS][COLS], int row, int col)//声明打印棋盘函数

{

int i = 0;

int j = 0;

printf(" ");

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

{

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

}

printf("\n");

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

{

printf("----");

}

printf("\n");

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

{

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

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

{

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

}

printf("\n");

for (int i = 1; i <= 11; i++)

{

printf("----");

}

printf("\n");

}

}

int get_mine_count(char mine[ROWS][COLS], int x, int y)//雷数统计

{

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

}

void Expand(char mine[ROWS][COLS], char show[ROWS][COLS], int x, int y)

{

if (x >= 1 && x <= 10 && y >= 1 && y <= 10)

{

if (get_mine_count(mine, x, y) + '0' == '0') //表示x,y周围没雷

{

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

if (show[x - 1][y - 1] == '*')

{

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

}

if (show[x - 1][y] == '*')

{

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

}

if (show[x - 1][y + 1] == '*')

{

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

}

if (show[x ][y - 1] == '*')

{

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

}

if (show[x][y + 1] == '*')

{

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

}

if (show[x + 1][y - 1] == '*')

{

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

}

if (show[x + 1][y] == '*')

{

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

}

if (show[x + 1][y + 1] == '*')

{

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

}

}

}

}

函数声明:game.h

#ifndef _GAME_H_

#define _GAME_H_

#include

#include

#pragma warning(disable:4996)

#include

#include

#define ROWS 12

#define COLS 12

#define NUM 20 //雷数

void game();

void set_mine(char mine[ROWS][COLS],int row, int col, int *no_x, int *no_y);

void Show(char mine[ROWS][COLS], int row, int col);

int get_mine_count(char mine[ROWS][COLS], int x, int y);

void Expand(char mine[ROWS][COLS], char show[ROWS][COLS], int x, int y);

#endif

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

c语言编写扫雷小游戏下载大全,C语言实现扫雷小游戏相关推荐

  1. python写五子棋游戏下载大全_用Python写五子棋游戏

    开端 开端 画棋盘 首先肯定是要画出棋盘来,用pygame画出一个 19 × 19 或 15 × 15 的棋盘并不是什么难事,这在之前的文章中已经多次用到,就不赘述了. 画棋子 需要说一下的是画棋子, ...

  2. python 外星人游戏下载大全_【Python】Python制作外星人入侵小游戏

    开发工具 Python版本:3.6.4 相关模块: pygame模块: 以及一些Python自带的模块. 相关文件 环境搭建 安装Python并添加到环境变量,pip安装需要的相关模块即可. 原理介绍 ...

  3. 简单c语语言游戏教案大全,大班语言活动教案大全简单趣味

    从小培养幼儿学说普通话的兴趣.同时家长应注意用规范的语言来与幼儿进行日常交谈. 以下是小编精心收集整理的幼儿园大班语言活动方案,下面小编就和大家分享,来欣赏一下吧. 幼儿园大班语言活动方案1 活动目标 ...

  4. python小游戏代码大全-Python实现打砖块小游戏代码实例

    这次用Python实现的是一个接球打砖块的小游戏,需要导入pygame模块,有以下两条经验总结: 1.多父类的继承2.碰撞检测的数学模型 知识点稍后再说,我们先看看游戏的效果和实现: 一.游戏效果 二 ...

  5. 诺基亚N95游戏下载大全

    最近买了个诺基亚N95手机,无聊的时候会玩些游戏,大家可能和我有同样的烦恼,就是不知道从哪儿下诺基亚N95的游戏,现在我就将我常下游戏的地址公布给大家,希望对大家有用 手游天下(中国免费手机游戏第一门 ...

  6. 如何用c语言编写发邮件程序,想学C语言发邮件程序?5分钟教会你:附送源码+教学!...

    关注<一碳科技>,获取更多知识! 前言 相信大家都有过被C语言网络编程所支配的恐惧吧?其实,小编在刚刚学习这方面的知识的时候也有这样的感受,并且所有的资料都是从网络寻找的,但是,现在你们不 ...

  7. 网吧游戏下载期,内置超10000G游戏!

    今天分享了这个神器,是专治那些不爱在家陪女朋友,专门爱去喜欢去网吧打游戏的"臭男人"们的 这款简单的来说就是一个网吧游戏下载小工具,只要你电脑硬够大,网吧电脑里面你能见到的所有游戏 ...

  8. c语言编写程序x的y次方,C语言变为编程y = x-x立方/ 3! + x五次方力量/ 5! -x7th power / 7!...

    这似乎不对,但是无论如何,我只是想补充一个问题,如果可以的话,您能再帮我一次吗? 您不能采用它,但不要说我的代码是错误的!结果留在那里,我自己看了一下. 它不是正整数(x)的序列,被写了n次,怎么可能 ...

  9. 软件工程-c语言--基于at89c51单片机c语言编写的计算器,基于AT89C1单片机C语言编写的计算器.doc...

    基于AT89C1单片机C语言编写的计算器 #include #define uint unsigned int #define uchar unsigned char sbit dula=P2^6; ...

最新文章

  1. HTTP 错误 500.21 - Internal Server Error
  2. import excel to mysql_将 Microsoft Excel 导入至 MySQL
  3. 柏林噪声产生火焰等纹理
  4. 一逛淘宝就停不下来?秘密在于首屏设计...
  5. 大数据和人工智能的关系,超全解析
  6. 2021牛客OI赛前集训营-提高组(第五场)D-牛牛的border【SAM】
  7. 又是一年中秋节,好想举杯邀明月
  8. 利用Pin实现CodeCoverage
  9. azure创建centos_使用Azure Power BI创建Azure数据仓库报告
  10. 微服务的隔离和熔断机制
  11. 如何免费下载百度文库的文档!!!!!!!
  12. creo视图管理器使用方法_5.3 视图管理-样式、截面
  13. GMS:基于网格运动统计的快速极度鲁棒的特征匹配
  14. 计算机画图怎样更改文字,如何在图片上改字|超简单的修改图片里文字方法
  15. 马云:房价熄火,2020年或再现一个“暴利”行业,将造就一波新的财富传奇
  16. 一流国企与外企的待遇比较
  17. 壁纸 | iOS 14 内置这几张壁纸,你喜欢吗?
  18. PHP(Laravel)作为客户端调用GRPC
  19. Jquery的简单使用
  20. 三生三世十里桃花用计算机怎么弄,三生三世十里桃花灵宠系统怎么玩?三生三世十里桃花灵宠系统详解...

热门文章

  1. Visual 调试代码遇到HTTP Error 500.19-Internal Server Error 错误代码0x80070003
  2. redis的雪崩 击穿 穿透以及解决方案
  3. Linux中nmap脚本的目录,nmap脚本指南
  4. 【Matlab 图像】HSV 色彩空间分析
  5. 机器学习算法 - 博客收藏
  6. layout viewport visual viewport ideal viewport
  7. 这可能是全网Spring Cloud Gateway限流最完整的方案了!
  8. 全球及中国生物敷料市场盈利状况与产量需求调查报告2022-2028年
  9. 团队项目(第四周冲刺之二)—GG队
  10. R语言plot函数可视化多条曲线(multiple line in the same plot)、使用postscript函数将可视化图像保存到指定目录的(ps、postscript file)文件中