# alias: TwoNT # button-text: 2N 20-21 (Lev) # gib-works: true # bba-works: true # auction-filter: Auction.....\n2NT? # convention-card-ns: 21GF-DEFAULT # convention-card-ew: 21GF-GIB /*@chat --- 20-21 Notrump and any response. Leveled so that the various responses occur at more nearly the same frequency. @chat*/ dealer south #include "script/Predict-Opening-1-Bid" ### NORTH ### # Define suit lengths cN = clubs(north) dN = diamonds(north) hN = hearts(north) sN = spades(north) # Calculate strength for North -- hcp plus 1 for every card over 4 in any suit nlp1 = sN>4 ? sN-4 : 0 nlp2 = hN>4 ? hN-4 : 0 nlp3 = dN>4 ? dN-4 : 0 nlp4 = cN>4 ? cN-4 : 0 strength = nlp1 + nlp2 + nlp3 + nlp4 + hcp(north) # Define objective weak = strength<5 game = strength>4 and strength<11 slam = strength>10 # Define One Minor and Both Minors cSuit = cN>5 and hcp(north,clubs)>2 and dN<4 and shape(north,xxxx-any 66xx-any 65xx) dSuit = dN>5 and hcp(north,diamonds)>2 and cN<4 and shape(north,xxxx-any 66xx-any 65xx) minor2 = ((cN>4 and dN>3) or (dN>4 and cN>3)) and (hcp(north,clubs) + hcp(north,diamonds))>2 # Define Responses smolen = shape(north,54xx+45xx-any 7xxx-any 6xxx-any 55xx) and not weak and shape(south,33xx+32xx+23xx) // rebid 2D stayman = shape(north,44xx+4xxx+x4xx-54xx-45xx-any 7xxx-any 6xxx) and not weak and not smolen puppet = shape(north,4xxx+3xxx+x4xx+x3xx-any 6xxx -any 5xxx) and not weak and not (smolen or stayman) MSS = minor2 and not weak and not (smolen or stayman) oneMinor = (cSuit or dSuit) and not weak and not (smolen or stayman or MSS) balanced = shape(north,any 4333 +any 4432 +any 5332 -5xxx-x5xx) and not weak and not (smolen or stayman or puppet or MSS) texas = (sN>5 or hN>5) and not weak jacoby = ((sN>4 and hN<4) or (hN>4 and sN<4)) and not texas // no strength requirement pass = weak and not jacoby #include "script/Leveling" levBalanced = balanced and keep19 levPuppet = puppet and keep19 levSmolen = smolen and keep levStayman = stayman and keep06 levTexas = texas and keep11 levJacoby = jacoby and keep06 levOneMinor = oneMinor and keep25 levMSS = MSS and keep33 levPart = weak and keep levGame = game and keep11 levSlam = slam and keep levelTheDeal = (levBalanced or levSmolen or levPuppet or levStayman or levTexas or levJacoby or levOneMinor or levMSS) and (levPart or levGame or levSlam) ### Do it ### twoNT and levelTheDeal ### Generate Statistics ### produce 30 action printoneline, average "Pass " 100 * weak, average "Balanced, not Stayman " 100 * balanced, // and not puppet, stayman, or MSS average "Puppet, not Stayman " 100 * puppet, // and not stayman or MSS average "Smolen " 100 * smolen, average "Stayman, not Smolen " 100 * stayman, average "Texas " 100 * texas, average "Jacoby, not Texas " 100 * jacoby, // and not texas average "One Minor " 100 * oneMinor, // and not puppet, stayman, or jacoby average "MSS, not Stayman " 100 * MSS, // and not puppet or stayman average "Partscore " 100 * weak, average "Game " 100 * game, average "Slam " 100 * slam,