代码
#include <bits/stdc++.h>
using namespace std;
bool vis[1001][1001];
int t,turn1[4]={0,1,0,-1},turn2[4]={1,0,-1,0},x[7],y[7],d[7],n,m,k;
int main(){
cin>>t;
for (int l=1;l<=t;l++){
int ans=1;
memset (vis,0,sizeof vis);
char a[1001][1001];
cin>>n>>m>>k>>x[l]>>y[l]>>d[l];
for (int i=1;i<=n;i++){
for (int j=1;j<=m;j++){
cin>>a[i][j];
}
}
vis[x[l]][y[l]]=1;
while (k>0){
int xx=x[l]+turn1[d[l]],yy=y[l]+turn2[d[l]];
if (a[xx][yy]=='.'){
if (!vis[xx][yy])
ans++;vis[xx][yy]=1;
x[l]=xx;y[l]=yy;
}else{
d[l]=(d[l]+1)%4;
}
k--;
}
cout<<ans<<endl;
}
return 0;
}