X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~yarrgweb/git?a=blobdiff_plain;f=yarrg%2Frsmain.c;h=eaa16c54834032a521e887e8c712a88488485745;hb=8595ad741b02671be2addb6b3f4561943aef83a7;hp=ea032600798aec91a87728442ed70e13c1bc974c;hpb=2abd3537af0c697684bfb97895f230372101329d;p=ypp-sc-tools.main.git diff --git a/yarrg/rsmain.c b/yarrg/rsmain.c index ea03260..eaa16c5 100644 --- a/yarrg/rsmain.c +++ b/yarrg/rsmain.c @@ -12,7 +12,7 @@ int max_dist= -1; FILE *debug_file; FILE *output; -DEBUG_DEFINE_SOME_DEBUGF(tableau,tabdebugf); +#define tabdebugf printf #define CTR(x) int ctr_##x; @@ -21,14 +21,15 @@ DEBUG_DEFINE_SOME_DEBUGF(tableau,tabdebugf); #undef CTR #undef CTRA -static PotentialResult ****results; - /* results[start_isle_ix][finalisle][midisle]-> */ +static PotentialResult ****results[GRANUS]; + /* results[GRANUS][start_isle_ix][finalisle][midisle]-> */ static pid_t debugoutpid; int main(int argc, const char **argv) { const char *arg; int i, ap; + int granui; #ifndef debug_flags debug_flags= ~( dbg_sql2 ); @@ -101,12 +102,17 @@ int main(int argc, const char **argv) { double val= value_route(ni, ia, 0); fprintf(output, "route value is %g\n", val); } else if (!strcmp(arg,"search")) { - MCALLOC(results, argc); + for (granui=0; granuivalue[A])); - tabdebugf(" "); - tabdebugf("%4d",(int)(result->value[P])); - } + int mid, fin; + for (granui=0; granuipr; - if (!pr) continue; - const int *const ports= pr->ports[ap]; - int nports; - for (nports=0; nports=0; nports++); - int finisle= ports[nports-1]; int finarch= isle2arch(finisle); - int midarch= route2midarch(ports,nports); - fprintf(output, - " @%2d #%2d | start%3d mid%d f%d:%3d | %5d %5d %4d |", \ - pos, nhighscores[ap] - 1 - pos, - ports[0], midarch, finarch,finisle, \ - (int)hs->value, (int)pr->value[A], (int)pr->value[P]); - for (i=0; ivalue[A])); + tabdebugf(" "); + tabdebugf("%4d",(int)(result->value[P])); + } + } + tabdebugf("\n"); + } + } /* i */ + + for (ap=0; ap=0; pos--) { + HighScoreEntry *hs= &highscores[granui][ap][pos]; + PotentialResult *pr= hs->pr; + if (!pr) continue; + const int *const ports= pr->ports[ap]; + int nports; + for (nports=0; nports=0; nports++); + int finisle= ports[nports-1]; + int finarch= isle2arch(finisle); + int midisle= ports[nports/2]; + int midarch= route2midarch(ports,nports); + fprintf(output, + " @%2d %c#%2d | start%3d mid%d:%3d f%d:%3d | %5d %5d %4d |", + pos, "ap"[ap], nhighscores[granui][ap] - 1 - pos, + ports[0], midarch,midisle, finarch,finisle, + (int)hs->value, (int)pr->value[A], (int)pr->value[P]); + for (i=0; i