Differences From Artifact [da568e3b806540de]:
- File
src/solver.d
- 2012-07-16 08:59:54 - part of checkin [9e34cad783] on branch trunk - One-way road finder. (user: kinaba) [annotate]
To Artifact [97e58dfa28df65c7]:
- File
src/solver.d
- 2012-07-16 10:02:57 - part of checkin [b96971b0b6] on branch trunk - refactoring. (user: kinaba) [annotate]
7 7 interface Solver
8 8 {
9 9 // this(in Game g);
10 10 char single_step();
11 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 14 Tuple!(string,int) death_move(in Game g)
41 15 {
42 16 // TODO: S
43 17
44 18 string death;
45 19 int breath;
46 20 int y = g.map.robot.y;
................................................................................
186 160 if( g.map.collected_lambda == g.map.total_lambda ) {
187 161 cand = search(g, ro, [li], death);
188 162 } else if( !la.empty ){
189 163 cand ~= search(g, ro, la~ra, death);
190 164 }
191 165
192 166 // 'higesori' mode
193 - if( !hi.empty && g.map.razor>0 ) {
167 + if( !hi.empty && g.map.num_razor>0 ) {
194 168 int his = 0;
195 169 for(int dy=-1; dy<=+1; ++dy)
196 170 for(int dx=-1; dx<=+1; ++dx)
197 171 if(g.map[ro.y+dy,ro.x+dx] == 'W')
198 172 his++;
199 173
200 174 if(his>=2 || his==hi.length)