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

📄 迷宫c.txt

📁 简单的迷宫问题
💻 TXT
字号:
#include<stdio.h>
#include<stdlib.h>
#include<conio.h>

#define q 23

char a[q][q];
int i,j;

void b();					//创建迷宫
int c();						//测试迷宫是否可行
void d();							//移动人'1'
void e();								//打印数组

void main()
{
	printf("用w,a,s,d控制人'1'\t*********迷宫游戏*********\t作者:?凡人\n");
k:	do{
		b();
	}
	while(c()==1);
	a[1][0]='1';
	e();
	d();
	if(getch()=='y')
		goto k;
	else
		printf("感谢使用Goodbye!!\n");
}

void b()								//创建迷宫
{
	for(i=0;i<q;i++)
		for(j=0;j<q;j++)
			if(rand()<16384)
				a[i][j]=' ';
			else a[i][j]='#';
	for(i=0;i<q;i++)
		a[i][0]=a[0][i]=a[i][q-1]=a[q-1][i]='#';
	a[1][0]=a[q-2][q-1]=' ';
}

int c()									//测试迷宫是否可行
{
	int k=0;
	i=1;
	j=0;
	do{
		switch(k){
		case 0:
			if(a[i][j+1]==' ')
				j++,k=3;
			else
				k=1;
			break;
		case 1:
			if(a[i+1][j]==' ')
				i++,k=0;
			else
				k=2;
			break;
		case 2:
			if(a[i][j-1]==' ')
				j--,k=1;
			else
				k=3;
			break;
		case 3:
			if(a[i-1][j]==' ')
				i--,k=2;
			else
				k=0;
			break;
		}
	}
	while((i!=1&&i!=(q-2))||(j!=0&&j!=(q-1)));
	if(i==(q-2)&&j==(q-1))
		return 0;
	else
		return 1;
}

void d()									//移动人'1'
{
	int m,n;
	m=1;
	n=0;
	while(a[q-2][q-1]!='1'){
		switch(getch()){
		case 'w':
			if(a[m-1][n]==' '){
				a[m][n]=' ';
				m--;
			}
			a[m][n]='1';
			e();break;
		case 's':
			if(a[m+1][n]==' '){
				a[m][n]=' ';
				m++;
			}
			a[m][n]='1';
			e();break;
		case 'a':
			if(a[m][n-1]==' '){
				a[m][n]=' ';
				n--;
			}
			a[m][n]='1';
			e();break;
		case 'd':
			if(a[m][n+1]==' '){
				a[m][n]=' ';
				n++;
			}
			a[m][n]='1';
			e();break;
		}
	}
	printf("你真厉害!想再来吗?(y/n)\n");

}

void e()									//打印数组
{
	for(i=0;i<q;i++){
		for(j=0;j<q;j++)
			printf("%c",a[i][j]);
		printf("\n");
	}
}

⌨️ 快捷键说明

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