Changeset 193

Show
Ignore:
Timestamp:
10/01/06 22:08:02 (2 years ago)
Author:
ug
Message:

Added better way to access search results/statistics.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • 06/libkombilo/cpptest.cc

    r192 r193  
    5050  gl.search(p, so); 
    5151  printf("num games: %d, num hits: %d\n", gl.size(), gl.numHits()); 
    52   // vector<string> res = gl.currentEntriesAsStrings(); 
    53   // for(vector<string>::iterator it = res.begin(); it != res.end(); it++) 
    54   //   printf("%s\n", it->c_str()); 
    55   for(int i=0; i<gl.size(); i++) printf("%s\n", gl.currentEntryAsString(i).c_str()); 
     52  vector<string> res = gl.currentEntriesAsStrings(); 
     53  for(vector<string>::iterator it = res.begin(); it != res.end(); it++) 
     54    printf("%s\n", it->c_str()); 
     55  // for(int i=0; i<gl.size(); i++) printf("%s\n", gl.currentEntryAsString(i).c_str()); 
     56  printf("Search pattern:\n"); 
     57  printf("%s\n", p.printPattern().c_str()); 
     58  printf("Continuations:\n"); 
     59  for(int y=0; y<p.sizeY; y++) { 
     60    for(int x=0; x<p.sizeX; x++) { 
     61      printf("%c", gl.lookupLabel(x,y)); 
     62    } 
     63    printf("\n"); 
     64  } 
     65  printf("\n"); 
     66  printf("Statistics:\n");  
     67  printf("Continuation | Black ( B wins / W wins ) | White (B wins / W wins) |\n"); 
     68  for(int y=0; y<p.sizeY; y++) { 
     69    for(int x=0; x<p.sizeX; x++) { 
     70      if (gl.lookupLabel(x,y) != '.') { 
     71        Continuation cont = gl.lookupContinuation(x,y); 
     72        printf("      %c      |   %3d (    %3d /    %3d ) |   %3d (   %3d /    %3d) |\n", 
     73            gl.lookupLabel(x,y), cont.B, cont.wB, cont.lB, cont.W, cont.wW, cont.lW); 
     74      } 
     75    } 
     76  } 
    5677} 
  • 06/libkombilo/search.cc

    r192 r193  
    678678char* PatternList::sortContinuations() { 
    679679  char* labels = new char[pattern.sizeX*pattern.sizeY+1]; 
    680   labels[pattern.sizeX * pattern.sizeY] = 0; 
     680  labels[pattern.sizeX * pattern.sizeY] = 0; // so we can just printf the labels as a string 
    681681  for(int i=0; i<pattern.sizeX*pattern.sizeY; i++) { 
    682682    if (continuations[i].B || continuations[i].W) labels[i] = '?'; // need to assign label 
     
    27472747GameList::GameList(char* DBNAME, string ORDERBY, string FORMAT, int ALGOS, int BOARDSIZE) throw(DBError) { 
    27482748  labels = 0; 
     2749  continuations = 0; 
    27492750  dbname = new char[strlen(DBNAME)+1]; 
    27502751  strcpy(dbname, DBNAME); 
     
    28452846  // printf("enter ~GameList\n"); 
    28462847  if (labels) delete [] labels; 
     2848  if (continuations) delete [] continuations; 
    28472849  delete [] dbname; 
    28482850  if (all) { 
     
    30683070} 
    30693071 
     3072Continuation GameList::lookupContinuation(char x, char y) { 
     3073  if (!continuations) return Continuation(); 
     3074  return continuations[x+y*sizeX]; 
     3075} 
     3076 
    30703077vector<string> GameList::currentEntriesAsStrings(int start, int end) { 
    30713078  if (end==0) end = currentList->size(); 
     
    31203127  if (labels) delete [] labels; 
    31213128  labels = pl.sortContinuations(); 
     3129  if (continuations) delete [] continuations; 
     3130  continuations = pl.continuations; 
     3131  pl.continuations = new Continuation[pattern.sizeX*pattern.sizeY]; 
    31223132} 
    31233133 
  • 06/libkombilo/search.h

    r192 r193  
    432432 
    433433    SearchOptions(); 
    434     SearchOptions(int FIXEDCOLOR, int NEXTMOVE, int MOVELIMIT=1000); 
     434    SearchOptions(int FIXEDCOLOR, int NEXTMOVE, int MOVELIMIT=10000); 
    435435}; 
    436436 
     
    479479    int readDBs; 
    480480    char* labels; 
     481    Continuation* continuations; 
    481482    int sizeX; 
    482483 
     
    509510    void makeIndexCandidate(int index, std::vector<Candidate* > *candidates); 
    510511    void makeIndexHit(int index, std::vector<Hit* > *hits); 
     512    char lookupLabel(char x, char y); 
     513    Continuation lookupContinuation(char x, char y); 
    511514 
    512515  private: 
    513516    std::string resultsStr(GameListEntry* gle); 
    514     char lookupLabel(char x, char y); 
    515517    void readDB(); 
    516518}; 
  • 06/libkombilo/testsearch.py

    r189 r193  
    2222print '\n'.join(gl.currentEntriesAsStrings()) 
    2323print gl.size(), 'games, ', gl.numHits(), 'hits.' 
    24 print gl.labels 
     24print 'Search pattern:' 
     25print p.printPattern() 
     26print 'Continuations:' 
     27for y in range(p.sizeY): 
     28    for x in range(p.sizeX): 
     29        print gl.lookupLabel(x,y), 
     30    print 
     31 
     32print 
     33print "Statistics:"  
     34print "Continuation | Black ( B wins / W wins ) | White (B wins / W wins) |" 
     35for y in range(p.sizeY): 
     36    for x in range(p.sizeX): 
     37        if gl.lookupLabel(x,y) != '.': 
     38            cont = gl.lookupContinuation(x,y); 
     39            print "      %c      |   %3d (    %3d /    %3d ) |   %3d (   %3d /    %3d) |" % \ 
     40                  (gl.lookupLabel(x,y), cont.B, cont.wB, cont.lB, cont.W, cont.wW, cont.lW) 
    2541print 'This search took %.2f seconds.' % (end - start) 
    2642sys.exit()