1.主程序:
#include "game.h"
void menu()
{
printf("***************************************n");
printf("************1.play 0.exit*********n");
printf("***************************************n");
}
void game()
{
char Mine[ROWS][COLS]={0};
char Show[ROWS][COLS]={0};
InitBoard(Mine,ROWS,COLS,'0');//后台雷的数据
InitBoard(Show,ROWS,COLS,'*');//玩家展示
SetMine(Mine,ROW,COL);//布雷
DisplayBoard(Mine,ROW,COL);//打印后台雷数据
DisplayBoard(Show,ROW,COL);//展示给玩家的数据
FindMine(Mine,Show,ROW,COL);//判断是否踩雷
}
int main()
{
int input=0;
do
{
menu();
scanf("%d",&input);
switch (input)
{
case 1:
game();
break;
case 0:
break;
default:
printf("请重新输入n");
break;
}
} while (input);
return 0;
}
2.模块:
.h文件
#pragma once #include#define ROW 9 #define COL 9 #define ROWS ROW+2 #define COLS COL+2 #define MINE_COUNT 10 void InitBoard(char board[ROWS][COLS],int rows,int cols,char set); void DisplayBoard(char board[ROWS][COLS],int row,int col); void SetMine(char board[ROWS][COLS],int row,int col); int GetMineCount(char Mine[ROWS][COLS],int x,int y); void FindMine(char Mine[ROWS][COLS],char Show[ROWS][COLS],int row,int col);
.c文件:
#include "game.h" #includevoid InitBoard(char board[ROWS][COLS],int rows,int cols,char set) { int i=0; for(i=0;i =1&&x<=row&&y>=1&&y<=col) { if(Mine[x][y]=='1') { printf("很遗憾,你被炸死了"); DisplayBoard(Mine,ROW,COL); break; }else { int count = GetMineCount(Mine,x,y); Show[x][y]=count+'0'; DisplayBoard(Show,ROW,COL); notMine++;//找到 } }else { printf("坐标非法n"); } } if(win==row*col-MINE_COUNT) { printf("恭喜取得胜利n"); DisplayBoard(Mine,ROW,COL); } }
主要思路:
1.定义两个数组,存放显示给用户的界面数据;另一个存放后台数据
2.设置雷的位置
3.判断是否踩雷



