# alias: SandwichNtBPH # button-text: Sandwich 1N BPH # gib-works: true # bba-works: true # auction-filter: Auction.....\nPass +1[CDH] +Pass +1[DHS]\n # convention-card-ns: 21GF-GIB # convention-card-ew: 21GF-GIB /*@chat --- A Sandwich 1N by a passed hand shows the two unbid suits. @chat*/ dealer south #include "script/TP" # Defines tpNorth, tpSouth, tpEast, tpWest # Define South's biddable suits -- GIB: 5+ cards is biddable sGS = spades(south)>4 sGH = hearts(south)>4 sGD = diamonds(south)>4 sGC = clubs(south)>4 # Predict West's opening suit s = spades(west) h = hearts(west) d = diamonds(west) c = clubs(west) wRange = hcp(west)>11 and tpWest>11 and hcp(west)<15 oS = s>4 and s>=h and s>=d and s>=c and wRange oH = not oS and h>4 and h>=d and h>=c and wRange oD = not (oS or oH) and ((d>3 and d>=c) or c<3) and wRange oC = not (oS or oH or oD) and wRange # Define East's responses eD = diamonds(east)>3 and hearts(east)<4 and spades(east)<4 eH = (hearts(east)==4 and spades(east)<5) or (hearts(east)>4 and hearts(east)>spades(east)) eS = spades(east)>3 and not eH eShape = not shape(east, any 5332 +any 4432 +any 4333) # Define East's response and South's biddable suits CD = oC and eD and sGH and sGS CH = oC and eH and sGD and sGS CS = oC and eS and sGD and sGH DH = oD and eH and sGC and sGS DS = oD and eS and sGC and sGH HS = oH and eS and sGC and sGD and hearts(east)<3 //avoid a H raise # South does not have a GIB opening hand sShape = shape(south,any 7600 +any 66xx +any 65xx +any 5521) sRange = hcp(south)<11 and tpSouth>9 and tpSouth<13 # Define possible North overcalls nDO = oC and diamonds(north)==5 nHO = (oC or oD) and hearts(north)==5 nSO = (oC or oD or oH) and spades(north)==5 # Avoid North's Preempt, Weak 2, Overcall, or Takeout Double nPreempt = shape(north, any 9xxx +any 8xxx +any 7xxx) and tpNorth>3 nWeakTwo = shape(north, any 6xxx) and tpNorth>5 nOvercall = (nDO or nHO or nSO) and tpNorth>5 nDouble = shape(north, any 4333 +any 4432 +any 4441 +any 5332 +any 54xx) and tpNorth>11 nHand = not (nPreempt or nWeakTwo or nOvercall or nDouble) eNT = shape(east, any 4333) eLongSuit = shape(east, any 9xxx +any 8xxx +any 7xxx +any 6xxx) eHand = hcp(east)>5 and hcp(east)<11 and not (eNT or eLongSuit) sRange and nHand and eHand and (CD or CH or CS or DH or DS or HS) # Generate Statistics produce 40 action average "CD " 100 * CD, average "CH " 100 * CH, average "CS " 100 * CS, average "DH " 100 * DH, average "DS " 100 * DS, average "HS " 100 * HS,