// ConsoleApplication31.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
//
#include <iostream>
#include <math.h>
#include <time.h>
#define ROW 9
#define COL 9
using namespace std;
void menu();
void show_mine(int mine[][COL], int row, int col);
void Game( int row, int col);
int play(int show[][COL],int bang[][COL],int row, int col);
void Init_bang(int mine[][COL], int row, int col);
void menu()
{
cout << "********************\n";
cout << "1.开始游戏\n";
cout << "2.结束游戏\n";
cout << "********************\n";
}
void show_mine(int mine[][COL], int row, int col)
{
for (int i = 0; i < ROW; i++)
{
for (int j = 0; j < COL; j++)
cout << mine[i][j];
cout << endl;
}
}
void Init_bang(int mine[][COL], int row, int col)
{
srand((unsigned)time(NULL));
int x = rand()%row;
int y = rand()%col;
if (mine[x][y] != 9 && mine[x][y] != 3)//0未动 9炸弹 3翻开
mine[x][y] = 9;
}
int play(int show[][COL], int bang[][COL], int row, int col)
{
if (row >= ROW || col >= COL)
{
cout << "输入坐标有误,请重新输入" << endl;
return 0;
}
if (bang[row][col] != 9)
{
show[row][col] = 3;
show_mine(show, ROW, COL);
return 1;
}
if (bang[row][col] == 9)
{
cout << "扫雷失败";
return -1;
}
}
void Game(int row, int col)
{
int show[ROW][COL];
int bang[ROW][COL];
for (int i = 0; i < ROW; i++)
for (int j = 0; j < COL; j++)
show[i][j] = 4;
for (int i = 0; i < ROW; i++)
for (int j = 0; j < COL; j++)
bang[i][j] = 0;
show_mine(show, row, col);
int flag = 1;
while (1)
{
cout << "输入坐标";
int x, y;
cin >> x >> y;
int end;
end = play(show, bang,x, y);
if (flag == 1)
{
Init_bang(bang,row,col);
flag = 0;
show_mine(bang, row, col);
}
if (end == -1)
{
break;
}
}
}
int main()
{
menu();
while (1)
{
int site;
cin >> site;
switch (site)
{
case 1:Game(ROW, COL); break;
case 2:return 0;
}
}
}