2026/4/18 9:37:40
网站建设
项目流程
专业的做网站公司,哈尔滨十大广告公司,短视频seo推广,做期货看资讯什么网站好一、思路菜单----游戏测试总逻辑----具体完成游戏#xff08;9*9棋盘#xff09;二、具体操作test.c文件#xff08;1#xff09;主函数int main (){test();return 0;}(2)菜单和test 函数【先决定是否玩游戏。选0则退出游戏#xff1b;选1则开始游戏(进入game)。输…一、思路菜单----游戏测试总逻辑----具体完成游戏9*9棋盘二、具体操作test.c文件1主函数int main (){test();return 0;}(2)菜单和test 函数【先决定是否玩游戏。选0则退出游戏选1则开始游戏(进入game)。输入一个数是1则进入游戏是0则退出游戏其他则重新输入。】#include game.hvoid menu(){printf(***********************\n);printf(****** 1.play ******\n);printf(****** 0.exit ******\n);printf(***********************\n);}void test(){int input0;srand((unsigned int)time(NULL));//生成随机数用于布雷时随机生成地雷位置do{menu();printf(请选择);scanf(%d,input);switch(input){case 1:game();break;case 0:printf(退出游戏\n);break;default:printf(选择错误请重新选择\n);break;}} while(input);}(3)game函数【初始化棋盘--打印棋盘--布雷--排雷】void game(){printf(扫雷\n);char mine[ROWS][COLS] { 0 };//存放布置好的雷的信息初始状态为‘0’char show[ROWS][COLS] { 0 };//存放排查出的雷的信息初始状态为‘*’//初始化棋盘InitBoard(mine, ROWS, COLS,0);InitBoard(show, ROWS, COLS,*);//打印棋盘DisplayBoard(show, ROW, COL);//布雷SetMine(mine,ROW,COL);//DisplayBoard(mine, ROW, COL);//排查雷FindMine(mine, show, ROW, COL);}game.c文件【实现game函数中的函数】#include game.h//初始化void InitBoard(char board[ROWS][COLS],int r,int c,char set){int i 0;for (int i 0; i r; i){int j 0;for (j 0; j c; j){board[i][j] set;}}}// 打印棋盘void DisplayBoard(char board[ROWS][COLS], int r, int c){int i 0;int j 0;for(j0;jc;j){printf(%d ,j);}printf(\n);for (i 1; i r; i){printf(%d ,i);for (j 1; j c; j){printf(%c , board[i][j]);}printf(\n);}printf(\n);}// 布雷void SetMine(char mine[ROW][COL], int r, int c){int count EASY_COUNT;//一共放置十个雷while(count){int x rand() % r 1;//1~9int y rand() % c 1;//1~9if (mine[x][y] 0){mine[x][y] 1;count--;}}}//统计mine数组x,y坐标周围雷的个数int GetMineCount(char mine[ROWS][COLS], int x, int y){return 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][y1] mine[x][y1] mine[x - 1][y1]-8*0;}//排雷void FindMine(char mine[ROWS][COLS], char show[ROWS][COLS], int r, int c){int x 0;int y 0;int win 0;while (win r*c - EASY_COUNT){printf(请输入要排查的位置\n);scanf(%d%d, x, y);if (x 1 x r y 1 y c){if (show[x][y] ! *){printf(请注意该位置已经被排查过了请重新输入坐标\n);continue;}if (mine[x][y] 1){printf(很遗憾你被炸死了\n);printf(雷的布置如下所示\n);DisplayBoard(mine, ROW, COL);break;}else{//统计坐标周围雷的个数int countGetMineCount(mine,x,y);show[x][y] count 0;//show是字符数组DisplayBoard(show, ROW, COL);win;}}else{printf(输入的坐标非法请重新输入\n);}}if (win r * c - EASY_COUNT){printf(恭喜你排雷成功 \n);printf(雷的布置如下所示\n);DisplayBoard(mine, ROW, COL);}}game.h文件#pragma once//防止头文件重复包含解决重复定义编译错误#include stdlib.h#include stdio.h#include time.h//定义符号#define ROW 9#define COL 9#define ROWS ROW2#define COLS COL2#define EASY_COUNT 10//声明函数//初始化函数void InitBoard(char board[ROWS][COLS], int r, int c,char set);//打印棋盘void DisplayBoard(char board[ROWS][COLS], int r, int c);//布置雷void SetMine(char mine[ROWS][COLS], int r, int c);//排查雷void FindMine(char mine[ROWS][COLS], char show[ROWS][COLS], int r, int c);