⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 maze.cpp

📁 如题!能实现自己输入行数和列数做扫雷!但是混杂了C语言在内!
💻 CPP
字号:
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define N 9
void bl(int **a,int i,int j);
void tl(int **a,int i,int j);
void dy(int **a,int i,int j);
void main()
{	int hang,lie,**ufo,i,j;
	printf("输入雷区的行,列:");
	scanf("%d,%d",&hang,&lie);
	ufo=(int**)malloc(sizeof(int*)*hang);
		for(i=0;i<hang;i++)
			ufo[i]=(int*)malloc(sizeof(int)*lie);
		for(i=0;i<hang;i++)
			for(j=0;j<lie;j++)
				ufo[i][j]=0;
	bl(ufo,hang,lie);
	tl(ufo,hang,lie);
	dy(ufo,hang,lie);
}
void bl(int **a,int i,int j)
{	int t,p,m,n;
	srand(time(NULL));
	printf("输入雷数:");
	scanf("%d",&p);
	for(t=0;t<p;t++)
	{	m=rand()%i;
		n=rand()%j;
		if(a[m][n]==N)
		{	t--;
			continue;
		}
		a[m][n]=N;
	}
}
void tl(int **a,int i,int j)
{	int m,n,p,q;
	for(p=0;p<i;p++)
		for(q=0;q<j;q++)
			if(a[p][q]!=N)
				for(m=p-1;m<=p+1;m++)
					for(n=q-1;n<=q+1;n++)
						if(m>=0&&m<i&&n>=0&&n<j&&a[m][n]==N)
							a[p][q]++;
}
void dy(int **a,int i,int j)
{	int m,n;
	for(m=0;m<i;m++)
	{	for(n=0;n<j;n++)
			if(a[m][n]==0)
				printf("%3c",34);
			else if(a[m][n]==N)
				printf("%3c",15);
			else
				printf("%3d",a[m][n]);
		printf("\n");
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -