怎么用c++代码实现扫雷小游戏
发表于:2025-01-17 作者:千家信息网编辑
千家信息网最后更新 2025年01月17日,这篇文章主要介绍了怎么用c++代码实现扫雷小游戏的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇怎么用c++代码实现扫雷小游戏文章都会有所收获,下面我们一起来看看吧。分成两
千家信息网最后更新 2025年01月17日怎么用c++代码实现扫雷小游戏
这篇文章主要介绍了怎么用c++代码实现扫雷小游戏的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇怎么用c++代码实现扫雷小游戏文章都会有所收获,下面我们一起来看看吧。
分成两个源文件和一个头文件
注意:这串代码并不完整,不能够实现当所查坐标周围雷的数量为0时,直接展开周围坐标;
头文件:game.h
#include#define count 10 //雷的数量//定义 行-ROW,列-COL#define ROW 9#define COL 9#define ROWS ROW+2 //多加一些,方便代码#define COLS COL+2//初始化棋盘,声明的函数均在game.c中实现void InitBoard(char board[ROWS][COLS],int rows,int cols);//打印棋盘void DisplayBoard(char board[ROW][COL],int row.int col);//布置雷void SetMine(char board[ROW][COLS],int row,int col);//找雷void FindMine(char mine[][COLS],char show[][COLS],int row,int col);
第一个源文件:saolei.c
#include "game.h" //需要包含和声明的东西在game.h中完成void menu(){ printf(" \n"); printf(" 1.play \n"); printf(" 0.exit \n"); printf(" \n");}void game(){ // ROW and COL 在game.h中定义 char mine[ROWS][COLS]; // 地雷埋藏的棋盘 char show[ROWS][COLS]; // 展示出的棋盘 //初始化棋盘 //game()中的函数在game.h中声明,在game.c中实现 InitBoard(mine,ROWS,COLS,'0'); //0代表无雷,1代表有雷 InitBOard(show,ROWS,COLS,'*'); //打印棋盘 DisplayBoard(show,ROW,COL); //布置雷 SetMine(mine,ROW,COL); //找雷 FindMine(mine,show,ROW,COL); }int main(){ srand((unsigned int) time(NULL));//生成随机数 int input = 0; do //do-while循环 { menu(); //(1--play 0--exit)也是do-while循环的条件 printf("请选择:"); scanf("%d",&input); switch(input) { case 1: printf("开始游戏\n"); game(); break; case 0: printf("退出游戏"); break; default: printf("选择错误,请重新输入"); break; } }while(input) return 0;}
第二个源文件:game.c
#include "game.h"void InitBoard(char board[ROWS][COLS],int rows,int cols,char set){ int i = 0; int j = 0; for(i = 0;i < rows;i++) { for(j = 0;j < cols;j++) { board[i][j] = set; } } }void DisplayBoard(char board[ROWS][COLS],int row,int col){ int i = 0; int j = 0; for(i = 0;i <= row;i++) { printf("%d",i); } printf("\n"); for(i = 1;i <= row;i++) { printf("%d"i) for(j = 1;j <= col;j++) { printf(" %c ",board[i][j]); } printf("\n"); } }void SetMine(char board[ROW][COL],int row,int col){ int x = 0; int y = 0; while(count) //count-雷的数量 { x = rand()%row + 1;//因为在1-row中布置雷,边缘一排不用,最后为了记录 y = rand()%col + 1;//周围雷的数量方便,同时代码方便 if( board[x][y] == '0') { board[x][y] = '1'; count--; } }}//算出周围雷的个数int get_mine_count(mine[ROWS][COLS],int row,int col){ int i = 0; int j = 0; int mine_count = 0; for( i = -1;i <= 1; i++ ) { for( j = -1;j <= 1; j++ ) { if( mine[i][j] == '1') { mine_count++; } } } return mine_count;}void FindMine(char mine[][COLS],char show[][COLS],int row,int col){ int x = 0; int y = 0; int ret = 0;//已经查找过的位置的数量 while(ret < row * col - count)//当还剩下count的数量时,赢得游戏 { printf("请输入查找位置下标:"); scanf("%d%d",&x,&y); if(x >= 1 && x <= row && y >= 1 && y <= col) { if(mine[x][y] == '0') { //当所查坐标的位置不是雷时,将该坐标展示成周围雷的个数 int c = get_mine_count(mine,ROW,COL); mine[x][y] = c + '0';//返回值为int型,数组为char型,因此+'0' ret++; DisplayBoard(show,ROW,COL); } else { printf("YOU LOSE\n"); break; } } else { printf("输入非法,请重新输入\n"); } } printf("VICTORY\n"); //获得胜利}
关于"怎么用c++代码实现扫雷小游戏"这篇文章的内容就介绍到这里,感谢各位的阅读!相信大家对"怎么用c++代码实现扫雷小游戏"知识都有一定的了解,大家如果还想学习更多知识,欢迎关注行业资讯频道。
代码
棋盘
数量
小游戏
c++
扫雷
坐标
源文件
知识
输入
个数
代表
位置
内容
函数
文件
篇文章
中实
循环
选择
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
观看网络安全专题教育心得体会
兴化直销网络技术诚信合作
网络安全类新闻评述
国家网络安全局职责
学校秋天网络安全会议
边锋网络安全工程师
选品数据库
青岛浪潮服务器哪里有
广州视频安防软件开发费用
奥丁登录一直显示服务器忙
流媒体管理服务器配置要求
网络传真服务器
关于网络安全手抄报上面的字
读者数据库软件技术文档
opc模拟服务器
盐城企业软件开发售后服务
聚力公益软件开发平台
南瑞网络安全监测代理
大数据库建设政策依据
电器集成软件开发语言
cad数据库下载
各种软件开发工具的差别
网络安全风险指标怎么获得
金山区优势软件开发服务定制价格
容易触碰网络安全法律法规红线
玩客云dlna服务器
l2tp最新服务器地址
怎样安全卸载sql数据库
惠普服务器 波浪线
蛋白质数据库