# alias: BasicOpenersRebid # button-text: Opener's Rebid # gib-works: true # bba-works: true # auction-filter: Auction.....\n1[CDHS] +Pass +[1-5][CDHSN] .* Pass\n(P|[1-5]) # curate: kind=bidding # convention-card-ns: Basic-Bridge # convention-card-ew: Basic-Bridge /*@chat --- Basic: Opener's Rebid (beginner) You opened one of a suit and partner responded. Your REBID finishes the picture in one more call -- how strong you are (a minimum, or a little extra) and what shape. • Balanced 12-14 with no fit: rebid 1NT. One call shows the whole hand. • Four-card support for partner's suit: raise. Two of the suit shows a minimum; a jump to three shows about 16-18 and invites game. • A six-card suit and no fit: rebid your suit. Cheaply (the two level) shows a minimum; a jump (the three level) shows extra and invites. • A second four-card suit you can show at the ONE level: bid it. A new suit up the line needs no extra strength. The level of the rebid is the message: the cheapest call shows a minimum, a jump shows about 16-18 and asks partner to think about game. @chat*/ dealer south #include "script/Leveling" #include "script/Calm-Opponents" # provides calmOpps (both opponents too weak or flat to interfere) sHcp = hcp(south) s = spades(south) h = hearts(south) d = diamonds(south) c = clubs(south) # Strength bands. A minimum opener rebids cheaply; 16-18 jumps to invite. Cap below 19 # so we never stray into strong / 2C / reversing territory (not on the basic card). minOpener = sHcp > 11 and sHcp < 16 // 12-15: the cheapest rebid invOpener = sHcp > 15 and sHcp < 18 // 16-17: the invitational jump (cap below game-force) opener = minOpener or invOpener # Responder: 6-9, a minimal one-level response so OPENER'S rebid carries the message # (a stronger responder would jump or force, stealing the rebid decision from South). northHand = hcp(north) > 5 and hcp(north) < 10 # The major North will introduce (BBA bids 4-card suits up the line; 4-4 -> 1H). nRespH = hearts(north) > 3 and (hearts(north) > spades(north) or (hearts(north) == 4 and spades(north) == 4)) nRespS = spades(north) > 3 and not nRespH # ===== Family 1 -- rebid 1NT: balanced 12-14, no 4-card major, opens a minor ===== f1 = shape(south, any 4432 + any 4333 + any 5332) and s < 4 and h < 4 and sHcp > 11 and sHcp < 15 # ===== Family 2 -- raise partner's major: minor opener with 4-card support ===== # South opens a minor (no 5-card major) and holds exactly 4 of the major North bids. f2support = s < 5 and h < 5 and ((nRespH and h == 4) or (nRespS and s == 4)) f2min = f2support and minOpener f2inv = f2support and invOpener # ===== Family 3 -- rebid own six-card suit: no fit for partner ===== # Six-card minor opener North answers in a major, or a six-card heart opener North # answers 1S. North is short in opener's suit, so North introduces a new suit instead # of raising, and opener repeats the long suit. sixMinor = (d > 5 or c > 5) and s < 5 and h < 5 noSupport = not ((nRespH and h > 3) or (nRespS and s > 3)) sixHeart = h > 5 and s < 5 and nRespS and hearts(north) < 3 f3base = (sixMinor and noSupport) or sixHeart f3min = f3base and minOpener f3inv = f3base and invOpener # ===== Family 4 -- new suit at the one level: open 1D, rebid 1S over partner's 1H ===== # South opens 1D holding four spades; North responds 1H; South shows spades cheaply, 1S. f4 = d > 3 and d >= s and s == 4 and h < 4 and c < 4 and nRespH and minOpener southHand = f1 or f2min or f2inv or f3min or f3inv or f4 # ===== Level toward mostly-minimum spread; invitational jumps are the minority tier ===== levF1 = f1 and keep75 levF2min = f2min and keep levF2inv = f2inv and keep47 levF3min = f3min and keep levF3inv = f3inv and keep47 levF4 = f4 and keep levelTheDeal = levF1 or levF2min or levF2inv or levF3min or levF3inv or levF4 southHand and northHand and calmOpps and levelTheDeal produce 30 action average "South HCP avg " hcp(south), average "F1 rebid 1NT % " 100 * f1, average "F2 raise partner (min) % " 100 * f2min, average "F2 raise partner (inv) % " 100 * f2inv, average "F3 rebid suit (min) % " 100 * f3min, average "F3 rebid suit (inv) % " 100 * f3inv, average "F4 new suit 1-level % " 100 * f4,