Jump to content

web based deal generator


Recommended Posts

We have a web based tool for generating hands. It is a front end to "Dealer" by Hans van Staveren and others

 

http://www.bridgebase.com/tools/dealer/dealer.php

 

 

You'll need to read the docs. Dealer is quite powerful. I'm open to suggestions for improving the web utility.

 

We use this Dealer program in the web version of BBO as well. A teaching table (or a Partnership bidding table, for that matter) can use constrained hands, and the constraints can be expressed as raw input to Dealer.

 

 

So if you're looking for a way to practice (say) "Strong NT sequences when opener has a 5 card major" with your partner, you can use the web version of BBO, using the web page above to tinker with Dealer until you're confident that you have the constraints down pat.

 

The Partnership bidding tables in the web version offer ( currently free ) robots for use in the EW seats. They don't bid like Kokish, but IMO their bidding is adequate for practicing sequences.

 

You can login to BBO via the web at

http://www.bridgebase.com

 

 

Uday

Link to comment
Share on other sites

I'm open to suggestions for improving the web utility. 

I changed the action on the default script to 'print(north)' and the output was:

 

1. 2. 3. 4.
K Q 7 2 A Q 6 2 A 9 8 5 A Q 6
A T 9 9 2 J 9 J 4 3
J 8 A 9 4 2 A K J 3 A K Q
K J 7 5 A Q 3 T 5 4 A K Q 7

5.
A Q 8 2
K 6
A 6 5 2
9 3 2 

Looks like the spaces that dealer generates are not hard spaces. Frequency charts suffer from the same space issue.

Link to comment
Share on other sites

You'll need to read the docs. Dealer is quite powerful. I'm open to suggestions for improving the web utility.

Hi Uday

 

Thanks very much for integrating Dealer in to BBO.

This is a feature that I've been looking forward to for the better part of 10 years.

 

From my perspective, the main enhancement that you need to think about relates to "content" rather than "features".

 

The real value in Dealer is the ability to construct elaborate custom scripts for (virtually) any conceivable hand type.

 

We all know that 99 users out of 100 will never want to learn anything about Dealer's scripting capabilities. What we need to do is figure out some way that the "geeky" 1% who like writing scripts are able to effectively share their work everyone else.

 

As a simple example: Let's assume that some BBO user creates a script that does a near perfect job generating 15-17 HCP 1NT openings. In an ideal world, the BBO GUI would provide a simple interface into that Dealer script. The obvious problem is separating the wheat from the chaff... How do we identify "good" scripts for a given opening? In particular, how can we do this when there is bound to be a lot of disagreement about what constitues a "legitimate" 1S opening playing 2/1, SAYC, whatever.

 

I think that a good starting point actually involves the BBO forums. Create a new section of the forums where users can post / discuss scripts. With luck, we'll be able to reach some consensus for some of the "simplier" cases [What hands are suitable for a 15-17 HCP 1NT opening].

 

If we can reach agreement on this, we'll see how things go...

If we can't reach agreement on this, the enter idea can be shelved as a bad idea.

Link to comment
Share on other sites

WOW

 

I was excited enough about this feature that I left work early so I could play with it.

 

I just tried a "Baptism by Fire" I input one of my old MOSCITO scripts and the system behaved with flying colors.

 

Here's an example of the type of stuff you can do with this new system:

 

The following script provides a decent enough approximation of my opening style playing MOSCITO.

 

The initial "X" lines of this script define all of the nromal opening bids.

 

