Ticket #162: worm_data_7_11.1a.diff

File worm_data_7_11.1a.diff, 4.1 kB (added by arend, 20 months ago)

Small extract of worm_data.diff with one additional fix in owl_mark_worms

  • engine/aftermath.c

    RCS file: /home/arend/Go/gnugo-rsync/gnugo/engine/aftermath.c,v
    retrieving revision 1.61
    diff -u -p -r1.61 aftermath.c
     
    22 * This is GNU Go, a Go program. Contact gnugo@gnu.org, or see       * 
    33 * http://www.gnu.org/software/gnugo/ for more information.          * 
    44 *                                                                   * 
    5  * Copyright 1999, 2000, 2001, 2002, 2003, 2004, 2005 and 2006      * 
     5 * Copyright 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006 and 2007 * 
    66 * by the Free Software Foundation.                                  * 
    77 *                                                                   * 
    88 * This program is free software; you can redistribute it and/or     * 
     
    490490          safety = INVINCIBLE; 
    491491         
    492492        if (k < 4) { 
    493           int apos = worm[pos2].origin; 
     493          int apos = find_origin(pos2); 
    494494           
    495495          if (!mx[apos]) { 
    496496            own_worms++; 
  • engine/combination.c

    RCS file: /home/arend/Go/gnugo-rsync/gnugo/engine/combination.c,v
    retrieving revision 1.57
    diff -u -p -r1.57 combination.c
     
    572572   */ 
    573573  for (pos = BOARDMIN; pos < BOARDMAX; pos++) { 
    574574    if (board[pos] == other 
    575         && worm[pos].origin == pos 
    576         && worm[pos].liberties == 2 
     575        && find_origin(pos) == pos 
     576        && countlib(pos) == 2 
    577577        && aa_status[pos] == ALIVE) { 
    578578      int libs[2]; 
    579579      findlib(pos, 2, libs); 
     
    587587      if (!owl_substantial(pos)) { 
    588588        int pos2; 
    589589        for (pos2 = BOARDMIN; pos2 < BOARDMAX; pos2++) 
    590           if (ON_BOARD(pos2) && is_worm_origin(pos2, pos)) 
     590          if (IS_STONE(board[pos2]) && is_worm_origin(pos2, pos)) 
    591591            aa_status[pos2] = INSUBSTANTIAL; 
    592592      } 
    593593    } 
  • engine/liberty.h

    RCS file: /home/arend/Go/gnugo-rsync/gnugo/engine/liberty.h,v
    retrieving revision 1.260
    diff -u -p -r1.260 liberty.h
     
    803803 
    804804#define MAX_TACTICAL_POINTS 10 
    805805 
     806/* all this data is valid only, when stackp==0 */ 
    806807struct worm_data { 
    807808  int color;         /* its color */ 
    808809  int size;          /* its cardinality */ 
  • engine/owl.c

    RCS file: /home/arend/Go/gnugo-rsync/gnugo/engine/owl.c,v
    retrieving revision 1.252
    diff -u -p -r1.252 owl.c
     
    454454  if (verbose > 0) 
    455455    verbose--; 
    456456  for (str = BOARDMIN; str < BOARDMAX; str++)  
    457     if (ON_BOARD(str) && ms[str] && worm[str].origin == str) { 
     457    if (ON_BOARD(str) && ms[str] && find_origin(str) == str) { 
    458458      int adj; 
    459459      int adjs[MAXCHAIN]; 
    460460      int k; 
     
    46164616  int color = board[apos]; 
    46174617   
    46184618  ASSERT1(bpos == NO_MOVE || board[bpos] == color, bpos); 
     4619  apos = find_origin(apos); 
     4620  if (bpos != NO_MOVE) 
     4621    bpos = find_origin(bpos); 
    46194622 
    46204623  for (pos = BOARDMIN; pos < BOARDMAX; pos++) 
    46214624    if (ON_BOARD(pos)) { 
    4622       if (is_same_worm(pos, apos) || is_same_worm(pos, bpos)) 
     4625      if (IS_STONE(board[pos]) 
     4626          && (find_origin(pos) == apos || find_origin(pos) == bpos)) 
    46234627        owl->goal[pos] = 1; 
    46244628      else 
    46254629        owl->goal[pos] = 0; 
     
    68986902        continue; 
    68996903 
    69006904      for (ii = BOARDMIN; ii < BOARDMAX && w < MAX_GOAL_WORMS; ii++) 
    6901         if (ON_BOARD(ii) && board[ii] && worm[ii].origin == ii 
    6902             && worm[ii].size >= 3 && dragon[ii].id == d) 
     6905        if (IS_STONE(board[ii]) && find_origin(ii) == ii 
     6906            && countstones(ii) >= 3 && dragon[ii].id == d) 
    69036907          goal_worm[w++] = ii; 
    69046908    } 
    69056909  }