Ticket #201: gunnar_7_12.11.diff

File gunnar_7_12.11.diff, 2.6 kB (added by gunnar, 7 months ago)

Mark both goal and boundary in sgf output of owl/semeai reading.

  • engine/owl.c

     
    14421442    owl_update_goal(move, same_dragon, lunch, owlb, 1, pattern_data); 
    14431443    owl_update_boundary_marks(move, owla); 
    14441444  } 
    1445   mark_goal_in_sgf(owla->goal); 
    1446   mark_goal_in_sgf(owlb->goal); 
     1445  mark_goal_and_boundary_in_sgf(owla->goal, owla->boundary); 
     1446  mark_goal_and_boundary_in_sgf(owlb->goal, owlb->boundary); 
    14471447     
    14481448  /* Do a recursive call to read the semeai after the move we just 
    14491449   * tried. If dragon b was captured by the move, call 
     
    23582358        if (!owl->goal[origin]) 
    23592359          origin = select_new_goal_origin(origin, owl); 
    23602360      } 
    2361       mark_goal_in_sgf(owl->goal); 
     2361      mark_goal_and_boundary_in_sgf(owl->goal, owl->boundary); 
    23622362 
    23632363      if (origin == NO_MOVE) 
    23642364        dcode = 0; 
     
    29312931       */ 
    29322932      owl_update_goal(mpos, moves[k].same_dragon, moves[k].lunch, owl, 0, 
    29332933                      moves[k].pattern_data); 
    2934       mark_goal_in_sgf(owl->goal); 
     2934      mark_goal_and_boundary_in_sgf(owl->goal, owl->boundary); 
    29352935 
    29362936      if (!ko_move) { 
    29372937        int acode = do_owl_attack(str, NULL, &wid, owl, new_escape); 
  • engine/printutils.c

     
    515515 * This function cannot be in sgf/ as it has to understand the 1-D board. 
    516516 */ 
    517517void 
    518 mark_goal_in_sgf(signed char goal[BOARDMAX]) 
     518mark_goal_and_boundary_in_sgf(signed char goal[BOARDMAX], 
     519                              signed char boundary[BOARDMAX]) 
    519520{ 
    520521  int pos; 
    521522  SGFNode *node; 
     
    524525    return; 
    525526  node = sgftreeNodeCheck(sgf_dumptree); 
    526527 
    527   for (pos = BOARDMIN; pos < BOARDMAX; pos++) 
     528  for (pos = BOARDMIN; pos < BOARDMAX; pos++) { 
     529    if (ON_BOARD(pos) && boundary[pos] == 1) 
     530      sgfCircle(node, I(pos), J(pos)); 
     531    if (ON_BOARD(pos) && boundary[pos] == 2) 
     532      sgfTriangle(node, I(pos), J(pos)); 
    528533    if (ON_BOARD(pos) && goal[pos]) 
    529534      sgfSquare(node, I(pos), J(pos)); 
     535  } 
    530536} 
    531537 
    532538 
  • engine/board.h

     
    431431void draw_letter_coordinates(FILE *outfile); 
    432432void simple_showboard(FILE *outfile); 
    433433 
    434 void mark_goal_in_sgf(signed char goal[BOARDMAX]); 
     434void mark_goal_and_boundary_in_sgf(signed char goal[BOARDMAX], 
     435                                   signed char boundary[BOARDMAX]); 
    435436 
    436437/* ================================================================ */ 
    437438/*                         assertions                               */