# alias: RobotFreeBid # button-text: Robot Free Bid # gib-works: true # bba-works: true # auction-filter: 1[CDHS] (1[DHS]|2[CDH]) (X|1[HS]|2[CDH]) .* # convention-card-ns: 21GF-DEFAULT # convention-card-ew: 21GF-GIB /*@chat --- Robot Free Bid North Opens & East Overcalls and South has no Major suit fit w/North and with a good 6+ card suit negative double with unbid 4-card Major bids new suit w/11-14 TP or jump new suit w/15-16 TP @chat*/ # Robot Free Bid dealer north # North's opening suit nS = spades(north)>=hearts(north) and spades(north)>4 and spades(north)>diamonds(north) and spades(north)>clubs(north) nH = not nS and hearts(north)>4 and hearts(north)>diamonds(north)and hearts(north)>clubs(north) nD = not nS and not nH and diamonds(north)>clubs(north) and diamonds(north)>2 nC = not nS and not nH and not nD nRS = nS ? 4 : 0 nRH = nH ? 3 : 0 nRD = nD ? 2 : 0 nRC = nC ? 1 : 0 northRank = nRS+nRH+nRD+nRC // all except one are zero # East's longest suit eS = spades(east)>=hearts(east) and spades(east)>=diamonds(east) and spades(east)>=clubs(east) eH = not eS and hearts(east)>=diamonds(east) and hearts(east)>=clubs(east) eD = not eS and not eH and diamonds(east)>=clubs(east) eC = not eS and not eH and not eD eRS = eS ? 4 : 0 eRH = eH ? 3 : 0 eRD = eD ? 2 : 0 eRC = eC ? 1 : 0 eastRank = eRS+eRH+eRD+eRC # South's longest suit sS = spades(south)>=hearts(south) and spades(south)>=diamonds(south) and spades(south)>=clubs(south) sH = not sS and hearts(south)>=diamonds(south) and hearts(south) >=clubs(south) sD = not sS and not sH and diamonds(south)>=clubs(south) sC = not sS and not sH and not sD sRS = sS ? 4 : 0 sRH = sH ? 3 : 0 sRD = sD ? 2 : 0 sRC = sC ? 1 : 0 southRank = sRS + sRH + sRD + sRC # Calculate Robot Total Points for south (tp) for south (3-2-1) - 1 for shortness w/honor v1 = shape(south, any 0xxx) ? 3 : 0 s1 = shape(south, any 1xxx) ? 2 : 0 d1 = shape(south, any 2xxx) ? 1 : 0 // allow for 3 doubletons d2 = shape(south, any 22xx) ? 1 : 0 d3 = shape(south, any 222x) ? 1 : 0 tp = v1+s1+d1+d2+d3 + hcp(south) # North opens northOpens = hcp(north)>11 and hcp(north)<15 # East's Good Suits // Good Suit East -- KQ or better eGC = eC and top3(east,clubs)>1 eGD = eD and top3(east,diamonds)>1 eGH = eH and top3(east,hearts)>1 eGS = eS and top3(east,spades)>1 # East's Good Suit gSE = (eGC or eGD or eGH or eGS) # Kill east's takeout double and NT eSfit = nS and spades(east)>1 // east has 2 or more of north's opening suit eHfit = nH and hearts(east)>1 eDfit = nD and diamonds(east)>1 eCfit = nC and clubs(east)>1 eShape = (eSfit or eHfit or eDfit or eCfit) and shape(east, any 5332 +any 5431 +any 6331) eastOvercalls = hcp(east)>10 and hcp(east)<15 and eShape and gSE # South responds -- a non-forcing hand with a good 6-card suit and 10-13 TP # South's Good Suits // Good Suit South -- KQJ or better sGC = sC and top4(south,clubs)>2 sGD = sD and top4(south,diamonds)>2 sGH = sH and top4(south,hearts)>2 sGS = sS and top4(south,spades)>2 # South's Good Suit gSS = (sGC or sGD or sGH or sGS) calm = shape(south, xxxx - any 76xx -any 75xx -any 66xx -any 65xx -any 55xx) g6 = gSS and shape(south, any 7xxx +any 6xxx) and calm and tp>10 and tp<17 rankOK = (northRank > eastRank) or (northRank > southRank) or (eastRank > southRank) // eliminate 1-level bids for south sFit = nS and spades(south)>2 // eliminate hands where South has support for North's major hFit = nH and hearts(south)>2 fitOK = not sFit and not hFit southResponds = fitOK and rankOK and g6 # Now do it northOpens and eastOvercalls and southResponds