X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~yarrgweb/git?a=blobdiff_plain;f=yarrg%2Frsmain.c;h=b3a6d73c6244a07629e270b3c827608a66fe80df;hb=4ed298fb2ac975783ad1a350659f5ae22825e24e;hp=2fc2bdfaeb7819bae3a3993155eb19ecaa99e23c;hpb=2204eb5e3fb843a426dbc0858fa91ce72d63cc73;p=ypp-sc-tools.web-live.git diff --git a/yarrg/rsmain.c b/yarrg/rsmain.c index 2fc2bdf..b3a6d73 100644 --- a/yarrg/rsmain.c +++ b/yarrg/rsmain.c @@ -58,43 +58,73 @@ int main(int argc, const char **argv) { double val= value_route(ni, ia, 0); printf("route value is %g\n", val); } else if (!strcmp(arg,"search")) { - results= mcalloc(sizeof(*results)*argc); + MCALLOC(results, argc); + max_dist= atoi(*argv++); + nhighscores_absolute= atoi(*argv++); + nhighscores_perleague= atoi(*argv++); + + MCALLOC(highscores_absolute, nhighscores_absolute); + MCALLOC(highscores_perleague, nhighscores_perleague); + int resultsix= 0; - while ((arg= *argv++)) { + while ((arg= argv[resultsix])) { search(atoi(arg), &results[resultsix]); resultsix++; } - int i, midisle, finisle; + int i, midarch, finarch; for (i=0; iabsolute < 100) fprintf(stderr,"| ."); - else fprintf(stderr,"|%3d",(int)(result->absolute / 100)); + fprintf(stderr,"|%5d",(int)(result->absolute)); fprintf(stderr," "); - if (result->perleague < 10) fprintf(stderr," ."); - else fprintf(stderr,"%3d",(int)(result->perleague / 10)); + fprintf(stderr,"%4d",(int)(result->perleague)); } } fprintf(stderr,"\n"); } } + + int pos; +#define OUT(absperl) \ + fprintf(stderr,"\n================== " #absperl " ==================\n"); \ + for (pos=0; pospr; \ + if (!pr) continue; \ + const int *const ports= pr->absperl##_ports; \ + int nports; \ + for (nports=0; nports=0; nports++); \ + int finisle= ports[nports-1]; int finarch= isle2arch(finisle); \ + int midisle= ports[nports/2]; int midarch= isle2arch(midisle); \ + fprintf(stderr, \ + " @%2d #%2d | start%3d mid %d:%3d f%d:%3d | %5d %5d %4d |", \ + pos, nhighscores_##absperl - 1 - pos, \ + ports[0], midarch,midisle, finarch,finisle, \ + (int)hs->value, (int)pr->absolute, (int)pr->perleague); \ + for (i=0; i