(我用的纯循环)
#include<bits/stdc++.h>
using namespace std;
int n;
char mp[105][105];
int ans[105][105];
int dx[]={0,0,-1,-1,-1,1,1,1};
int dy[]={-1,1,0,1,-1,0,1,-1};
string s="yizhong";
bool flag=0;
int x,y;
int main(){
cin>>n;
for(int i=0;i<n;i++)scanf("%s",mp[i]);
for(int I=0;I<n;I++){
for(int J=0;J<n;J++){
if(mp[I][J]=='j'){
for(int i=0;i<8;i++){
x=I,y=J;
for(int j=1;j<7;j++){
x+=dx[i],y+=dy[i];
if(x>=0&&x<n&&y>=0&&y<n){
if(mp[x][y]!=s[j]){
flag=1;
break;
}
}
}
if(!flag){
int x=I,y=J;
ans[x+dx[i]*0][y+dy[i]*0]=1;
ans[x+dx[i]*1][y+dy[i]*1]=1;
ans[x+dx[i]*2][y+dy[i]*2]=1;
ans[x+dx[i]*3][y+dy[i]*3]=1;
ans[x+dx[i]*4][y+dy[i]*4]=1;
ans[x+dx[i]*5][y+dy[i]*5]=1;
ans[x+dx[i]*6][y+dy[i]*6]=1;
flag=0;
}
}
}
}
}
for(int i=0;i<n;i++){
for(int j=0;j<n;j++){
if(ans[i][j]==1)cout<<mp[i][j];
else cout<<'*';
}
cout<<'\n';
}
return 0;
}