栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

c++实现扫雷(初级)游戏

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

c++实现扫雷(初级)游戏

//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();
	
}

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/869265.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号