test.c
#define _CRT_SECURE_NO_WARNINGS 1
#include"game.h"
void game()
{
char mine[Rows][Cols]={0};
char show[Rows][Cols]={0};
initBoard(mine,Rows,Cols,'0');
initBoard(show,Rows,Cols,'*');
//displayBoard(mine,Row,Col);
//displayBoard(show,Row,Col);
settingMine(mine,Row,Col);
//displayBoard(mine,Row,Col);
findMine(mine,show,Row,Col);
}
void menu()
{
printf("***************************\n");
printf("**** 1:play ****\n");
printf("**** 0:exit ****\n");
printf("***************************\n");
}
void test()
{
int intput;
srand((unsigned int)time(NULL));
do
{
menu();
printf("请选择模式\n");
scanf("%d",&intput);
switch(intput)
{
case 1:game();
break;
case 0:printf("退出游戏\n");
break;
default:printf("请输入其他值\n");
break;
}
}while(intput);
}
int main()
{
test();
return 0;
}
game.c
#define _CRT_SECURE_NO_WARNINGS 1
#include"game.h"
void initBoard(char Board[Rows][Cols],int rows,int cols,char ret)
{
int i,j;
for(i=0;i<rows;i++)
for(j=0;j<cols;j++)
{
Board[i][j]=ret;
}
}
void displayBoard(char Board[Rows][Cols],int row,int col)
{
int i,j;
for(i=0;i<=col;i++)
{
printf("%d ",i);
}
putchar('\n');
for(i=1;i<=col;i++)
{ printf("%d ",i);
for(j=1;j<=row;j++)
{
printf("%c ",Board[i][j]);
}
putchar('\n');
}
putchar('\n');
}
void settingMine(char Board[Rows][Cols],int row,int col)
{
int count=easyModel;
while(count)
{
int x=rand()%row+1;
int y=rand()%col+1;
if(Board[x][y]=='0')
{
Board[x][y]='1';
count--;
}
}
}
int statMine(char mine[Rows][Cols],int x,int y)
{
return (mine[x-1][y]+mine[x-1][y+1]+mine[x-1][y-1]
+mine[x+1][y]+mine[x+1][y-1]+mine[x+1][y+1]
+mine[x][y-1]+mine[x][y+1])-8*'0';
}
void findMine(char mine[Rows][Cols],char show[Rows][Cols],int row,int col)
{
int x,y;
int win=0;
while(win<row*col-easyModel)
{
printf("请输入坐标\n");
scanf("%d%d",&x,&y);
if(x<=row&&x>=1&&y<=col&&y>=1)
{
if(mine[x][y]=='1')
{
printf("恭喜你被炸死了\n");
displayBoard(mine,row,col);
break;
}
else
{
int ret;
ret=statMine(mine,x,y);
show[x][y]=ret+'0';
win++;
displayBoard(show,row,col);
}
}
else
{
printf("请输入正确的坐标值\n");
}
if(win==row*col-easyModel)
{
printf("恭喜你,你赢了\n");
}
}
}
game.h
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
#define Row 9
#define Col 9
#define Rows Row+2
#define Cols Col+2
#define easyModel 80
void initBoard(char Board[Rows][Cols],int rows,int cols,char ret);
void displayBoard(char Board[Rows][Cols],int row,int col);
void settingMine(char Board[Rows][Cols],int row,int col);
void findMine(char mine[Rows][Cols],char show[Rows][Cols],int row,int col);