//include"Mine.h"
#include
using namespace std;
#define ROW 9
#define COL 9
#define ROWS 11
#define COLS 11
extern void InitArr(char arr[ROWS][COLS], int row, int col, char ch);
extern void PrinterArr(char arr[ROWS][COLS], int row, int col);
//布置雷
extern void SetMine(char arr[ROWS][COLS], int row, int col);
//排查
extern int FindMine(char arr[ROWS][COLS], int row, int col,char show[ROWS][COLS]);
//展示类数量
extern char ShowMine(char arr[ROWS][COLS], int row, int col);
extern int IsSucess(char arr[ROWS][COLS], int row, int col);
#include"mine.h"
void InitArr(char arr[ROWS][COLS], int row, int col, char ch)
{
for (int i = 0; i < ROWS; i++)
{
for (int j = 0; j < COLS; j++)
{
arr[i][j] = ch;
}
}
}
void PrinterArr(char arr[ROWS][COLS], int row, int col)
{
cout << "-------扫雷游戏---------" << endl;
for (int i = 1; i <= row; i++)
{
//cout << i + 1;
for (int j = 1; j <= col; j++)
{
cout << arr[i][j];
}
cout << endl;
}
cout << "-------扫雷游戏---------" << endl;
}
void SetMine(char arr[ROWS][COLS], int row, int col)
{
srand((unsigned int)time(NULL));
int count = 10;
while (count)
{
int i = rand() % 9 + 1, j = rand() % 9 + 1;
if (arr[i][j]== '1')
{
arr[i][j] = '0';
count--;
}
}
}
extern int FindMine(char arr[ROWS][COLS], int row, int col,char show[ROWS][COLS])
{
cout << "请输入你的坐标" << endl;
int x, y, flag = 0;
int input=1;
while (input)
{
cin >> x >> y;
if (x >= 1 && x <= 9 && y >= 1 && y <= 9)
{
if (arr[x][y] == '0')
{
cout << "你输了,,," << endl;
return 0;
}
if (arr[x][y+1] == '0')
flag = flag + 1;
if (arr[x+1][y ] == '0')
flag = flag + 1;
if (arr[x - 1][y] == '0' )
flag = flag + 1;
if (arr[x - 1][y-1] == '0')
flag = flag + 1;
if (arr[x - 1][y+ 1] == '0')
flag = flag + 1;
if (arr[x+1][y + 1] == '0')
flag = flag + 1;
if(arr[x][y-1]=='0')
flag = flag + 1;
show[x][y] = char(flag+48);
break;
}
else
{
input = 1;
cout << "输入错误,请重新输入" << endl;
}
}
return 1;
}
int IsSucess(char arr[ROWS][COLS], int row, int col)
{
int flag = 0;
for (int m = 1; m <= row; m++)
{
for (int n = 0; n <= col; n++)
{
if (arr[m][n] == '*')
flag++;
}
}
if (flag == 10)
{
cout << "成功" << endl;
return 0;
}
else
return 1;
}
#include"mine.h"
void meun()
{
cout << "********* 1.play ********" << endl;
cout << "********* 0.exit ********" << endl;
}
void test1()
{
char rea[ROWS][COLS];
char show[ROWS][COLS];
int input;
InitArr(rea, ROWS, COLS, '1');
InitArr(show, ROWS, COLS, '*');
//PrinterArr(rea, ROW, COL);
//PrinterArr(show, ROW, COL);
SetMine(rea, ROW, COL);
meun();
cin >> input;
do
{
while (input != 0 && input != 1)
{
cout << "输入错误,请重新输入" << endl;
cin >> input;
}
// PrinterArr(rea, ROW, COL);
PrinterArr(show, ROW, COL);
input= FindMine(rea, ROW, COL,show);
// PrinterArr(show, ROW, COL);
if (input != 0)
{
input = IsSucess(show, ROW, COL);
}
} while (input);
}
int main()
{
test1();
}