Martin wrote: > I have noticed that Quarry violates the GTP specification when using a > handicap of 0 or 1. According to GTP v. 2, when the handicap command is > issued, the argument has to be at least 2, i.e. if there is no handicap, > the handicap command must not be used. GnuGO rejects a handicap of less > than 2 and Quarry will exit with an assertion violation on > assert(successful) in initialize_gtp_player. > > I have used the following to be able to play without handicap, but I'm > not sure this is the right way to do it.
Thank you for the report. I fixed it a bit differently (but in the same function). The patch is below. I'll commit it later today. These days I don't have time to work on Quarry, so the development is stalled. Paul --- gtk-goban-window.c 13 May 2004 00:25:35 +0300 1.11 +++ gtk-goban-window.c 21 May 2004 16:05:07 +0300 @@ -1453,29 +1453,25 @@ initialize_gtp_player(GtpClient *client, if (game_tree->game == GAME_GO) { int handicap = sgf_node_get_handicap(root_node); - if (handicap != -1) { + if (handicap > 0) { gboolean is_fixed_handicap = FALSE; const BoardPositionList *handicap_stones = NULL; - if (handicap > 0) { - handicap_stones - = sgf_node_get_list_of_point_property_value(root_node, - SGF_ADD_BLACK); - if (handicap_stones) { - BoardPositionList *fixed_handicap_stones - = go_get_fixed_handicap_stones(game_tree->board_width, - game_tree->board_height, - handicap); - - if (board_position_lists_are_equal(fixed_handicap_stones, - handicap_stones)) - is_fixed_handicap = TRUE; + handicap_stones + = sgf_node_get_list_of_point_property_value(root_node, + SGF_ADD_BLACK); + if (handicap_stones) { + BoardPositionList *fixed_handicap_stones + = go_get_fixed_handicap_stones(game_tree->board_width, + game_tree->board_height, + handicap); + + if (board_position_lists_are_equal(fixed_handicap_stones, + handicap_stones)) + is_fixed_handicap = TRUE; - board_position_list_delete(fixed_handicap_stones); - } + board_position_list_delete(fixed_handicap_stones); } - else - is_fixed_handicap = TRUE; if (is_fixed_handicap) { *initialization_step = INITIALIZATION_FIXED_HANDICAP_SET;