# alias: PuppetStayman1N # button-text: TEST # gib-works: false # bba-works: true # auction-filter: Note....1N-3C Puppet # convention-card-ns: 21GF-Puppet # convention-card-ew: 21GF-SPECIALS2 // ew paying Multi-Landy /*@chat --- Puppet Stayman after 1NT (15-17) After a 1NT opening, responder uses 3!C to ask about opener's major suits. (In contrast to standard Stayman which uses 2!C and asks for 4-card majors only.) Opener's responses: • 3!D - No 5-card major, but has at least one 4-card major • 3!H - 5-card heart suit • 3!S - 5-card spade suit • 3NT - No 4-card or 5-card major Responder's follow-ups after 3!D (one or both 4-card majors): • Bid the major you DO NOT hold (with one 4-card major) This lets the strong hand (opener) declare if a fit exists. • 4!D - both 4-card majors, no slam interest; opener picks • 4!C - both 4-card majors WITH slam interest After 3!H or 3!S (opener shows 5-card major): • 3NT - denies a fit • Bid the OTHER major - slam try agreeing opener's suit • Raise to game/slam - standard After 3NT (no majors): natural minor-suit slam investigation. Bid Puppet 3!C with a Game-forcing hand (10+ HCP) and at least one of the following: • Any 4-card major (looking for 4-4 fit) • 3-card support for one or both majors (looking for 5-3 fit) Puppet 3!C is a stayman system -- on in competition. Reference: https://www.bridgebum.com/puppet_stayman.php @chat*/ dealer south # South opens 1NT (15-17 balanced) ntShape = shape(south,any 4333+any 4432+any 5332-5xxx-x5xx) ntRange = hcp(south)>14 and hcp(south)<18 oneN = ntShape and ntRange # North's hand qualifies for Puppet: # - at least one 4-card major, OR # - 3-card support for both majors (looking for 5-3 fit with opener) sN = spades(north) hN = hearts(north) nHas4SAndNot4H = sN==4 and hN<4 nHas4HAndNot4S = hN==4 and sN<4 nHasBoth4M = sN==4 and hN==4 nHas3S3H = sN==3 and hN==3 nQualifies = nHas4SAndNot4H or nHas4HAndNot4S or nHasBoth4M or nHas3S3H # Exclude very long suits (would use a different system, e.g., transfers) nNoLongSuit = sN<5 and hN<5 and diamonds(north)<6 and clubs(north)<6 # Define HCP zones for North (responder). # After 1NT (15-17), need 10+ to invoke Puppet for game-going purposes. # 0-9: would pass or use other tools (Stayman/transfer) # 10-15: game-going # 16-18: slam invite # 19+: slam force tooWeak = hcp(north)<10 game = hcp(north)>9 and hcp(north)<16 slamInvite = hcp(north)>15 and hcp(north)<19 slamForce = hcp(north)>18 #include "script/Leveling" # Leveling: balance game and slam outcomes. # Game-zone (10-15) is the most common range; slam ranges rarer. levGame = game and keep33 levSlamInv = slamInvite and keep levSlamForce = slamForce and keep levelTheDeal = levGame or levSlamInv or levSlamForce /* --- 15-17 Notrump Opening and Multi-Landy action. • X = 4-card !H/!S w/5+!C/!D, a 6+ !C/!D, a 5-card !H/!S, a balanced 19+ • 2C = at least 5-4 or 4-5 in !H&!S • 2D = 6 !H/!S w/o a side suit • 2H = 5 !H & 4+ !C/!D • 2S = 5 spades & 4+ !C/!D • 2N = 5-5 or better in !C/!D */ westX = shape(west,4xxx+x4xx) and shape(west,xx5x+xxx5) or shape(west,5xxx+x5xx+xx6x+xxx6) westC = shape(west,54xx+45xx) and hcp(west)>8 westD = shape(west,6xxx+x6xx-any 65xx-any 64xx) and hcp(west)>8 westH = shape(west,x5xx) and shape(west,xx4x+xxx4) and hcp(west)>8 westS = shape(west,5xxx) and shape(west,xx4x+xxx4) and hcp(west)>8 westN = shape(west,xx66+xx65+xx56) and hcp(west)>8 westActs = westX or west2C or west2D or west2H or west2S or west2N # Combine oneN and nQualifies and nNoLongSuit and westActs and levelTheDeal action average "Has 4!S only " 100 * nHas4SAndNot4H, average "Has 4!H only " 100 * nHas4HAndNot4S, average "Has both 4M " 100 * nHasBoth4M, average "Has 3-card major(s)" 100 * nHas3S3H, average "Game range (10-15) " 100 * game, average "Slam invite (16-18)" 100 * slamInvite, average "Slam force (19+) " 100 * slamForce,