From 5abd8f6085fab1017a962cb4d603249506f40af1 Mon Sep 17 00:00:00 2001 From: Petr Baudis Date: Mon, 11 Oct 2010 01:23:50 +0200 Subject: [PATCH] is_ladder(): Remove two extra switches (always true now) --- pattern.c | 6 +++--- playout/moggy.c | 4 ++-- tactics/ladder.h | 20 ++++++-------------- 3 files changed, 11 insertions(+), 19 deletions(-) diff --git a/pattern.c b/pattern.c index d61e7e5..34031d3 100644 --- a/pattern.c +++ b/pattern.c @@ -212,7 +212,7 @@ pattern_match_capture(struct pattern_config *pc, pattern_spec ps, captures++; if (PS_PF(CAPTURE, LADDER)) - f->payload |= is_ladder(b, m->coord, g, true, true) << PF_CAPTURE_LADDER; + f->payload |= is_ladder(b, m->coord, g) << PF_CAPTURE_LADDER; /* TODO: is_ladder() is too conservative in some * very obvious situations, look at complete.gtp. */ @@ -326,7 +326,7 @@ pattern_match_aescape(struct pattern_config *pc, pattern_spec ps, in_atari = g; if (PS_PF(AESCAPE, LADDER)) - f->payload |= is_ladder(b, m->coord, g, true, true) << PF_AESCAPE_LADDER; + f->payload |= is_ladder(b, m->coord, g) << PF_AESCAPE_LADDER; /* TODO: is_ladder() is too conservative in some * very obvious situations, look at complete.gtp. */ @@ -368,7 +368,7 @@ pattern_match_atari(struct pattern_config *pc, pattern_spec ps, coord_t lib = board_group_other_lib(b, g, m->coord); /* TODO: is_ladder() is too conservative in some * very obvious situations, look at complete.gtp. */ - f->payload |= is_ladder(b, lib, g, true, true) << PF_ATARI_LADDER; + f->payload |= is_ladder(b, lib, g) << PF_ATARI_LADDER; } if (PS_PF(ATARI, KO) && !is_pass(b->ko.coord)) diff --git a/playout/moggy.c b/playout/moggy.c index f484dc3..4a51456 100644 --- a/playout/moggy.c +++ b/playout/moggy.c @@ -143,7 +143,7 @@ test_pattern3_here(struct playout_policy *p, struct board *b, struct move *m) return false; /* Ladder moves are stupid. */ group_t atari_neighbor = board_get_atari_neighbor(b, m->coord, m->color); - if (atari_neighbor && is_ladder(b, m->coord, atari_neighbor, true, true)) + if (atari_neighbor && is_ladder(b, m->coord, atari_neighbor)) return false; return true; } @@ -297,7 +297,7 @@ group_atari_check(struct playout_policy *p, struct board *b, group_t group, enum fprintf(stderr, "...escape route valid\n"); /* ...or play out ladders. */ - if (is_ladder(b, lib, group, true, true)) { + if (is_ladder(b, lib, group)) { /* Sometimes we want to keep the ladder move in the * queue in order to discourage it. */ if (!ladder) diff --git a/tactics/ladder.h b/tactics/ladder.h index 736844b..d97a628 100644 --- a/tactics/ladder.h +++ b/tactics/ladder.h @@ -10,15 +10,13 @@ * a simple ladder. */ /* Two ways of ladder reading can be enabled separately; simple first-line * ladders and trivial middle-board ladders. */ -static bool is_ladder(struct board *b, coord_t coord, group_t laddered, - bool border_ladders, bool middle_ladders); +static bool is_ladder(struct board *b, coord_t coord, group_t laddered); bool is_border_ladder(struct board *b, coord_t coord, enum stone lcolor); bool is_middle_ladder(struct board *b, coord_t coord, enum stone lcolor); static inline bool -is_ladder(struct board *b, coord_t coord, group_t laddered, - bool border_ladders, bool middle_ladders) +is_ladder(struct board *b, coord_t coord, group_t laddered) { enum stone lcolor = board_at(b, group_base(laddered)); @@ -28,22 +26,16 @@ is_ladder(struct board *b, coord_t coord, group_t laddered, /* First, special-case first-line "ladders". This is a huge chunk * of ladders we actually meet and want to play. */ - if (border_ladders - && neighbor_count_at(b, coord, S_OFFBOARD) == 1 + if (neighbor_count_at(b, coord, S_OFFBOARD) == 1 && neighbor_count_at(b, coord, lcolor) == 1) { bool l = is_border_ladder(b, coord, lcolor); if (DEBUGL(6)) fprintf(stderr, "border ladder solution: %d\n", l); return l; } - if (middle_ladders) { - bool l = is_middle_ladder(b, coord, lcolor); - if (DEBUGL(6)) fprintf(stderr, "middle ladder solution: %d\n", l); - return l; - } - - if (DEBUGL(6)) fprintf(stderr, "no ladder to be checked\n"); - return false; + bool l = is_middle_ladder(b, coord, lcolor); + if (DEBUGL(6)) fprintf(stderr, "middle ladder solution: %d\n", l); + return l; } #endif -- 2.11.4.GIT