$Any := (Points >= 0); $veryBal := (shape [4,3,3,3] OR [4,4,3,2]); $ntop := ($veryBal OR (shape [5,3,3,2])); $weak2h := (5 TO 9 Points) AND (Hearts ?= 6); $weak2s := (5 TO 9 Points) AND (Spades ?= 6); $1c := (Points > 16); $1n := ((12 TO 14 Points) AND $veryBal) OR ((11 TO 13 Points) AND (shape [5,3,3,2])); $1h := (11 TO 16 Points) AND (Hearts > 4) AND (Hearts > Spades) AND NOT ($1n); $1s := (11 TO 16 Points) AND (Spades > 4) AND (Spades >= Hearts) AND NOT ($1n); $2c := (11 TO 16 Points) AND ((Clubs > 5) OR ((Clubs > 4) AND ((Hearts ?= 4) OR (Spades ?= 4) OR ((Diamonds ?= 4) AND (Points > 13))))); $1d := (11 TO 16 Points) AND (Hearts < 5) AND (Spades < 5) AND NOT ($1n) AND NOT ($2c); $2d := ($weak2h) OR ($weak2s); $2h := (11 TO 16 Points) AND (pattern [4-4-1-4] OR [4-3-1-5] OR [3-4-1-5] OR [4-4-0-5]); $2s := (5 TO 9 Points) AND (((Spades > 4) AND (Clubs > 4)) OR ((Diamonds > 4) AND (Hearts > 4))); $2n := (5 TO 9 Points) AND (((Spades > 4) AND (Hearts > 4)) OR ((Diamonds > 4) AND (Clubs > 4))); $notBalanced := NOT ($ntop); $respShape := (pattern [4-4-4-1]); $1nDbl := (Points >= 15); $1nOvercallShape := (Spades > 5) OR (Hearts > 5) OR (Diamonds > 5) OR (Clubs > 5); $1nOvercall := (Points > 11) AND $1nOvercallShape; $1nAction := ($1nOvercall) OR ($1nDbl); $1nNoAction := (NOT ($1nAction)); $1s-oc := (Points > 8) AND (Spades > 4); $1h-oc := (Points > 8) AND (Hearts > 4); $2c-oc := ((Points > 9) AND (Clubs > 5)) OR ((Points > 12) AND (Clubs ?= 5)); $2d-oc := ((Points > 9) AND (Diamonds > 5)) OR ((Points > 12) AND (Diamonds ?= 5)); $1214nt := (12 TO 14 Points) AND ($ntop); $1517nt := (15 TO 17 Points) AND ($ntop); $1d-x := ((Points > 11) AND (Diamonds < 3) AND (Spades < 5) AND (Hearts < 5) AND (shape [4,4,3,2] OR [4,4,4,1] OR [5,4,3,1] OR [5,4,4,0])) OR (Points > 17); $1dAction := ($1d-x) OR ($1s-oc) OR ($1h-oc) OR ($2c-oc) OR ($2d-oc) OR ($1517nt); $1dNoAction := NOT ($1dAction); $1d-1s-x := ((Points > 11) AND (Hearts > 3) AND (Clubs > 3)) OR (Points > 17); $1d-1sAction := $1d-1s-x OR $2c-oc OR $2d-oc OR $1517nt; $1d-1sNoAction := NOT ($1d-1sAction); $1517nt-s := (Spades > 3) AND ($1517nt); $1d-1s-base := (Points > 7) AND (Spades > 3); $4-4M := (Hearts ?= 4) AND (Spades ?= 4); $1x-2m-base := (Points > 11) AND ((Diamonds > 4) OR (Clubs > 4)) AND (Spades < 5) AND (Hearts < 5); $1d-1s-no44M := $1d-1s-base AND NOT ($4-4M); $1d-1s := $1d-1s-no44M AND NOT ($1x-2m-base); $1d-1s-1n-ext := (pattern [1-4-5-3] OR [1-4-3-5] OR [1-4-4-4]) OR ($ntop); $1d-1s-1n := ((12 TO 13 Points) AND (Spades < 4) AND (Hearts < 5)) AND ($1d-1s-1n-ext); $1d-1s-unbal := ((12 TO 13 Points) AND (Spades < 4) AND (Hearts < 5) AND (shape [5,4,3,1] OR [4,4,4,1] OR [6,3,3,1] OR [6,3,2,2])); $1d-1s-1n-2n-shape := (Spades ?= 4) AND (Hearts < 4) AND ((shape [4,3,3,3] OR [4,4,3,2] OR [5,4,2,2]) OR (pattern [4-1-4-4])); $1d-1s-1n-2n-12 := (Points ?= 12) AND ($1d-1s-1n-2n-shape); $1d-1s-1n-2n-13 := (Points ?= 13) AND ($1d-1s-1n-2n-shape); $1d-1s-1n-2n-11 := (Points ?= 11) AND ($1d-1s-1n-2n-shape); $1d-1s-1n-mayPass := (8 TO 9 Points) AND (Spades > 3) AND (Hearts < 4) AND ($ntop OR (shape [5,4,3,1] OR [4,4,4,1] OR [5,4,2,2])); $1719nt := (17 TO 19 Points) AND ($ntop); $5PtResp := (Points ?= 5) AND $respShape; $6PtResp := (Points ?= 6) AND $respShape; $7PtResp := (Points ?= 7) AND $respShape; $8PtResp := (Points ?= 8) AND $respShape; $9PtResp := (Points ?= 9) AND $respShape; $10PtResp := (Points ?= 10) AND $respShape; $11PtResp := (Points ?= 11) AND $respShape; $12PtResp := (Points ?= 12) AND $respShape; $13PtResp := (Points ?= 13) AND $respShape; $14PtResp := (Points ?= 14) AND $respShape; $Pass := (Points < 12); $Dont2HShape := ((Spades > 4) AND (Hearts > 3)) OR ((Spades > 3) AND (Hearts > 4)); $Dont2H := $Dont2HShape AND (Points > 8); $4-4-32 := (pattern [4-4-3-2]) OR (pattern [4-4-2-3]); $4-4-32-10-12 := $4-4-32 AND (Points > 9) AND (Points < 13); $4-4-41 := (pattern [4-4-4-1]) OR (pattern [4-4-1-4]); $4-4-41-10-12 := $4-4-41 AND (Points > 9) AND (Points < 13); end