帮忙讲一下这个代码哪里错了
#include<bits/stdc++.h>using namespace std;
int n,dx[4]={-1,1,0,0},dy[4]={0,0,-1,1},flag=0,qx,qy,zx,zy,v[105][105]={0};
char a[105][105];
void fun(int x,int y)
{
int i,tx,ty;
if(x==zx&&y==zy)
flag=1;
else
for(i=0;i<4;i++)
{
tx=x+dx[i];ty=y+dy[i];
if(tx>=1&&tx<=n&&ty>=1&&ty<=n)
v[tx][ty]=1;
fun(tx,ty);
}
}
int main()
{
int i,j,t;
cin>>t;
while(t--)
{
memset(v,0,sizeof(v));flag=0;
cin>>n;
for(i=0;i<n;i++)
for(j=0;j<n;j++)
cin>>a[i][j];
cin>>qx>>qy>>zx>>zy;
if(a[qx][qy]=='#'||a[zx][zy]=='#')
cout<<"NO";
else
fun(qx,qy);
}
if(flag==1)
cout<<"YES";
else
cout<<"NO";
return 0;
}