刘牢师全XSM最帅!
刘牢师全XSM最帅!
刘牢师全XSM最帅!
刘牢师全XSM最帅!
刘牢师全XSM最帅!
刘牢师全XSM最帅!
刘牢师全XSM最帅!
刘牢师全XSM最帅!
刘牢师全XSM最帅!
刘牢师全XSM最帅!
刘牢师全XSM最帅!
刘牢师全XSM最帅!
#include<bits/stdc++.h>
#include<windows.h>
#include<conio.h>
int n,m,maze[2017][2017]={};
using namespace std;
void dt(string b,string c,string e)
{
SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE),(COORD){0,0});
for(int i=1;i<=n;i++)
{
for(int j=1;j<=m;j++)
{
if(maze[i][j]==0) cout << c;
else if(maze[i][j]==1) printf(" ");
else if(maze[i][j]==2) cout << b;
else cout << e;
}
printf("\n");
}
}
void dfs(int x,int y,string b,string c,string e)
{
if(x==1||y==1||x==n||y==m) return ;
if(maze[x+1][y]+maze[x-1][y]+maze[x][y-1]+maze[x][y+1]>1) return ;
maze[x][y]=1;
//dt(b,c,e);
int dx[4]={0,0,-1,1};
int dy[4]={-1,1,0,0};
int dir[4]={0,1,2,3};
random_shuffle(dir,dir+4);
for(int i=0;i<4;i++)
{
dfs(x+dx[dir[i]],y+dy[dir[i]],b,c,e);
}
}
int main()
{
srand(time(0));
string a,b,c,d,e;
printf("你叫什么?");
cin >> a;
cout << "好的," << a << ",请输入迷宫的行和列";
cin >> n >> m;
printf("你的皮肤是(1个字)或两个字符");
cin >> b;
printf("墙的皮肤是(1个字)或两个字符");
cin >> c;
printf("终点的皮肤是(一个字或两个字符)");
cin >> e;
dt(b,c,e);
dfs(n/2,m/2,b,c,e);
dt(b,c,e);
int ix,iy,ex,ey;
ix = rand()%3+2;
iy = rand()%3+2;
ex = rand()%3+n-4;
ey = rand()%3+m-4;
maze[ix][iy] = 2;
maze[ex][ey] = 3;
dt(b,c,e);
while(1)
{
char d=getch();
if(d=='w' && maze[ix-1][iy]!=0)
{
maze[ix][iy]= 1;
ix--;
maze[ix][iy] = 2;
}
if(d=='s'&&maze[ix+1][iy]!=0)
{
maze[ix][iy]= 1;
ix++;
maze[ix][iy] = 2;
}
if(d=='a'&&maze[ix][iy-1]!=0)
{
maze[ix][iy]= 1;
iy--;
maze[ix][iy] = 2;
}
if(d=='d'&&maze[ix][iy+1]!=0)
{
maze[ix][iy]= 1;
iy++;
maze[ix][iy] = 2;
}
dt(b,c,e);
}
}