Many years ago, I wrote a constrained bridge hand generator.  This is the
problem:

Bridge is an interesting game.  You play and you learn clues about the
other hands.  These clues become constraints in how the other hands can
appear.

You also know what cards appear in your hand, and you are sure about them.

When you "count points", you count aces as 4, kings as 3, queens as 2,
jacks as 1.  There are High Card Points, and points which include
distribution (or long cards in a suit, same things.

A void is worth three points, a singleton is worth 2 points, and a
doubleton is worth one points.

Now suppose your partner opens one spade.  They promise 13+ points, and 5
or more spade.

You have five diamonds, two spades. and 11 points.  Can you make three no
trump?  Four spades?

You bid two diamonds, and your partner bids two spades.  So they have a
minimum hand, 13-16 points, and 5 spades, and so fourth.  Should you raise
them to three?  Just bid four?

Someone suggested:  Make a program that will deal 100 bridge hands and make
them all match those constraints.  13-16 points, and five spades - and
also, since the opponents didn't bid against you, presume that they can't
have 13 points in either hand. or 10 points and a five card suit.

So I wrote a program in IBM Basic that dealt these hands, thousands of
them, and filtered out the ones that didn't match the constraints..

Anyone want to write a "constrained hand generator" in J?  First off, one
hand should be specified, then the others should be able to be constrained
in

(1) point card range.  High, low, both, and it should be possible to be
open ended.

(2) distribution.  At least x in any suit, at most x cards in a suit, a
minimum of x points in a suit.

(3) no trump distribution.  When you open or relay no trump, you promise a
balanced hand.   A balanced hand can be 4-3-3-3, 4-4-3-2 (and if more than
18 HCP points the doubleton must have an honor).  You can also have 5-3-3-2
distribution if the 5 card suit is clubs or diamonds.  You can't have two
doubletons, a singleton, a void, or a 5 card heart or spade suit (some
people consider this optional.

Why write this program?


So, suppose you open one no trump.  Your partner bids two clubs, you bid
two diamonds.  Your partner knows that you have, 15-17 HCP, a balanced
hand, and a maximum of 3 hearts and 3 spades.  You know a lot of
information.  You can pass 2 diamonds (if you have a lot of diamonds, like
5, since partner might have 2 diamonds).  Your partner is supposed to
"place" the contract.  There is a bonus for playing at 3 NT, 4 hearts or
spades, or 5 clubs or diamonds, so you want to bid up to those levels if
you can so reasonably.

But what might partner have?

What do your opponents have?

Partner might get a constraint list like, "NT, >: 15 HCP, <:17 HCP. <4 S,
<4 H"

You know what you have, you might have S: A984, H: K65 D: QJ985 C: 6

What do you bid?  Opposite some hands, this might make 5 diamonds,
 opposite others, 2D is a good contract.  With a club stopper, 3 NT might
be a possibility.

The point is to generate 100 hands that meet the criteria, and then analyze
them.  How many of those hands will make which of those contracts?

When I used this program, I'd write down my hand and what I knew about the
others.  Then I'd generate 100 constrained hands (depending on constraints,
it might take many thousands of trials) and I'd look at those trials.  Was
I right in my decision...did most hands make the contract I thought about
bidding, given the constraints?

Anyone want to take a whack at a constrained hand generator?

You need to generate the hands from a list of 39 residual cards and either
force the points and distribution to be correct or filter for them.

Finally, it is possible that the constraints can't be met.  For example,
there are 40 HCP in the deck, and you might have a hand that holds 3 HCP
and you might constrain your partner to <15 HCP, and the opponents < 13
points.  If that happens, you should either note the error or you should
"believe your partner" and disbelieve your opponents.


Anyone want to take a whack at this?  Presume that analysis will be done
manually...

On Fri, Jan 6, 2012 at 5:04 AM, Linda Alvord <lindaalv...@verizon.net>wrote:

>
>
> -----Original Message-----
> From: David Ward Lambert [mailto:b49p23t...@stny.rr.com]
> Sent: Thursday, January 05, 2012 12:44 PM
> To: Linda Alvord
> Subject: jsoftware bridge deal challenge
>
> NB. Our doles are similar
> NB. The LA versions contain more 4s, 13s and 52s
> NB. therefor the DWL versions are more general.
> NB. doledwl is hard coded for 4 hands.
>
> 's c'=: ;:'shdc AKQJT98765432'
> vdeckdwl=: [: |: [: ,/ ,"0~/
> deckdwl=: s vdeckdwl c
> mixdwl=: ({~ [: ?~ #)"1
> doledwl=: [: |:"2 [: ({~ [: |: _4 [\ [: i. #) |:
>
> NB. number_of_hands doledwl2 deck
> NB. works for number of hands as a factor of the number of cards
> doledwl2=: 4&$: :(4 : '([: |:"2 [: ({~ [: |: (-x) [\ [: i. #) |:)y')
>
> ----------------------------------------------------------------------
> For information about J forums see http://www.jsoftware.com/forums.htm
>



-- 
Of course I can ride in the carpool lane, officer.  Jesus is my constant
companion.
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm

Reply via email to