@@ -228,8 +228,13 @@ int[] xxx=[p.x,p.x,p.x-1,p.x+1]; for(int i=0; i=4)continue; + if(y!=p.y)continue; + if(g.map[y,p.x+(p.x-x)]!=' '&&g.map[y,p.x+(p.x-x)]!='R')continue; + } if('1'<=g.map[y,x]&&g.map[y,x]<='9') { foreach(ppp; g.map.tr_source[g.map[y,x]]) { yyy ~= ppp.y; xxx ~= ppp.x; @@ -241,12 +246,9 @@ char c = "UDRL"[i]; if( death.count(c) == 0 ) return [tuple(c,step)]; } else if(forbidden_cell[y][x]){ - } else if(g.map[y,x]==' '||g.map[y,x]=='\\'||g.map[y,x]=='.'||i>=4) { - q2 ~= new Pos(y,x); - v[y][x]=true; - } else if(i<4 && (y-p.y)==0 && g.map[p]==' ' && g.map[y,x]=='*' && (g.map[y+(y-p.y),x+(x-p.x)]==' '||g.map[y+(y-p.y),x+(x-p.x)]=='R')) { + } else if(g.map[y,x]==' '||g.map[y,x]=='\\'||g.map[y,x]=='.'||g.map[y,x]=='*'||i>=4) { q2 ~= new Pos(y,x); v[y][x]=true; } }