Index: score_memo.txt ================================================================== --- score_memo.txt +++ score_memo.txt @@ -4,13 +4,13 @@ contest4 561? contest5 1281? contest6 737 // 一度通り過ぎるとふさがってしまう曲がり道 contest7 867? contest8 1245 // 無理ゲー -contest9 3042? +contest9 3056? contest10 2076 // "λの上に岩" トラップが複数 -flood1 569 // 崩すの怖がりすぎ & 一直線に並んでるのに真ん中から取るのはどうなの +flood1 569 // 崩すの怖がりすぎ flood2 281! flood3 802 // 溺死 flood4 970 // むずかしい岩崩し flood5 561? trampoline1 291 // むずかしい岩崩し Index: src/solver.d ================================================================== --- src/solver.d +++ src/solver.d @@ -300,12 +300,13 @@ bool[][] v = new bool[][](g.map.H+2, g.map.W+2); foreach(p; q) v[p.y][p.x]=true; for(int step=1; q.length; ++step) { Pos[] q2; foreach(p; q) { - int[] yyy=[p.y-1,p.y+1,p.y,p.y]; - int[] xxx=[p.x,p.x,p.x-1,p.x+1]; + 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"; for(int i=0; i=4) { if(danger(y,x)) @@ -340,12 +341,13 @@ 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) { Pos[] q2; foreach(p; q) { - int[] yyy=[p.y-1,p.y+1,p.y,p.y]; - int[] xxx=[p.x,p.x,p.x-1,p.x+1]; + 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"; for(int i=0; i=4) { q2 ~= new Pos(y,x); @@ -378,12 +380,13 @@ bool[][] v = new bool[][](g.map.H+2, g.map.W+2); foreach(p; q) v[p.y][p.x]=true; for(int step=20; q.length; ++step) { Pos[] q2; foreach(p; q) { - int[] yyy=[p.y-1,p.y+1,p.y,p.y]; - int[] xxx=[p.x,p.x,p.x-1,p.x+1]; + 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"; for(int i=0; i=4)continue; @@ -397,11 +400,11 @@ } continue; } if(v[y][x]) continue; if(y==s.y && x==s.x && i<4) { - char c = "UDRL"[i]; + char c = sss[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]=='.'||is_rocky(g.map[y,x])||g.map[y,x]=='!'||i>=4) { q2 ~= new Pos(y,x); @@ -721,11 +724,11 @@ void force(char c) { return sub_solver.force(c); } private Solver sub_solver; } -alias Switcher MainSolver; +//alias Switcher MainSolver; //alias 侵掠如火!(疾如風) MainSolver; -//alias 侵掠如火!(徐如林) MainSolver; +alias 侵掠如火!(徐如林) MainSolver; //alias 疾如風 MainSolver; //alias 徐如林 MainSolver; //alias 不動如山 MainSolver;