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

📄 电子老鼠闯迷宫.cpp

📁 电子老鼠闯迷宫 但是还存在一点点小小的问题
💻 CPP
字号:
#include<stdio.h>
#include<conio.h>

void pop(void);
void push(void);
void print(void);

unsigned char a[8][8]=
{
	{0,0,1,1,1,1,1,1},
	{1,0,1,0,0,0,0,1},
	{1,0,1,0,1,0,1,1},
	{1,0,0,0,0,0,1,1},
	{1,0,1,0,1,0,1,1},
	{1,0,1,0,1,0,1,1},
	{1,0,0,0,1,0,0,0},
	{1,0,1,0,0,0,1,0}
};

char addx[4]={0,1,0,-1};
char addy[4]={-1,0,1,0};
char x=0,y=0;
char p=0;
char stack[300];
char u;

void main()
{
	clrscr();
sta:if((y==7)&&(x==7))
	{
		print();
		getchar();
		goto end;
	}
	if((x<0)||(x>7)||(y<0)||(y>7)||(a[y][x]!=0))
		goto end;
	for(u=0;u<4;u++)
	{
		push();
		a[y][x]=2;
		x+=addx[u];
		y+=addy[u];
		goto sta;
bac:	;
	}
end:if(p>0)
	{
		pop();
		a[y][x]=0;
		goto bac;
	}
}

void push(void)
{
	stack[p]=x;
	stack[p+1]=y;
	stack[p+2]=u;
	p+=3;
}

void pop(void)
{
	p-=3;
	x=stack[p];
	y=stack[p+1];
	u=stack[p+2];
}

void print(void)
{
	int u1,u2;
	for(u2=0;u2<8;u2++)
	{
		for(u1=0;u1<8;u1++)
		{
			gotoxy(u1+1,u2+1);
			if((a[u2][u1]==0)||(a[u2][u1]==2)) printf("%c",' ');
			if(a[u2][u1]==1) printf("%c",'

⌨️ 快捷键说明

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