# alias: InvJump3Under # button-text: 3-Under Inv Jump # gib-works: true # bba-works: true # auction-filter: (1D +Pass +3C|1H +Pass +3[CD]|1S +Pass +3[CDH]) # convention-card-ns: 21GF-DEFAULT # convention-card-ew: 21GF-GIB /*@chat --- 3 Under Invitational Jump • 1!S - 3!C, 3!D, or 3!H • 1!H - 3!C or 3!D • 1!D - 3!C Shows a 6+ card suit w/Q or better and 9-11 HCP and denies support for opener's suit or 4-cards in either major. @chat*/ dealer south /* # Robot 3 Under Invitational Jump (9-11 HCP) */ #include "script/Predict-Opening-1-Bid" # Defines oneClub, oneSpade, oneHeart, oneDiamond #include "script/Calm-Opponents" # Defines calmWest #include "script/TP" # Defines tpSouth # Define NoFit sFit = oneSpade and spades(north)>2 hFit = oneHeart and hearts(north)>2 dFit = oneDiamond and diamonds(north)>3 noFit = not (sFit or hFit or dFit) # Define North's good suits -- 6+ cards with at least QJ or better goodHearts = hearts(north)>5 and top4(north,hearts)>1 goodDiamonds = diamonds(north)>5 and top4(north,diamonds)>1 goodClubs = clubs(north)>5 and top4(north,clubs)>1 # Define North's minimum suits -- 6+ with at least the Q minHearts = hearts(north)>5 and top5(north,hearts)>1 minDiamonds = diamonds(north)>5 and top5(north,diamonds)>1 minClubs = clubs(north)>5 and top5(north,clubs)>1 nMinHCP = (goodHearts or goodDiamonds or goodClubs) ? 8 : 9 // Better HCP w/minimum suit # north does NOT have a major noMajorNorth = spades(north)<4 and hearts(north)<4 # For opening with minimum values, require extra suit length sMin = hcp(south)<12 and tpSouth<13 sShape = sMin ? shape(south,any 7xxx+any 6xxx) : shape(south, xxxx) n3C = (oneDiamond or oneHeart or oneSpade) and goodClubs and noMajorNorth n3D = (oneHeart or oneSpade) and goodDiamonds and noMajorNorth n3H = oneSpade and goodHearts nHand = (n3C or n3D or n3H) and shape(north,any 9xxx +any 8xxx +any 7xxx +any 6xxx -any 85xx -any 76xx -any 66xx -any 5xxx) # (Predict South's opening bid -- trying to eliminate 2C openings sRange = hcp(south)>10 and tpSouth>11 and hcp(south)<22 and tpSouth<23 and (hcp(south) - losers(south))<15 nRange = hcp(north)>nMinHCP and hcp(north)<12 # Now do it sShape and sRange and calmWest and noFit and nHand and nRange produce 1000 action average "hcp(south)" hcp(south), average "hcp(north)" hcp(north), average "1D-3C " 100 * (oneDiamond and n3C), average "1H-3C " 100 * (oneHeart and n3C), average "1H-3D " 100 * (oneHeart and n3D), average "1S-3C " 100 * (oneSpade and n3C), average "1S-3D " 100 * (oneSpade and n3D), average "1S-3H " 100 * (oneSpade and n3H),