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.判断是否踩雷
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)