# alias: PassedHandRespStr # button-text: Passed Hand Response Structure # gib-works: false # bba-works: true # auction-filter: . # convention-card-ns: 21GF-DEFAULT # convention-card-ew: 21GF-GIB /*@chat --- Passed Hand Response Structure After P (P) 1M (P)... • a raise shows 4-7 Dummy Points (DP) & 3+ fit • 2!C is Reverse Drury showing 8+ DP & 3+ fit • a new suit (2!D/!H) shows 10+ HCP, no fit, & a good 5-card suit • a jump in a new suit shows 8+ DP, a 4+ fit, & a good 5-card suit • 3C shows 8-9 HCP, no fit &, 6+ !C invitational. Note: Robots bid with 9-10. • 3N shows 8+ HCP, 3+ fit, & an unspecified singleton • 4X shows 8+ HCP, 3+ fit, & a void • other bids are natural Responder's rebids of Pass, 1!S, & 1N are excluded. https://tinyurl.com/Passed-Hand-Resp-Str @chat*/ # Gavin's Passed Hand Response Structure dealer south produce 30 # Define pesky opps e/w distributions and HCP. We don’t want them mucking up our auctions #include "script/Calm-Opponents" notNT = not (shape(north, any 4333 +any 4432 +any 5332) and hcp(north)>14 and hcp(north)<18) # South passes sHCP = hcp(south) sPasses = shape(south,xxxx-any 9xxx-any 8xxx-any 7xxx-any 6xxx-any 65xx-any 64xx-any 55xx+xxx6) and sHCP<12 # Define North's opening major nSpades = spades(north)>4 and hearts(north)<5 nHearts = hearts(north)>4 and spades(north)<5 nMajor = nSpades or nHearts # Define South's suits for 2-level response sD5 = diamonds(south)==5 and top3(south,diamonds)>1 sH5 = hearts(south) ==5 and top3(south,hearts) >1 new5 = sD5 or sH5 # Define South's 3- or 4-card support s3cards = (nSpades and spades(south)==3) or (nHearts and hearts(south)==3) s4cards = (nSpades and spades(south)>3) or (nHearts and hearts(south)>3) sSupport = s3cards or s4cards # Define South's Fit Jumps fjC = clubs(south) >4 and top3(south,clubs) >1 fjD = diamonds(south)>4 and top3(south,diamonds)>1 fjH = hearts(south) >4 and top3(south,hearts) >1 and nSpades fjSuit = fjC or fjD or fjH # Define South's Support Points (sPoints) v1 = shape(south, any 0xxx) ? 5 : 0 s1 = shape(south, any 1xxx) ? 3 : 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 shortSuitPoints = v1+s1+d1+d2+d3 sPoints = sSupport ? shortSuitPoints + sHCP : sHCP singleton = shape(south,any 1xxx) void = shape(south,any 0xxx) spadeSuit = spades(south)>3 noSupport = not sSupport clubSuit = clubs(south)>5 and hcp(south,clubs)>4 # Define responses raise = sPoints>3 and sPoints<8 and sSupport fitJump = sPoints>7 and s4cards and fjSuit splinter1 = sHCP>7 and sSupport and singleton and not (fitJump) splinter0 = sHCP>7 and sSupport and void and not (fitJump) drury = sPoints>7 and sSupport and not (fitJump or raise or splinter1 or splinter0) newSuit = sHCP>9 and noSupport and new5 threeClubs = sHCP>7 and noSupport and clubSuit and not (newSuit) oneSp = sHCP>5 and noSupport and spadeSuit and not (threeClubs or newSuit) nt = sHCP>5 and noSupport and not (threeClubs or newSuit or oneSp) pass = not (fitJump or raise or splinter1 or splinter0 or drury or newSuit or threeClubs or oneSp or nt) nOpens = nMajor and hcp(north)>11 and hcp(north)<20 and notNT and shape(north,any 6xxx+any 5xxx-any 65xx-any 55xx) sPasses and nOpens and calmOpps and not (oneSp or nt or pass) action printoneline, average "raise 4-7 sPts 3+fit " 100 * raise, average "fit jump 8+ sPts 4+fit good 2nd suit " 100 * fitJump, average "splinter1 8+ sHCP 3+fit singleton " 100 * splinter1, average "splinter0 8+ sHCP 3+fit void " 100 * splinter0, average "drury 8+ sPts 3+fit " 100 * drury, average "2D/2H 10+ sHCP no fit good suit " 100 * newSuit, average "3C 8-9 sHCP no fit 6 Clubs inv. " 100 * threeClubs, // Robots bid with 10-11 HCP average "1S 6+ sHCP no fit 4+S " 100 * oneSp, average "1N 6+ sHCP no fit " 100 * nt, average "Pass " 100 * pass, frequency "Support Points" (sPoints,0,16),