Diff
Not logged in

Differences From Artifact [da568e3b806540de]:

To Artifact [97e58dfa28df65c7]:


7 interface Solver 7 interface Solver 8 { 8 { 9 // this(in Game g); 9 // this(in Game g); 10 char single_step(); 10 char single_step(); 11 void force(char c); 11 void force(char c); 12 } 12 } 13 13 14 < 15 bool is_spacy(char c) < 16 { < 17 return c==' ' || c=='.' || c=='R' || c=='!' || c=='\\' || c=='O'; < 18 } < 19 < 20 bool is_rocky(char c) < 21 { < 22 return c=='*' || c=='@'; < 23 } < 24 < 25 bool is_true_space(char c) < 26 { < 27 return c==' '; < 28 } < 29 < 30 bool is_trampoline_source(char c) < 31 { < 32 return 'A'<=c && c<='I'; < 33 } < 34 < 35 bool is_rocklambda(char c) < 36 { < 37 return is_rocky(c) || c=='\\'; < 38 } < 39 < 40 Tuple!(string,int) death_move(in Game g) 14 Tuple!(string,int) death_move(in Game g) 41 { 15 { 42 // TODO: S 16 // TODO: S 43 17 44 string death; 18 string death; 45 int breath; 19 int breath; 46 int y = g.map.robot.y; 20 int y = g.map.robot.y; ................................................................................................................................................................................ 186 if( g.map.collected_lambda == g.map.total_lambda ) { 160 if( g.map.collected_lambda == g.map.total_lambda ) { 187 cand = search(g, ro, [li], death); 161 cand = search(g, ro, [li], death); 188 } else if( !la.empty ){ 162 } else if( !la.empty ){ 189 cand ~= search(g, ro, la~ra, death); 163 cand ~= search(g, ro, la~ra, death); 190 } 164 } 191 165 192 // 'higesori' mode 166 // 'higesori' mode 193 if( !hi.empty && g.map.razor>0 ) { | 167 if( !hi.empty && g.map.num_razor>0 ) { 194 int his = 0; 168 int his = 0; 195 for(int dy=-1; dy<=+1; ++dy) 169 for(int dy=-1; dy<=+1; ++dy) 196 for(int dx=-1; dx<=+1; ++dx) 170 for(int dx=-1; dx<=+1; ++dx) 197 if(g.map[ro.y+dy,ro.x+dx] == 'W') 171 if(g.map[ro.y+dy,ro.x+dx] == 'W') 198 his++; 172 his++; 199 173 200 if(his>=2 || his==hi.length) 174 if(his>=2 || his==hi.length)