#include #define N 10 char str[3][4*N]; int p[N][N]; int q,prek; int nx,ny; int bol[N][N]; int sx,sy,ex,ey; int smer[][2] = { {-1,0},{0,1},{1,0},{0,-1} }; int scis[] = { 1,2,4,8 }; int f(int x, int y) { int tmp,tx,ty; if (prek) { tmp=x; x=y; y=tmp; tx=ny; ty=nx; } else { tx=nx;ty=ny; } if (y!=ty) return p[x][y]; if (tx==0) { if (x==0) return q; else return p[y][x-1]; } else { if (x==6) return q; else return p[y][x+1]; } return 0; } int bt(int a, int b) { int i,px,py; bol[a][b]=1; for ( i=0; i<4; i++ ) { px=a+smer[i][0]; py=b+smer[i][1]; if (px<0 || px>=7 || py<0 || py>=7) continue; if (bol[px][py]==1) continue; if (scis[i]&f(a,b)!=0 && scis[(i+2)%4]&f(px,py)!=0) bt(px,py); } return 0; } int srot() { int i,j; for ( i=0; i<7; i++ ) for ( j=0; j<7; j++ ) bol[i][j]=0; bt(sx,sy); return bol[ex][ey]; } int main() { int koniec; int i,j; int ssx,ssy,sex,sey; while (1) { scanf("%d %d %d %d", &ssx, &ssy, &sex, &sey); if (ssx==0) break; sx=ssy; sy=ssy; ex=sex; ey=sey; fgets(str[0], 30, stdin); for ( i=0; i<7; i++ ) { fgets(str[0],40,stdin); fgets(str[1],40,stdin); fgets(str[2],40,stdin); for ( j=0; j<7; j++ ) { p[i][j]=0; if (str[0][4*j+1]=='|') p[i][j]+=1; if (str[1][4*j+2]=='-') p[i][j]+=2; if (str[2][4*j+1]=='|') p[i][j]+=4; if (str[1][4*j]=='-') p[i][j]+=8; } fgets(str[0], 40, stdin); } fgets(str[0],40,stdin); fgets(str[1],40,stdin); fgets(str[2],40,stdin); q=0; if (str[0][1]=='|') q=1; if (str[1][2]=='-') q=2; if (str[2][1]=='|') q=4; if (str[1][0]=='-') q=8; prek=0; for ( i=0; i<7; i++ ) { if (i%2==0) { sx=ssx; sy=ssy; if (ssy==i) { if (ssx==6) {sy=i; sx=0;} else sx++; } ex=sex; ey=sey; if (sey==i) { if (sex==6) continue; else ex++; } nx=0; ny=i; if (srot()==1) {printf("You can win in one move.\n"); koniec=1; break;} sx=ssx; sy=ssy; if (ssy==i) { if (ssx==0) {sy=i; sx=6;} else sx--; } ex=sex; ey=sey; if (sey==i) { if (sex==0) continue; else ex--; } nx=6; if (srot()==1) {printf("You can win in one move.\n"); koniec=1; break;} } } if (koniec==1) continue; prek=1; ssx=sx; sx=sy; sy=ssx; sex=ex; ex=ey; ey=sex; for ( i=0; i<7; i++ ) { if (i%2==0) { sx=ssx; sy=ssy; if (ssy==i) { if (ssx==6) {sy=i; sx=0;} else sx++; } ex=sex; ey=sey; if (sey==i) { if (sex==6) continue; else ex++; } nx=0; ny=i; if (srot()==1) {printf("You can win in one move.\n"); koniec=1; break;} sx=ssx; sy=ssy; if (ssy==i) { if (ssx==0) {sy=i; sx=6;} else sx--; } ex=sex; ey=sey; if (sey==i) { if (sex==0) continue; else ex--; } nx=6; if (srot()==1) {printf("You can win in one move.\n"); koniec=1; break;} } } if (!koniec) printf("Bad luck.\n"); } return 0; }