diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/steps.c | 43 |
1 files changed, 19 insertions, 24 deletions
diff --git a/src/steps.c b/src/steps.c index 7d1823e..e2beb56 100644 --- a/src/steps.c +++ b/src/steps.c | |||
| @@ -1165,6 +1165,13 @@ estimate_optimal_HTM(DfsArg *arg) | |||
| 1165 | Move bl1; | 1165 | Move bl1; |
| 1166 | Cube aux; | 1166 | Cube aux; |
| 1167 | 1167 | ||
| 1168 | static const uint64_t udmask = (1<<U) | (1<<U2) | (1<<U3) | | ||
| 1169 | (1<<D) | (1<<D2) | (1<<D3); | ||
| 1170 | static const uint64_t rlmask = (1<<R) | (1<<R2) | (1<<R3) | | ||
| 1171 | (1<<L) | (1<<L2) | (1<<L3); | ||
| 1172 | static const uint64_t fbmask = (1<<F) | (1<<F2) | (1<<F3) | | ||
| 1173 | (1<<B) | (1<<B2) | (1<<B3); | ||
| 1174 | |||
| 1168 | ret = -1; | 1175 | ret = -1; |
| 1169 | target = arg->d - arg->current_alg->len; | 1176 | target = arg->d - arg->current_alg->len; |
| 1170 | bl1 = base_move(arg->last1); | 1177 | bl1 = base_move(arg->last1); |
| @@ -1219,31 +1226,19 @@ estimate_optimal_HTM(DfsArg *arg) | |||
| 1219 | } | 1226 | } |
| 1220 | 1227 | ||
| 1221 | /* nxopt trick */ | 1228 | /* nxopt trick */ |
| 1222 | if (arg->ed->normal_ud == target) { | 1229 | if (arg->ed->normal_ud == target) |
| 1223 | arg->badmovesinv |= (1<<U) | (1<<U2) | (1<<U3) | | 1230 | arg->badmovesinv |= udmask; |
| 1224 | (1<<D) | (1<<D2) | (1<<D3); | 1231 | if (arg->ed->normal_fb == target) |
| 1225 | } | 1232 | arg->badmovesinv |= fbmask; |
| 1226 | if (arg->ed->normal_fb == target) { | 1233 | if (arg->ed->normal_rl == target) |
| 1227 | arg->badmovesinv |= (1<<F) | (1<<F2) | (1<<F3) | | 1234 | arg->badmovesinv |= rlmask; |
| 1228 | (1<<B) | (1<<B2) | (1<<B3); | ||
| 1229 | } | ||
| 1230 | if (arg->ed->normal_rl == target) { | ||
| 1231 | arg->badmovesinv |= (1<<R) | (1<<R2) | (1<<R3) | | ||
| 1232 | (1<<L) | (1<<L2) | (1<<L3); | ||
| 1233 | } | ||
| 1234 | 1235 | ||
| 1235 | if (arg->ed->inverse_ud == target) { | 1236 | if (arg->ed->inverse_ud == target) |
| 1236 | arg->badmoves |= (1<<U) | (1<<U2) | (1<<U3) | | 1237 | arg->badmoves |= udmask; |
| 1237 | (1<<D) | (1<<D2) | (1<<D3); | 1238 | if (arg->ed->inverse_fb == target) |
| 1238 | } | 1239 | arg->badmoves |= fbmask; |
| 1239 | if (arg->ed->inverse_fb == target) { | 1240 | if (arg->ed->inverse_rl == target) |
| 1240 | arg->badmoves |= (1<<F) | (1<<F2) | (1<<F3) | | 1241 | arg->badmoves |= rlmask; |
| 1241 | (1<<B) | (1<<B2) | (1<<B3); | ||
| 1242 | } | ||
| 1243 | if (arg->ed->inverse_rl == target) { | ||
| 1244 | arg->badmoves |= (1<<R) | (1<<R2) | (1<<R3) | | ||
| 1245 | (1<<L) | (1<<L2) | (1<<L3); | ||
| 1246 | } | ||
| 1247 | 1242 | ||
| 1248 | return arg->ed->oldret = ret; | 1243 | return arg->ed->oldret = ret; |
| 1249 | } | 1244 | } |