I can edit the last line of the script to state what bid I want the hand generator to create. At the moment, the script will cause Dealer to generate Two Diamond openings. (Please note: These are assumed fit 2D openings that show

 

4+ Diamonds,

4+ cards in either major

insufficient strength for a constructive opening

and enough strength / shape for a preempt

 

THIS FEATURE IS REALLY REALLY COOL!!!!!!!!!!

 

 

 

 

 

_____________________

 

 

######### Definition - Opening Points

 

# 11 is the index for c13

# This function allows the user to define valuations for cacluating

# HCP

# Most hand evaluation is performed used a modified version of

# the 4 Aces Point Count.(Ace = 3, King = 2, ...)

# All values are multiplied by 100 to avoid fractions

 

altcount 11 300 200 100 50 20

 

############## STRONG OPENINGS

 

one_club =

 

(

hcp(north)>=17

or

c13(north) >=1000

or

(hcp(north)>=15 and cccc(north)>=1600 and c13(north)>=900)

or

(hcp(north)==14 and cccc(north)>=1900 and c13(north)>=900)

or

(hcp(north)==13 and cccc(north)>=2000 and c13(north)>=900)

or

 

(

hcp(north)>=15 and

shape(north, any 4333 + any 4432 + any 5332 + any

5422)

and

c13(north) >= 900

)

 

)

 

#####

#Opening strength defines the minimum strength for a limited #opening bid

#####

 

opening_strength =

(

(

cccc(north) - 25 * shape(north, any 4441 + any 5440) >= 1050

 

or hcp(north) >= 11

)

 

and

c13(north) >= 600

)

 

and not

 

one_club

 

#MOSCITO Opening structure

 

#################### SINGLE SUITED PREEMPTS

 

#################### MAJORS

 

four_diamonds =

 

(

(

spades(north) >= 8 and

hascard(north, AS) + hascard(north, KS) == 2

)

 

or

 

(

spades(north) == 7 and

hascard(north, AS) + hascard(north, KS) + hascard(north,QS) == 3

)

)

 

and

 

hascard(north,AC) + hascard(north,KC) +

hascard(north,AD) + hascard(north,KD) +

hascard(north,AH) + hascard(north,KH) <=1

 

four_spades =

 

hcp(north) <= 9

 

and

 

(

(

spades(north) >= 7 and

 

hascard(north, AS) + hascard(north, KS) +

hascard(north,QS) + hascard(north, JS) >= 3

)

 

or

 

spades(north) >= 8

)

 

and not four_diamonds

 

three_spades =

 

spades(north) >= 6

 

and

 

(

hascard(north, AS) + hascard(north, KS) +

hascard(north, QS) + hascard(north, JS) >= 2

)

 

and

 

(

hearts(north) <=1 or

diamonds(north) <=1 or

clubs(north) <= 1

)

 

and

 

hcp(north) <= 9

 

and not four_diamonds

 

and not four_spades

 

four_clubs =

 

(

(

hearts(north) >= 8 and

hascard(north,AH) + hascard(north,KH) == 2

)

or

 

(

hearts(north) == 7 and

hascard(north,AH) + hascard(north,KH) + hascard(north,QH) == 3

)

)

 

and

 

hascard(north,AC) + hascard(north,KC) +

hascard(north,AD) + hascard(north,KD) +

hascard(north,AS) + hascard(north,KS) <=1

 

four_hearts =

 

hcp(north) <= 9

 

and

 

(

(

hearts(north) >= 7 and

 

hascard(north, AH) + hascard(north, KH) +

hascard(north,QH) + hascard(north, JH) >= 3

)

 

or

 

spades(north) >= 8

)

 

and not four_clubs

 

three_hearts =

 

hearts(north) >= 6

 

and

 

(

hascard(north, AH) + hascard(north, KH) +

hascard(north, QH) + hascard(north, JH) >= 2

)

 

and

 

(

spades(north) <=1 or

diamonds(north) <=1 or

clubs(north) <= 1

)

 

and

 

hcp(north) <= 9

 

and not four_clubs

 

and not four_hearts

 

############## MINORS

 

three_nt =

 

hcp(north) <= 9

 

and

 

(

(

clubs(north) >= 8

and

hascard(north,AS) + hascard(north,KS) +

hascard(north,AH) + hascard(north,KH) +

hascard(north,AD) + hascard(north,KD) <= 1

)

 

or

 

(

diamonds(north) >= 8

and

hascard(north,AS) + hascard(north,KS) +

hascard(north,AH) + hascard(north,KH) +

hascard(north,AC) + hascard(north,KC) <= 1

)

)

 

three_clubs =

 

clubs(north) >= 6

 

and

 

hascard(north, AC) + hascard(north, KC) + hascard(north, QC) == 2 and

 

hascard(north, AD) + hascard(north, KD) +

hascard(north, AH) + hascard(north, KH) +

hascard(north, AS) + hascard(north, KS) == 0 and

 

hcp(north) <=9

 

and not three_nt

 

three_diamonds =

 

diamonds(north) >= 6

 

and

 

hascard(north, AD) + hascard(north, KD) + hascard(north, QD) == 2 and

 

hascard(north, AC) + hascard(north, KC) +

hascard(north, AH) + hascard(north, KH) +

hascard(north, AS) + hascard(north, KS) == 0 and

 

hcp(north) <=9

 

and not three_nt

 

two_nt =

 

(clubs(north) >=6 and

 

hascard(north, AC) + hascard(north, KC) + hascard(north, QC) +

hascard(north, JC) == 2

 

and

 

hascard(north, AD) + hascard(north, KD) +

hascard(north, AH) + hascard(north, KH) +

hascard(north, AS) + hascard(north, KS) == 0

 

and

 

hascard(north, QD) + hascard(north, QH) + hascard(north, QS) <= 1

 

and

 

not three_clubs)

 

or

 

(diamonds(north) >=6 and

 

hascard(north, AD) + hascard(north, KD) + hascard(north, QD) +

hascard(north, JD) == 2

 

and

 

hascard(north, AC) + hascard(north, KC) +

hascard(north, AH) + hascard(north, KH) +

hascard(north, AS) + hascard(north, KS) == 0 and

 

hascard(north, QC) + hascard(north, QH) + hascard(north, QS) <= 1 and

 

not three_diamonds)

 

and not three_nt

 

preempts =

four_spades or

four_clubs or

three_spades or

four_hearts or

four_clubs or

three_hearts or

three_diamonds or

three_clubs or

three_nt or

two_nt

 

###############################

## Weak Opening Bids

###############################

 

two_diamonds =

 

not opening_strength and

hcp(north) <= 12 and

c13(north) >= 325 and

 

shape(north, any 4432, any 54xx, any 55xx, any 65xx) and

clubs(north) <= 3 and

diamonds(north) >=4

 

two_hearts =

 

not opening_strength and

hcp(north) <= 12 and

c13(north) >= 325 and

 

shape(north, any 4432, any 54xx, any 55xx, any 65xx) and

hearts(north) >= 4 and

 

(

spade(north) >= 4 or

clubs(north) >= 5

)

 

two_spades =

 

not opening_strength and

hcp(north) <= 12 and

c13(north) >= 325

 

and

 

(

(

shape(north, any 6322, any 6331, any 7222) and

spades(north) >=6

)

 

or

 

(

spades(north) >=4 and clubs(north) >=5

and hascard(north, AS) + hascard(north, KS) + hascard(north, QS) >= 1

)

)

 

############## LIMITED OPENINGS

 

##### Pre-Definitions

 

bad_spades = hascard(north, AS) + hascard(north, KS) + hascard(north,

QS) == 0

bad_hearts = hascard(north, AH) + hascard(north, KH) + hascard(north,

QH) == 0

balanced = shape(north, any 4432, any 5332, any 4333)

 

########

 

two_clubs =

opening_strength

and not preempts

 

and

 

(

 

(

clubs(north) >= 6 and

spades(north) < 4 and

hearts(north) < 3

)

 

or

 

(

clubs(north) >= 6 and

spades(north) == 4 and

bad_spades

)

 

or

 

(

clubs(north) >= 6 and

hearts(north) == 4 and

bad_hearts

)

 

)

 

one_notrump =

 

opening_strength and

 

(

 

(

balanced and not

shape(north, 5xxx, x5xx, 44xx, 4x4x, 4xx4, x44x, x4x4)

)

 

or

 

(

hearts(north) == 4 and

balanced and

(hcp(north) == 11 or hcp(north) == 12)

)

 

or

 

(

spades(north) == 4 and

balanced and

hearts(north) <= 3 and

(hcp(north) == 13 or hcp(north) == 14)

)

 

)

 

one_spade =

opening_strength

and not preempts

and not one_notrump

 

and

 

diamonds(north) >= 4 and

not one_notrump and

hearts(north) <4 and

spades(north) <4

 

or

 

(

 

diamonds(north) >=6 and

 

(

(spades(north) == 4 and bad_spades) or

(hearts(north) == 4 and bad_hearts)

)

 

)

 

one_heart =

 

opening_strength and

not two_clubs and

not one_notrump and

not one_spade and

 

(

 

(

spades(north) == 4 and

spades(north) > hearts(north)

)

 

or

 

(

spades(north) >= 5 and

spades(north) >= hearts(north)

)

 

)

 

one_diamond =

 

opening_strength and

not two_clubs and

not one_notrump and

not one_spade and

not one_heart

 

and

 

hearts(north) >= 4

 

and not

 

(balanced and hcp(north) <= 11)

 

###########

 

two_diamonds

Link to comment
Share on other sites

I think that a good starting point actually involves the BBO forums.  Create a new section of the forums where users can post / discuss scripts.  With luck, we'll be able to reach some consensus for some of the "simplier" cases [What hands are suitable for a 15-17 HCP 1NT opening].

 

If we can reach agreement on this, we'll see how things go...

If we can't reach agreement on this, the enter idea can be shelved as a bad idea.

Richard, I don't quite understand the point. I can't see anything close to universal agreement on how to script a 15-17 NT precisely, and even if we could script one that satisfies a significant majority, what would be the purpose?

 

Perhaps it would be useful to have a few example scripts so that people unfamiliar with Dealer could see how things work. But, the scripting itself is pretty easy once you become familiar and probably would take less time than searching through available scripts in a large library.

Link to comment
Share on other sites

I think trying to put a user-friendly front-end onto Dealer may be almost as complicated as doing this with Full Disclosure. In both cases, the real problem is that you're trying to describe complex criteria, and you can't get away from having to list all the details.
Link to comment
Share on other sites

Richard, I don't quite understand the point. I can't see anything close to universal agreement on how to script a 15-17 NT precisely, and even if we could script one that satisfies a significant majority, what would be the purpose?

 

Perhaps it would be useful to have a few example scripts so that people unfamiliar with Dealer could see how things work. But, the scripting itself is pretty easy once you become familiar and probably would take less time than searching through available scripts if you build up a large library.

My assumption is the following:

 

1. Most users would like to be able to generate hands that correspond to common auctions. For example:

 

A SAYC type 1N opening

 

Or hand that match an auction like: 1N - (P) - 2C

 

2. Most of these users will NEVER learn how to write scripts, regardless of how easy that might be. The only way to support these users is to link a GUI to some kind of pre-existing scripts. (Or quite right that said GUI needs to be designed carefully. However, we should start by defining some scripts)

 

3. There are a number of ways that these scripts might come into existence...

 

If we whine for long enough, there is always the chance that Fred / Uday, Aaron / whomever will miraculously write them for us. Personally, I think that stepping up to the plate and writing things for ourselves is a better way to go...

 

4. I agree that we will NEVER get perfect consensus regarding the definition of any of these bids. However, I hope that we can achieve rough consensus... Moreover, I like to believe that scripts that are developed in an open, peer reviewed process have a better chance of producing quality code... (Admittedly, the forums has its own deviant views regarding a number of topics. However, I still tend to trust the judgment of a collective over the judgment of an individual)

Link to comment
Share on other sites

The problem is that you'll end up with something like FD, which handles the really easy cases OK. But anyone who wants to go beyond the handful of canned scripts that are provided will be at a loss. Such applications look nice in demos, but are not much good in the long run.
Link to comment
Share on other sites

WOW

 

I was excited enough about this feature that I left work early so I could play with it.

 

I just tried a "Baptism by Fire" I input one of my old MOSCITO scripts and the system behaved with flying colors.

 

Here's an example of the type of stuff you can do with this new system:

 

The following script provides a decent enough approximation of my opening style playing MOSCITO.

 

The initial "X" lines of this script define all of the nromal opening bids.

 

I can edit the last line of the script to state what bid I want the hand generator to create. At the moment, the script will cause Dealer to generate Two Diamond openings. (Please note: These are assumed fit 2D openings that show

 

4+ Diamonds,

4+ cards in either major

insufficient strength for a constructive opening

and enough strength / shape for a preempt

 

THIS FEATURE IS REALLY REALLY COOL!!!!!!!!!!

 

 

 

 

 

_____________________

 

 

######### Definition - Opening Points

 

# 11 is the index for c13

# This function allows the user to define valuations for cacluating

# HCP

# Most hand evaluation is performed used a modified version of

# the 4 Aces Point Count.(Ace = 3, King = 2, ...)

# All values are multiplied by 100 to avoid fractions

 

altcount 11 300 200 100 50 20

 

############## STRONG OPENINGS

 

one_club =

 

(

hcp(north)>=17

or

c13(north) >=1000

or

(hcp(north)>=15 and cccc(north)>=1600 and c13(north)>=900)

or

(hcp(north)==14 and cccc(north)>=1900 and c13(north)>=900)

or

(hcp(north)==13 and cccc(north)>=2000 and c13(north)>=900)

or

 

(

hcp(north)>=15 and

shape(north, any 4333 + any 4432 + any 5332 + any

5422)

and

c13(north) >= 900

)

 

)

 

#####

#Opening strength defines the minimum strength for a limited #opening bid

#####

 

opening_strength =

(

(

cccc(north) - 25 * shape(north, any 4441 + any 5440) >= 1050

 

or hcp(north) >= 11

)

 

and

c13(north) >= 600

)

 

and not

 

one_club

 

#MOSCITO Opening structure

 

#################### SINGLE SUITED PREEMPTS

 

#################### MAJORS

 

four_diamonds =

 

(

(

spades(north) >= 8 and

hascard(north, AS) + hascard(north, KS) == 2

)

 

or

 

(

spades(north) == 7 and

hascard(north, AS) + hascard(north, KS) + hascard(north,QS) == 3

)

)

 

and

 

hascard(north,AC) + hascard(north,KC) +

hascard(north,AD) + hascard(north,KD) +

hascard(north,AH) + hascard(north,KH) <=1

 

four_spades =

 

hcp(north) <= 9

 

and

 

(

(

spades(north) >= 7 and

 

hascard(north, AS) + hascard(north, KS) +

hascard(north,QS) + hascard(north, JS) >= 3

)

 

or

 

spades(north) >= 8

)

 

and not four_diamonds

 

three_spades =

 

spades(north) >= 6

 

and

 

(

hascard(north, AS) + hascard(north, KS) +

hascard(north, QS) + hascard(north, JS) >= 2

)

 

and

 

(

hearts(north) <=1 or

diamonds(north) <=1 or

clubs(north) <= 1

)

 

and

 

hcp(north) <= 9

 

and not four_diamonds

 

and not four_spades

 

four_clubs =

 

(

(

hearts(north) >= 8 and

hascard(north,AH) + hascard(north,KH) == 2

)

or

 

(

hearts(north) == 7 and

hascard(north,AH) + hascard(north,KH) + hascard(north,QH) == 3

)

)

 

and

 

hascard(north,AC) + hascard(north,KC) +

hascard(north,AD) + hascard(north,KD) +

hascard(north,AS) + hascard(north,KS) <=1

 

four_hearts =

 

hcp(north) <= 9

 

and

 

(

(

hearts(north) >= 7 and

 

hascard(north, AH) + hascard(north, KH) +

hascard(north,QH) + hascard(north, JH) >= 3

)

 

or

 

spades(north) >= 8

)

 

and not four_clubs

 

three_hearts =

 

hearts(north) >= 6

 

and

 

(

hascard(north, AH) + hascard(north, KH) +

hascard(north, QH) + hascard(north, JH) >= 2

)

 

and

 

(

spades(north) <=1 or

diamonds(north) <=1 or

clubs(north) <= 1

)

 

and

 

hcp(north) <= 9

 

and not four_clubs

 

and not four_hearts

 

############## MINORS

 

three_nt =

 

hcp(north) <= 9

 

and

 

(

(

clubs(north) >= 8

and

hascard(north,AS) + hascard(north,KS) +

hascard(north,AH) + hascard(north,KH) +

hascard(north,AD) + hascard(north,KD) <= 1

)

 

or

 

(

diamonds(north) >= 8

and

hascard(north,AS) + hascard(north,KS) +

hascard(north,AH) + hascard(north,KH) +

hascard(north,AC) + hascard(north,KC) <= 1

)

)

 

three_clubs =

 

clubs(north) >= 6

 

and

 

hascard(north, AC) + hascard(north, KC) + hascard(north, QC) == 2 and

 

hascard(north, AD) + hascard(north, KD) +

hascard(north, AH) + hascard(north, KH) +

hascard(north, AS) + hascard(north, KS) == 0 and

 

hcp(north) <=9

 

and not three_nt

 

three_diamonds =

 

diamonds(north) >= 6

 

and

 

hascard(north, AD) + hascard(north, KD) + hascard(north, QD) == 2 and

 

hascard(north, AC) + hascard(north, KC) +

hascard(north, AH) + hascard(north, KH) +

hascard(north, AS) + hascard(north, KS) == 0 and

 

hcp(north) <=9

 

and not three_nt

 

two_nt =

 

(clubs(north) >=6 and

 

hascard(north, AC) + hascard(north, KC) + hascard(north, QC) +

hascard(north, JC) == 2

 

and

 

hascard(north, AD) + hascard(north, KD) +

hascard(north, AH) + hascard(north, KH) +

hascard(north, AS) + hascard(north, KS) == 0

 

and

 

hascard(north, QD) + hascard(north, QH) + hascard(north, QS) <= 1

 

and

 

not three_clubs)

 

or

 

(diamonds(north) >=6 and

 

hascard(north, AD) + hascard(north, KD) + hascard(north, QD) +

hascard(north, JD) == 2

 

and

 

hascard(north, AC) + hascard(north, KC) +

hascard(north, AH) + hascard(north, KH) +

hascard(north, AS) + hascard(north, KS) == 0 and

 

hascard(north, QC) + hascard(north, QH) + hascard(north, QS) <= 1 and

 

not three_diamonds)

 

and not three_nt

 

preempts =

four_spades or

four_clubs or

three_spades or

four_hearts or

four_clubs or

three_hearts or

three_diamonds or

three_clubs or

three_nt or

two_nt

 

###############################

## Weak Opening Bids

###############################

 

two_diamonds =

 

not opening_strength and

hcp(north) <= 12 and

c13(north) >= 325 and

 

shape(north, any 4432, any 54xx, any 55xx, any 65xx) and

clubs(north) <= 3 and

diamonds(north) >=4

 

two_hearts =

 

not opening_strength and

hcp(north) <= 12 and

c13(north) >= 325 and

 

shape(north, any 4432, any 54xx, any 55xx, any 65xx) and

hearts(north) >= 4 and

 

(

spade(north) >= 4 or

clubs(north) >= 5

)

 

two_spades =

 

not opening_strength and

hcp(north) <= 12 and

c13(north) >= 325

 

and

 

(

(

shape(north, any 6322, any 6331, any 7222) and

spades(north) >=6

)

 

or

 

(

spades(north) >=4 and clubs(north) >=5

and hascard(north, AS) + hascard(north, KS) + hascard(north, QS) >= 1

)

)

 

############## LIMITED OPENINGS

 

##### Pre-Definitions

 

bad_spades = hascard(north, AS) + hascard(north, KS) + hascard(north,

QS) == 0

bad_hearts = hascard(north, AH) + hascard(north, KH) + hascard(north,

QH) == 0

balanced = shape(north, any 4432, any 5332, any 4333)

 

########

 

two_clubs =

opening_strength

and not preempts

 

and

 

(

 

(

clubs(north) >= 6 and

spades(north) < 4 and

hearts(north) < 3

)

 

or

 

(

clubs(north) >= 6 and

spades(north) == 4 and

bad_spades

)

 

or

 

(

clubs(north) >= 6 and

hearts(north) == 4 and

bad_hearts

)

 

)

 

one_notrump =

 

opening_strength and

 

(

 

(

balanced and not

shape(north, 5xxx, x5xx, 44xx, 4x4x, 4xx4, x44x, x4x4)

)

 

or

 

(

hearts(north) == 4 and

balanced and

(hcp(north) == 11 or hcp(north) == 12)

)

 

or

 

(

spades(north) == 4 and

balanced and

hearts(north) <= 3 and

(hcp(north) == 13 or hcp(north) == 14)

)

 

)

 

one_spade =

opening_strength

and not preempts

and not one_notrump

 

and

 

diamonds(north) >= 4 and

not one_notrump and

hearts(north) <4 and

spades(north) <4

 

or

 

(

 

diamonds(north) >=6 and

 

(

(spades(north) == 4 and bad_spades) or

(hearts(north) == 4 and bad_hearts)

)

 

)

 

one_heart =

 

opening_strength and

not two_clubs and

not one_notrump and

not one_spade and

 

(

 

(

spades(north) == 4 and

spades(north) > hearts(north)

)

 

or

 

(

spades(north) >= 5 and

spades(north) >= hearts(north)

)

 

)

 

one_diamond =

 

opening_strength and

not two_clubs and

not one_notrump and

not one_spade and

not one_heart

 

and

 

hearts(north) >= 4

 

and not

 

(balanced and hcp(north) <= 11)

 

###########

 

two_diamonds

Richard's post must be the second longest post ever.

Link to comment
Share on other sites

The problem is that you'll end up with something like FD, which handles the really easy cases OK. But anyone who wants to go beyond the handful of canned scripts that are provided will be at a loss. Such applications look nice in demos, but are not much good in the long run.

For what its worth, I agree that its impractical to try to support every possible auction.

 

However, that's not reason not to knock off the easy cases...

Link to comment
Share on other sites

Personally, I think a Wiki-style area would be best where we could upload scripts for people to share and download. I have around 20-30 scripts I wrote for Dealer several years ago that I'd be willing to share. People can choose the scripts they want -- there's no need to agree upon a standard.
Link to comment
Share on other sites

If you want to do it here, start a thread, it'll get pinned.

 

The opening thread ideally will include a summary, with links to subsequent scripts posted. OP can edit it, and any moderator can as well.

Would it be possible to create another section of the forums?

 

I think that it will enhance discoverability.

Link to comment
Share on other sites

Fixed TimG's bug with spacing etc. The output is now raw dealer output wrapped in <pre> and </pre> tags. Seems to work

 

Richard, I'm concerned that a new section will become a dead section ( from lack of use ).

 

What if we tried starting a thread ? If it sees traffic we can make it into a standalone section .

 

 

FG & I toyed with allowing Dealer specifications to be stored on the server side and made available in the client. Then we started talking about sharing & permissions and things got hairy, so we decided to set aside this aspect of the client.

 

Eugene's suggestion of a wiki is mildly interesting to me. Maybe we should build it, and if no one comes, toss it ?

Link to comment
Share on other sites

Fixed TimG's bug with spacing etc. The output is now raw dealer output wrapped in <pre> and </pre> tags. Seems to work

 

Richard, I'm concerned that a new section will become a dead section ( from lack of use ).

 

What if we tried starting a thread ? If it sees traffic we can make it into a standalone section .

 

 

FG & I toyed with allowing Dealer specifications to be stored on the server side and made available in the client. Then we started talking about sharing & permissions and things got hairy, so we decided to set aside this aspect of the client.

 

Eugene's suggestion of a wiki is mildly interesting to me. Maybe we should build it, and if no one comes, toss it ?

Hi Uday:

 

I would respond as follows:

 

So what if there is a dead section?

 

If the section gets use / grows / thrives then it has value.

If the section doesn't get use, its not costing anything.

 

The easiest way to proceed, might be to relable the "Full Disclosure Standard Systems" forum something like

 

User Contributed code for FD + Dealer

 

This won't clutter up the existing forum structure any more than it is now, but will still provide an area where folks can work.

 

As for the wiki idea:

 

If you're worried that folks won't use the resource, splitting users between two competing sites is the wrong way to go...

 

(In practice, a wiki is a poor substitute for a source control system)

Link to comment
Share on other sites

Oh, I didn't know this tread existed. I have just but a question involving dealer in the BBO support forum (http://forums.bridgebase.com/index.php?showtopic=31248).

 

I don't think one thread for the entire topic is appropriate as the replies, comments and criticisms to programs will all become muddled together.

 

A new forum group is needed IMHO. Or a Wiki. Or both.

Link to comment
Share on other sites

We have a web based tool for generating hands. It is a front end to "Dealer" by Hans van Staveren and others

 

http://www.bridgebase.com/tools/dealer/dealer.php

 

 

You'll need to read the docs. Dealer is quite powerful. I'm open to suggestions for improving the web utility.

One suggestion:

 

add a printlin function

 

(this should probably in the dealer program)

 

yvan

Link to comment
Share on other sites

add a printlin function

 

(this should probably in the dealer program)

The code shoul be something like:

 

printf ("qx|o"%d"|md|%d", board+1, (board+2)%4+1);

for (player=COMPASS_NORTH; player<=COMPASS_WEST; player++) {

for (suit = SUIT_SPADE; suit>= SUIT_CLUB; suit--) {

printf ("SHDC"[suit]);

for (rank=12; rank >= 0; rank--) {

if (HAS_CARD(d, player, MAKECARD(suit,rank))) {

printf ("%c", representation[rank]);

}

}

}

if (player < COMPASS_WEST) {printf (",");}

}

printf ("\n");

 

(didnt test, dont have a C compiler handy)

Link to comment
Share on other sites

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...