c语言编写扫雷小游戏下载大全,C语言实现扫雷小游戏
本文实例为大家分享了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语言实现扫雷小游戏相关推荐
- python写五子棋游戏下载大全_用Python写五子棋游戏
开端 开端 画棋盘 首先肯定是要画出棋盘来,用pygame画出一个 19 × 19 或 15 × 15 的棋盘并不是什么难事,这在之前的文章中已经多次用到,就不赘述了. 画棋子 需要说一下的是画棋子, ...
- python 外星人游戏下载大全_【Python】Python制作外星人入侵小游戏
开发工具 Python版本:3.6.4 相关模块: pygame模块: 以及一些Python自带的模块. 相关文件 环境搭建 安装Python并添加到环境变量,pip安装需要的相关模块即可. 原理介绍 ...
- 简单c语语言游戏教案大全,大班语言活动教案大全简单趣味
从小培养幼儿学说普通话的兴趣.同时家长应注意用规范的语言来与幼儿进行日常交谈. 以下是小编精心收集整理的幼儿园大班语言活动方案,下面小编就和大家分享,来欣赏一下吧. 幼儿园大班语言活动方案1 活动目标 ...
- python小游戏代码大全-Python实现打砖块小游戏代码实例
这次用Python实现的是一个接球打砖块的小游戏,需要导入pygame模块,有以下两条经验总结: 1.多父类的继承2.碰撞检测的数学模型 知识点稍后再说,我们先看看游戏的效果和实现: 一.游戏效果 二 ...
- 诺基亚N95游戏下载大全
最近买了个诺基亚N95手机,无聊的时候会玩些游戏,大家可能和我有同样的烦恼,就是不知道从哪儿下诺基亚N95的游戏,现在我就将我常下游戏的地址公布给大家,希望对大家有用 手游天下(中国免费手机游戏第一门 ...
- 如何用c语言编写发邮件程序,想学C语言发邮件程序?5分钟教会你:附送源码+教学!...
关注<一碳科技>,获取更多知识! 前言 相信大家都有过被C语言网络编程所支配的恐惧吧?其实,小编在刚刚学习这方面的知识的时候也有这样的感受,并且所有的资料都是从网络寻找的,但是,现在你们不 ...
- 网吧游戏下载期,内置超10000G游戏!
今天分享了这个神器,是专治那些不爱在家陪女朋友,专门爱去喜欢去网吧打游戏的"臭男人"们的 这款简单的来说就是一个网吧游戏下载小工具,只要你电脑硬够大,网吧电脑里面你能见到的所有游戏 ...
- c语言编写程序x的y次方,C语言变为编程y = x-x立方/ 3! + x五次方力量/ 5! -x7th power / 7!...
这似乎不对,但是无论如何,我只是想补充一个问题,如果可以的话,您能再帮我一次吗? 您不能采用它,但不要说我的代码是错误的!结果留在那里,我自己看了一下. 它不是正整数(x)的序列,被写了n次,怎么可能 ...
- 软件工程-c语言--基于at89c51单片机c语言编写的计算器,基于AT89C1单片机C语言编写的计算器.doc...
基于AT89C1单片机C语言编写的计算器 #include #define uint unsigned int #define uchar unsigned char sbit dula=P2^6; ...
最新文章
- HTTP 错误 500.21 - Internal Server Error
- import excel to mysql_将 Microsoft Excel 导入至 MySQL
- 柏林噪声产生火焰等纹理
- 一逛淘宝就停不下来?秘密在于首屏设计...
- 大数据和人工智能的关系,超全解析
- 2021牛客OI赛前集训营-提高组(第五场)D-牛牛的border【SAM】
- 又是一年中秋节,好想举杯邀明月
- 利用Pin实现CodeCoverage
- azure创建centos_使用Azure Power BI创建Azure数据仓库报告
- 微服务的隔离和熔断机制
- 如何免费下载百度文库的文档!!!!!!!
- creo视图管理器使用方法_5.3 视图管理-样式、截面
- GMS:基于网格运动统计的快速极度鲁棒的特征匹配
- 计算机画图怎样更改文字,如何在图片上改字|超简单的修改图片里文字方法
- 马云:房价熄火,2020年或再现一个“暴利”行业,将造就一波新的财富传奇
- 一流国企与外企的待遇比较
- 壁纸 | iOS 14 内置这几张壁纸,你喜欢吗?
- PHP(Laravel)作为客户端调用GRPC
- Jquery的简单使用
- 三生三世十里桃花用计算机怎么弄,三生三世十里桃花灵宠系统怎么玩?三生三世十里桃花灵宠系统详解...
热门文章
- Visual 调试代码遇到HTTP Error 500.19-Internal Server Error 错误代码0x80070003
- redis的雪崩 击穿 穿透以及解决方案
- Linux中nmap脚本的目录,nmap脚本指南
- 【Matlab 图像】HSV 色彩空间分析
- 机器学习算法 - 博客收藏
- layout viewport visual viewport ideal viewport
- 这可能是全网Spring Cloud Gateway限流最完整的方案了!
- 全球及中国生物敷料市场盈利状况与产量需求调查报告2022-2028年
- 团队项目(第四周冲刺之二)—GG队
- R语言plot函数可视化多条曲线(multiple line in the same plot)、使用postscript函数将可视化图像保存到指定目录的(ps、postscript file)文件中