Index: src/solver.d ================================================================== --- src/solver.d +++ src/solver.d @@ -338,11 +338,11 @@ Tuple!(char,int)[] tryB() { const(Pos)[] q; foreach(p; gs) q ~= p; bool[][] v = new bool[][](g.map.H+2, g.map.W+2); foreach(p; q) v[p.y][p.x]=true; - for(int step=10; q.length; ++step) { + for(int step=8; q.length; ++step) { Pos[] q2; foreach(p; q) { int[] yyy=[p.y-1,p.y,p.y,p.y+1]; int[] xxx=[p.x,p.x-1,p.x+1,p.x]; string sss="URLD"; @@ -699,11 +699,11 @@ char[] ds=['D','U','L','R']; for(int i=0; i<4; ++i) { if(g.map.robot==p && death.count(ds[i])) continue; int y=p.y+dy[i], x=p.x+dx[i]; - if((g.map[y,x]==' '||g.map[y,x]=='\\'||g.map[y,x]=='.'||g.map[y,x]=='O')&&!V[y][x]) { + if((g.map[y,x]==' '||g.map[y,x]=='\\'||g.map[y,x]=='.'||g.map[y,x]=='O'||g.map[y,x]=='!')&&!V[y][x]) { Q.push(tuple(new Pos(y,x),p), dist+1); } } }